  { 0x00000000, 0x00000000, 0x800e1590, 0x00000000 }, /* dwc_form_and_send_SYN_packet */
  { 0x00000000, 0x00000000, 0x800e1944, 0x00000000 }, /* dwc_check_various_timeouts */
  { 0x00000000, 0x00000000, 0x800cded8, 0x00000000 }, /* some_rng */
  { 0x00000000, 0x00000000, 0x800d8e78, 0x00000000 }, /* DWCi_GT2ConnectedCallback */
  { 0x00000000, 0x00000000, 0x800d8858, 0x00000000 }, /* DWCi_GT2ConnectAttemptCallback */
  { 0x00000000, 0x00000000, 0x800d29d0, 0x00000000 }, /* DWCi_GT2GetConnectionListIdx */
  { 0x00000000, 0x00000000, 0x800d2a74, 0x00000000 }, /* DWCi_GetGT2ConnectionByIdx */
  { 0x00000000, 0x00000000, 0x800d2b10, 0x00000000 }, /* DWCi_GetConnectionInfoByIdx */
  { 0x00000000, 0x00000000, 0x800e7ee0, 0x00000000 }, /* DWCi_NodeInfoList_GetNodeInfoForAID */
  { 0x00000000, 0x00000000, 0x800e8d74, 0x00000000 }, /* DWCi_ResetLastSomeDataRecvTimeByAid */
  { 0x00000000, 0x00000000, 0x800152a8, 0x00000000 }, /* strtoul */
  { 0x00000000, 0x00000000, 0x800e7e94, 0x00000000 }, /* DWCi_NodeInfoList_GetNodeInfoForProfileID */
  { 0x00000000, 0x00000000, 0x8010a9b4, 0x00000000 }, /* gt2Accept */
  { 0x00000000, 0x00000000, 0x800d0d68, 0x00000000 }, /* DWC_InitFriendsMatch */
  { 0x00000000, 0x00000000, 0x800d2ff0, 0x00000000 }, /* DWCi_MatchedCallback */
  { 0x00000000, 0x00000000, 0x8010a9bc, 0x00000000 }, /* GT2Connect */
  { 0x00000000, 0x00000000, 0x8010e9c0, 0x00000000 }, /* gt2AddressToString */
  { 0x00000000, 0x00000000, 0x800dfb04, 0x00000000 }, /* DWCi_PostProcessConnection */
  { 0x00000000, 0x00000000, 0x8010a9b8, 0x00000000 }, /* gt2Reject */
  { 0x00000000, 0x00000000, 0x809c38b9, 0x00000000 }, /* InOnlineMode */
  { 0x00000000, 0x00000000, 0x800d37bc, 0x00000000 }, /* DWC_ShutdownFriendsMatch */
  { 0x00000000, 0x00000000, 0x8001543c, 0x00000000 }, /* atoi */

Make an input.txt to be a list of addresses to port in the manner indicated above.
Place RAM dumps named dump80p.gko, dump80u.gko, dump80j.gko and dump80k.gko alongside the executable.
Program will create output.txt with a similar structure to the one in input, but with all missing addresses filled in.
You can have any combination of addresses from any regions.
Comment at the end of the line is just for identification purposes.
Address order is:
NTSC-U, NTSC-J, PAL, NTSC-K.