ref: 2d40e99d1127fcfd1625274a24b95153b47fd836
dir: /lib/mobile/main.asm/
; A library included as part of the Mobile Adapter GB SDK. setcharmap ascii ; Mobile Adapter protocol commands DEF MOBILE_COMMAND_BEGIN_SESSION EQU $10 DEF MOBILE_COMMAND_END_SESSION EQU $11 DEF MOBILE_COMMAND_DIAL_TELEPHONE EQU $12 DEF MOBILE_COMMAND_HANG_UP_TELEPHONE EQU $13 DEF MOBILE_COMMAND_WAIT_FOR_TELEPHONE_CALL EQU $14 DEF MOBILE_COMMAND_TRANSFER_DATA EQU $15 DEF MOBILE_COMMAND_TELEPHONE_STATUS EQU $17 DEF MOBILE_COMMAND_READ_CONFIGURATION_DATA EQU $19 DEF MOBILE_COMMAND_WRITE_CONFIGURATION_DATA EQU $1a DEF MOBILE_COMMAND_TRANSFER_DATA_END EQU $1f DEF MOBILE_COMMAND_ISP_LOGIN EQU $21 DEF MOBILE_COMMAND_ISP_LOGOUT EQU $22 DEF MOBILE_COMMAND_OPEN_TCP_CONNECTION EQU $23 DEF MOBILE_COMMAND_CLOSE_TCP_CONNECTION EQU $24 DEF MOBILE_COMMAND_DNS_QUERY EQU $28 DEF MOBILE_COMMAND_ERROR EQU $6e SECTION "Mobile Adapter SDK", ROMX MobileSDK_CopyBytes: ; Copy b bytes from hl to de .loop ld a, [hli] ld [de], a inc de dec b jr nz, .loop ret MobileSDK_CopyString: ; Copy bytes from hl to de until a 0 is encountered. ; Include the 0 in the copy, and count the number of ; nonzero bytes copied. Keep the de pointer at the ; copied zero. .loop ld a, [hli] ld [de], a or a ret z inc de inc bc jr .loop MobileSDK_CopyStringLen: ; Copy bytes from hl to de until a 0 is encountered, ; or a bytes have been copied, whichever comes first. ; Add the byte count to the count previously stored ; in bc. push bc ld c, $0 ld b, a dec b .loop ld a, [hli] ld [de], a or a jr z, .done inc de inc c dec b jr nz, .loop xor a ld [de], a .done ld a, c pop bc add c ld c, a ld a, b adc 0 ld b, a ret ResetReceivePacketBuffer: ; Clear two bytes at wMobileSDK_ReceivedBytes xor a ld hl, wMobileSDK_ReceivedBytes ld [hli], a ld [hl], a ret _MobileAPI:: ; Use the byte at wMobileAPIIndex as a parameter ; for a dw. ; If [wMobileAPIIndex] not in {MOBILEAPI_06, MOBILEAPI_07, MOBILEAPI_08}, ; clear [wc835]. push de ld a, [wMobileAPIIndex] cp MOBILEAPI_06 jr z, .noreset cp MOBILEAPI_07 jr z, .noreset cp MOBILEAPI_08 jr z, .noreset xor a ld [wc835], a ld a, [wMobileAPIIndex] .noreset ; Get the pointer ld d, 0 ld e, a ld hl, .dw add hl, de ; Store the low byte in [wMobileAPIIndex] ld a, [hli] ld [wMobileAPIIndex], a ld a, [hl] ; restore de pop de ld hl, ReturnMobileAPI ; return here push hl ; If the destination function is not Function110236, ; call Function1100b4. ld h, a ld a, [wMobileAPIIndex] ld l, a push hl ld a, LOW(Function110236) cp l jr nz, .okay ld a, HIGH(Function110236) cp h .okay call nz, Function1100b4 ld hl, wc986 ld a, [hli] ld h, [hl] ld l, a ret ; indirectly jump to the function loaded from the dw, which returns to ReturnMobileAPI. .dw dw Function110115 dw Function110236 dw Function110291 dw Function1103ac dw Function110438 dw Function1104c6 dw Function110578 dw Function110582 dw Function11058c dw Function1105dd dw Function1106ef dw Function110757 dw Function1107ff dw Function110899 dw Function1108a3 dw Function110905 dw Function1109a4 dw Function1109f9 dw Function110a5b dw Function110c3c dw Function110c9e dw Function110ddd dw Function1111fe dw Function1113fe dw MobileAPI_SetTimer dw MobileAPI_TelephoneStatus dw Function111596 dw Function11162d dw Function11032c dw Function11148c dw Function111610 dw Function1103ac dw Function110235 dw Function111540 Function1100b4: push bc .loop di ld a, [wc800] ld b, a ld a, [wc80b] ld c, a ld a, [wc822] ei or a bit 0, a jr z, .done ld a, b or a jr nz, .loop ld a, c cp $4 jr z, .loop xor a ld [wc80f], a ld hl, wc821 set 1, [hl] scf .done pop bc ret MobileAPI_SetTimer: xor a ldh [rTAC], a ld e, c ld b, a ld hl, Unknown_112089 add hl, bc ld c, [hl] inc hl ldh a, [rKEY1] bit 7, a jr nz, .asm_1100f9 ld a, e sra c ld a, e cp $4 jr nc, .asm_1100f9 ld de, $000f add hl, de .asm_1100f9 ld a, c ldh [rTMA], a ldh [rTIMA], a ld a, [hli] ld [wc81f], a ld [wc816], a ld a, [hl] ld [wc820], a ld [wc815], a ld c, LOW(rTAC) ld a, rTAC_65536_HZ ldh [c], a ld a, 1 << rTAC_ON | rTAC_65536_HZ ldh [c], a ret Function110115: ld hl, wc821 bit 1, [hl] jr nz, .asm_110120 xor a ld l, a ld h, a ret .asm_110120 res 1, [hl] ld a, [wc80f] ld e, a cp $22 jr z, .asm_11016a cp $23 jr z, .asm_11016a cp $25 jr z, .asm_11016a cp $26 jr z, .asm_11018e cp $24 jr z, .asm_1101a4 cp $30 jp z, .asm_1101f8 cp $31 jp z, .asm_11020d cp $32 jr z, .asm_1101a4 cp $33 jr z, .asm_1101a4 swap a and $f cp $1 jr z, .asm_11016a cp $0 jr z, .asm_11015d .asm_110158 ld hl, 0 .asm_11015b ld a, e ret .asm_11015d ld a, e add $15 ld e, a xor a ld hl, wc810 ld [hli], a ld [hl], a ld hl, wc821 .asm_11016a xor a ld [wc86d], a ld [hl], a ld [wc807], a inc a ld [wc86a], a ld hl, wc822 res 0, [hl] res 5, [hl] ld hl, wMobileSDK_PacketBuffer xor a ld [hli], a inc a ld [hl], a call Function111686 ld a, $15 cp e jr nz, .asm_110158 jr .asm_1101d7 .asm_11018e ld a, [wc821] bit 4, a ld a, $1 jr z, .asm_11016a ld a, $2 ld [wc86a], a ld a, [wc805] ld [wc807], a jr .asm_110158 .asm_1101a4 res 0, [hl] ld hl, wc822 res 5, [hl] ld hl, wc821 res 7, [hl] res 6, [hl] set 5, [hl] xor a ld [wc86d], a ld [wc9af], a ld a, $2 ld [wc86a], a ld a, $4 ld [wc807], a ld a, e cp $32 jr z, .asm_1101d7 cp $33 jr z, .asm_1101d7 cp $30 jr z, .asm_1101d7 cp $31 jp nz, .asm_110158 .asm_1101d7 ld hl, wc810 ld a, [hli] ld h, [hl] ld l, a ld a, $32 cp e jp nz, .asm_11015b ld a, $3 cp h jp nz, .asm_11015b dec a cp l jr z, .asm_1101f2 dec a cp l jp nz, .asm_11015b .asm_1101f2 ld bc, wc880 jp .asm_11015b .asm_1101f8 ld a, [wMobileSDK_ReceivePacketBuffer] cp $a4 jr z, .asm_1101a4 ld a, $3 ld [wc86a], a ld hl, wc810 ld a, [hli] ld h, [hl] ld l, a jp .asm_11015b .asm_11020d ld a, [wc810] cp $2 jr z, .asm_1101a4 cp $3 jr z, .asm_1101a4 ld a, $4 ld [wc86a], a ld hl, wc810 ld a, [hli] ld h, [hl] ld l, a jp .asm_11015b Function110226: ld a, $21 Function110228: ld [wc80f], a ld hl, wc821 set 1, [hl] ret Function110231: ld a, $20 jr Function110228 Function110235: nop Function110236: ld a, [wMobileAPIIndex] push af push bc push hl xor a ldh [rTAC], a ldh a, [rIF] and $1b ldh [rIF], a call ResetReceivePacketBuffer ld bc, $0452 ld hl, wc800 .asm_11024e xor a ld [hli], a dec bc ld a, c or b jr nz, .asm_11024e ld a, [wc822] set 6, a ld [wc822], a pop hl ld a, l ld [wc981], a ld a, h ld [wc982], a pop bc ld hl, wc983 ld a, c ld [hli], a ld a, b ld [hl], a ld hl, wc86e ld a, e ld [hli], a ld [hl], d xor a ld [wc819], a ld c, $c call MobileAPI_SetTimer call Function1104b0 pop af cp $35 jr nz, .asm_110289 ld a, $2b jr .asm_11028b .asm_110289 ld a, $a .asm_11028b ld [wc86a], a jp Function110432 Function110291: ld a, [wc821] bit 1, a jr z, .asm_1102a6 ld a, [wc80f] cp $14 jr z, .asm_1102b3 cp $25 jr z, .asm_1102b3 ld a, [wc821] .asm_1102a6 bit 0, a jp nz, Function110226 ld a, [wc86a] cp $1 jp nz, Function110226 .asm_1102b3 xor a ldh [rTAC], a xor a ld [wc819], a ld a, l ld b, h ld hl, wc880 ld [hli], a ld a, b ld [hli], a ld a, c ld [hli], a ld a, e ld [hli], a ld a, d ld [hl], a ld a, [wc870] ld c, a call MobileAPI_SetTimer ld hl, wc829 ld a, LOW(wc872) ld [hli], a ld a, HIGH(wc872) ld [hl], a ld de, wMobileSDK_PacketBuffer ld b, MobilePacket_WriteConfigurationData.End - MobilePacket_WriteConfigurationData ld hl, MobilePacket_WriteConfigurationData call MobileSDK_CopyBytes ld a, [wc882] ld c, a or a jr z, .asm_1102f2 cp $80 jr nc, .asm_1102f2 ld c, $80 jr .asm_1102f4 .asm_1102f2 ld a, $80 .asm_1102f4 ld b, a inc a ld [de], a inc de ld a, $80 add c ld hl, wc882 ld [hli], a ld a, [hl] ld [de], a inc de add $80 ld [hl], a ld hl, wc880 ld a, [hli] ld h, [hl] ld l, a ld c, b call MobileSDK_CopyBytes ld a, l ld [wc880], a ld a, h ld [wc880 + 1], a ld b, c inc b call Function111f63 call Function1104b0 ld a, $2e ld [wc86a], a ld hl, wc821 res 1, [hl] set 0, [hl] ret Function11032c: ld a, [wc821] bit 1, a jp nz, Function110226 bit 0, a jp nz, Function110226 ld a, [wc86a] cp $1 jp nz, Function110226 xor a ldh [rTAC], a ld [wc819], a ld hl, wc880 ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, b ld [hli], a ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a ld a, [wc870] ld c, a call MobileAPI_SetTimer ld de, wMobileSDK_PacketBuffer ld b, 6 ; header size ld hl, MobilePacket_ReadConfigurationDataPart1 call MobileSDK_CopyBytes ld a, [wc883] ld [de], a inc de ld a, [wc882] ld c, a or a jr z, .asm_11037f cp $80 jr nc, .asm_11037f ld c, $80 jr .asm_110381 .asm_11037f ld a, $80 .asm_110381 ld [de], a inc de ld b, $2 call Function111f63 call Function1104b0 ld a, $2d ld [wc86a], a jp Function110432 Function110393: ld c, LOW(rIE) ldh a, [c] or (1 << SERIAL) | (1 << TIMER) ldh [c], a ret Function11039a: ld b, $0 .asm_11039c inc b jr z, .asm_1103a3 ld a, [hli] or a jr nz, .asm_11039c .asm_1103a3 ld a, b cp c jr nc, .asm_1103aa cp $2 ret .asm_1103aa scf ret Function1103ac: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $1 jp nz, Function110226 push hl ld c, $15 call Function11039a jr c, .asm_1103d2 ld c, $22 call Function11039a jr c, .asm_1103d2 ld c, $12 call Function11039a jr nc, .isp_login .asm_1103d2 pop hl jp Function110231 .isp_login xor a ldh [rTAC], a ld [wc86d], a ld [wc97a], a ld a, [wc870] ld c, a call MobileAPI_SetTimer ld hl, wc829 ld a, LOW(wc880) ld [hli], a ld a, HIGH(wc880) ld [hl], a call Mobile_DialTelephone push hl ld b, a call Function111f63 ld b, MobilePacket_ISPLogin.End - MobilePacket_ISPLogin ld hl, MobilePacket_ISPLogin ld de, wMobileSDK_PacketBuffer + 45 call MobileSDK_CopyBytes inc de inc de pop hl ld bc, 0 call MobileSDK_CopyString ld a, c ld [wMobileSDK_PacketBuffer + 51], a ld [wc86b], a push de inc de ld bc, 0 ld a, $20 call MobileSDK_CopyStringLen ld l, e ld h, d pop de ld a, c ld [de], a ld a, [wc86b] add c add $a ld [wMobileSDK_PacketBuffer + 50], a call Function1104b0 ld a, $b ld [wc86a], a Function110432: ld hl, wc821 set 0, [hl] ret Function110438: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $1 jp nz, Function110226 push hl ld c, $15 call Function11039a jr nc, .asm_110454 pop hl jp Function110231 .asm_110454 xor a ldh [rTAC], a ld [wc97a], a ld a, [wc870] ld c, a call MobileAPI_SetTimer ld hl, wc98f ld a, LOW(wc880 + 1) ld [hli], a ld a, HIGH(wc880 + 1) ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld a, $ff ld [wc86e], a call Mobile_DialTelephone ld b, a call Function111f63 call Function1104b0 ld a, $c ld [wc86a], a jr Function110432 Mobile_DialTelephone: ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_DialTelephone ld b, MobilePacket_DialTelephone.End - MobilePacket_DialTelephone call MobileSDK_CopyBytes pop bc pop hl push bc ld a, [wMobileSDK_AdapterType] cp $8c jr c, .asm_11049e ld a, $3 jr .asm_1104a1 .asm_11049e ld a, [wc871] .asm_1104a1 ld [de], a inc de ld bc, $0001 ld a, MOBILE_PHONE_NUMBER_LENGTH call MobileSDK_CopyStringLen ld a, c ld [wMobileSDK_PacketBuffer + 5], a ret Function1104b0: xor a ld [wMobileSDK_SendCommandID], a call Function110393 xor a ld [wc86b], a ld de, MobilePacket_Idle.End - MobilePacket_Idle ld hl, MobilePacket_Idle ld b, 1 jp PacketSendBytes Function1104c6: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $4 jr z, .asm_110526 cp $3 jr z, .asm_110526 cp $2 jp nz, Function110226 ld hl, wc822 bit 4, [hl] jr nz, .asm_110507 ld a, $2 ld [wc86b], a ld a, MOBILE_COMMAND_ISP_LOGOUT | $80 ld [wMobileSDK_SendCommandID], a ld de, MobilePacket_ISPLogout.End - MobilePacket_ISPLogout ld hl, MobilePacket_ISPLogout ld b, $5 call PacketSendBytes .asm_1104fa ld a, $e ld [wc86a], a ld hl, wc821 set 0, [hl] res 3, [hl] ret .asm_110507 ld a, [wc807] or a jr nz, .asm_11051f ld a, $1 ld [wc86a], a ld hl, wc822 res 4, [hl] ld hl, wc821 ld a, [hl] and $17 ld [hl], a ret .asm_11051f ld a, $2 ld [wc86b], a jr .asm_1104fa .asm_110526 call Function112724 xor a ld [wc86b], a ld de, wMobileSDK_PacketBuffer + 32 ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $7 ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_1120c1 call MobileSDK_CopyString ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $e ld [wc86a], a jp Function110432 Function110578: ld b, $25 call Function110596 or a jp nz, Function1135ba ret Function110582: ld b, $26 call Function110596 or a jp nz, Function11359d ret Function11058c: ld b, $27 call Function110596 or a jp nz, Function1135ad ret Function110596: ld a, [wc821] bit 0, a jr nz, .asm_1105d9 ld a, [wc86a] cp $1 jr nz, .asm_1105d9 ld a, [wc835] or a ret nz ld a, b ld [wcb36], a xor a ldh [rTAC], a ld a, e ld [wc86e], a ld a, d ld [wc86e + 1], a xor a ld [wc819], a ld a, [wc870] ld c, a call MobileAPI_SetTimer ld hl, wc829 ld a, LOW(wc880) ld [hli], a ld a, HIGH(wc880) ld [hl], a call Function1104b0 ld a, [wcb36] ld [wc86a], a xor a jp Function110432 .asm_1105d9 pop hl jp Function110226 Function1105dd: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $1 jp nz, Function110226 xor a ldh [rTAC], a ld a, [wc870] ld c, a call MobileAPI_SetTimer ld hl, wc98f ld a, LOW(wc880 + 1) ld [hli], a ld a, HIGH(wc880 + 1) ld [hli], a xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld a, $ff ld [wc86e], a call Function1104b0 ld a, $d ld [wc86a], a jp Function110432 Function110615: ld b, $15 ld [wc86e], a or a jr z, .asm_110625 dec a jr z, .asm_11062c dec a jp z, .asm_1106c1 ret .asm_110625 ld a, $19 ld hl, wc83e jr .asm_110631 .asm_11062c ld a, $6e ld hl, wc852 .asm_110631 push hl push bc ld [wMobileSDK_PacketBuffer + 91], a ld hl, wc829 ld a, LOW(wMobileSDK_PacketBuffer + 86) ld [hli], a ld a, HIGH(wMobileSDK_PacketBuffer + 86) ld [hl], a xor a ld [wMobileSDK_PacketBuffer + 90], a ld [wc86b], a ld [wc9af], a ld de, wMobileSDK_PacketBuffer + 80 ld hl, MobilePacket_OpenTCPConnection ld b, MobilePacket_OpenTCPConnection.End - MobilePacket_OpenTCPConnection call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_DNSQuery ld b, MobilePacket_DNSQuery.End - MobilePacket_DNSQuery call MobileSDK_CopyBytes pop bc pop hl push de inc de ld a, b ld bc, 0 call MobileSDK_CopyStringLen ld a, c pop hl ld [hl], a ld b, c call Function111f63 ld a, [wc86e] cp $2 jr nz, .asm_1106ac ld a, [wMobileSDK_ReceivePacketBuffer + 128] or a jr z, .asm_1106ac ld hl, wc995 ld a, [hli] cp $99 jr nz, .asm_1106ac ld a, [hli] cp $66 jr nz, .asm_1106ac ld a, [hli] cp $23 jr nz, .asm_1106ac ld a, $2 ld [wc86e], a dec a ld [wc86b], a ld a, $a3 ld de, $0010 ld hl, wc995 call Function111f02 ld a, $f ld [wc86a], a jp Function110432 .asm_1106ac ld hl, wMobileSDK_PacketBuffer ld a, MOBILE_COMMAND_DNS_QUERY | $80 ld [wMobileSDK_SendCommandID], a ld b, $5 call PacketSendBytes ld a, $f ld [wc86a], a jp Function110432 .asm_1106c1 ld b, $50 ld hl, wc876 ld a, [hli] ld h, [hl] ld l, a ld de, $0007 add hl, de ld de, wc8ff .asm_1106d0 ld a, [hli] ld [de], a cp $2f jr z, .asm_1106da inc de dec b jr nz, .asm_1106d0 .asm_1106da xor a ld [de], a dec hl ld a, l ld [wc876], a ld a, h ld [wc877], a ld hl, wc8ff ld a, $50 ld b, $40 jp .asm_110631 Function1106ef: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $2 jp nz, Function110226 ld a, [wc86d] or a jp nz, Function110226 push hl ld c, $20 call Function11039a jr nc, .asm_110712 pop hl jp Function110231 .asm_110712 xor a ld [wc86b], a ld de, wMobileSDK_PacketBuffer + 96 ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer + 112 ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes inc de inc de ld bc, $0001 ld hl, Unknown_11209e call MobileSDK_CopyString pop hl push hl ld b, $ff .asm_11073b inc b ld a, [hli] or a jr z, .asm_110744 cp $40 jr nz, .asm_11073b .asm_110744 ld a, c add b add $2 ld [wMobileSDK_PacketBuffer + 117], a pop hl call MobileSDK_CopyBytes call Function11295e ld a, $0 jp Function110615 Function110757: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $3 jp nz, Function110226 ld a, [wc98a] or a jp nz, Function110226 push hl .asm_11076f ld a, [hli] or a jr nz, .asm_11076f ld a, [hl] or a jp z, .asm_1107fb pop hl push hl ld c, $20 call Function11039a jr c, .asm_1107fb .asm_110781 ld c, $81 call Function11039a jr c, .asm_1107fb xor a cp [hl] jr nz, .asm_110781 call Function112724 xor a ld [wc86b], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 ld de, wMobileSDK_PacketBuffer + 12 ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer + 18 ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld de, wMobileSDK_PacketBuffer + 19 ld hl, Unknown_1120a4 call MobileSDK_CopyString pop hl call MobileSDK_CopyString ld a, $3e ld [de], a inc de inc c ld a, l ld [wc87c], a ld a, h ld [wc87d], a call Function11295e ld a, c ld [wMobileSDK_PacketBuffer + 17], a ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer + 12 ld d, $0 ld e, c ld b, $5 call PacketSendBytes ld a, $15 ld [wc86a], a jp Function110432 .asm_1107fb pop hl jp Function110231 Function1107ff: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $3 jp nz, Function110226 ld a, [wc98a] or a jp z, Function110226 ld a, c or b jp z, Function110231 ld a, l ld [wc87c], a ld a, h ld [wc87d], a ld hl, wc87e ld a, c ld [hli], a ld a, b ld [hli], a ld a, d ld [wc86e + 1], a call Function112724 ld hl, wc98a ld a, [hl] and $1 xor $1 ld [wc86b], a inc [hl] ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer + 6 ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 ld de, wMobileSDK_PacketBuffer + 150 ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer + 156 ld a, [wc86c] ld [de], a ld a, [wc86b] or a jr nz, .asm_110891 ld bc, $0001 ld de, wMobileSDK_PacketBuffer + 157 ld hl, Unknown_1120ba call MobileSDK_CopyString ld a, c ld [wMobileSDK_PacketBuffer + 155], a ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld de, $0011 ld hl, wMobileSDK_PacketBuffer + 150 ld b, $5 call PacketSendBytes .asm_110891 ld a, $16 ld [wc86a], a jp Function110432 Function110899: ld a, [wc86a] cp $3 jp nz, Function110226 jr Function1108ab Function1108a3: ld a, [wc86a] cp $4 jp nz, Function110226 Function1108ab: ld hl, wc821 bit 0, [hl] jp nz, Function110226 call Function112724 xor a ld [wc86b], a ld de, wMobileSDK_PacketBuffer + 32 ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $7 ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_1120c1 call MobileSDK_CopyString ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $17 ld [wc86a], a jp Function110432 Function110905: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $2 jp nz, Function110226 ld a, [wc86d] or a jp nz, Function110226 xor a ld [wc86b], a push hl ld c, $20 call Function11039a jr c, .asm_11092f ld c, $22 call Function11039a jr nc, .asm_110933 .asm_11092f pop hl jp Function110231 .asm_110933 ld de, wMobileSDK_PacketBuffer + 96 ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes inc de inc de ld hl, Unknown_1120c8 call MobileSDK_CopyString pop hl push hl ld b, $ff .asm_11094a inc b ld a, [hli] or a jr z, .asm_110953 cp $40 jr nz, .asm_11094a .asm_110953 ld a, b add $6 ld c, a ld [wMobileSDK_PacketBuffer + 101], a pop hl ld de, wMobileSDK_PacketBuffer + 108 call MobileSDK_CopyBytes .asm_110961 ld a, [hli] or a jr nz, .asm_110961 call Function11295e ld a, c ld [wMobileSDK_PacketBuffer + 101], a ld bc, $0006 ld de, wMobileSDK_PacketBuffer + 172 ld a, $20 call MobileSDK_CopyStringLen call Function11295e ld a, c ld [wMobileSDK_PacketBuffer + 165], a ld de, wMobileSDK_PacketBuffer + 160 ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer + 167 ld hl, Unknown_1120ce ld b, $5 call MobileSDK_CopyBytes ld de, wMobileSDK_PacketBuffer + 128 ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, $1 jp Function110615 Function1109a4: ld hl, wc821 bit 0, [hl] jp nz, Function110226 ld a, [wc86a] cp $4 jp nz, Function110226 ld a, e ld [wc86e], a ld a, d ld [wc86e + 1], a xor a ld [wc86b], a call Function112729 ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $7 ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_1120d4 call MobileSDK_CopyString ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $18 ld [wc86a], a jp Function110432 Function1109f9: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $4 jp nz, Function110226 xor a ld [wc86b], a ld a, e ld [wc86e], a ld a, d ld [wc86e + 1], a ld a, l or h jp z, Function110231 push hl call Function112729 ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $d ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_1120db call MobileSDK_CopyString ld de, wMobileSDK_PacketBuffer + 12 pop hl call Function110d37 ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $1d ld [wc86a], a jp Function110432 Function110a5b: ld a, [wc821] bit 2, a jr z, .asm_110a6d ld a, [wc86a] cp $1a jp nz, Function110226 jp Function110af4 .asm_110a6d bit 0, a jp nz, Function110226 ld a, [wc86a] cp $4 jp nz, Function110226 ld a, l or h jp z, Function110231 ld a, l ld [wc86e], a ld a, h ld [wc86e + 1], a ld hl, wc827 ld a, e ld [hli], a ld a, d ld [hli], a inc de inc de dec bc dec bc ld hl, wc98f ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, b ld [hl], a ld hl, wc829 ld a, LOW(wc880) ld [hli], a ld a, HIGH(wc880) ld [hli], a ld a, $80 ld [hli], a xor a ld [hli], a xor a ld [hli], a ld [hli], a xor a ld [wc86b], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $d ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_1120e8 call MobileSDK_CopyString ld de, wMobileSDK_PacketBuffer + 12 ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a call Function110d37 ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $1a ld [wc86a], a jp Function110432 Function110af4: ld hl, wc827 ld a, e ld [hli], a ld a, d ld [hli], a inc de inc de ld a, e ld [hli], a ld a, d ld [hli], a ld e, [hl] ld a, b or c ld [wc86e], a ld [wc86e + 1], a jr z, .asm_110b5c dec bc dec bc ld a, [wc993] or a jp nz, .asm_110bd5 ld a, [wc994] or a jr z, .asm_110b1c ld e, a .asm_110b1c xor a ld [wc994], a cp b jr nz, .asm_110b5c ld a, e cp c jr c, .asm_110b5c push bc sub c ld [hl], a ld b, c ld hl, wc82d ld a, [wc993] add c ld [hli], a ld a, b adc 0 ld [hl], a xor a ld [wc993], a ld hl, wMobileSDK_ReceivePacketBuffer + 3 ld a, [hli] inc hl sub e dec a ld e, a ld d, 0 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes pop bc ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, c ld [hli], a ld [hl], b ret .asm_110b5c ld a, c sub e ld c, a ld a, b sbc $0 ld b, a ld a, c ld [hli], a ld [hl], b ld hl, wc82d ld a, [wc993] add e ld [hli], a ld a, 0 adc 0 ld [hl], a xor a ld [wc993], a ld a, [wc86e] or a jr z, .asm_110b9b ld b, e ld hl, wMobileSDK_ReceivePacketBuffer + 3 ld a, [hli] inc hl sub e dec a ld e, a ld d, 0 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a .asm_110b9b call Function1127f3 jr z, .asm_110bbb di ld hl, wc821 res 2, [hl] ld a, $1 ld [wc86b], a ld de, $000b ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer + 128 ld b, $5 jp PacketSendBytes .asm_110bbb ld a, $4 ld [wc86a], a ld hl, wc821 res 0, [hl] res 2, [hl] ld hl, wc827 ld a, [hli] ld e, a ld d, [hl] ld hl, wc82d ld b, $2 jp MobileSDK_CopyBytes .asm_110bd5 ld e, a xor a cp b jr nz, .asm_110c05 ld a, e cp c jr c, .asm_110c05 ld b, c ld hl, wc993 ld a, [hl] sub c ld [hl], a ld a, $80 sub e ld e, a ld d, 0 ld hl, wc880 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, c ld [hli], a xor a ld [hl], a ret .asm_110c05 push hl push bc ld a, [wc993] ld b, a ld a, $80 sub e ld e, a ld d, 0 ld hl, wc880 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes ld a, e ld [wc829], a ld a, d ld [wc829 + 1], a pop bc ld a, [wc993] ld e, a ld a, c sub e ld c, a ld a, b sbc $0 ld b, a ld a, [wc994] ld e, a pop hl jp .asm_110b1c Function110c3c: ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86a] cp $4 jp nz, Function110226 ld a, l or h jp z, Function110231 ld a, l ld [wc86e], a ld a, h ld [wc86e + 1], a call Function112729 ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $d ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_1120f5 call MobileSDK_CopyString ld de, wMobileSDK_PacketBuffer + 12 ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a call Function110d37 ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $1b ld [wc86a], a jp Function110432 Function110c9e: ld a, [wc821] bit 2, a jr z, .asm_110cb0 ld a, [wc86a] cp $1c jp nz, Function110226 jp Function110af4 .asm_110cb0 bit 0, a jp nz, Function110226 ld a, [wc86a] cp $4 jp nz, Function110226 ld a, l or h jp z, Function110231 ld a, l ld [wc86e], a ld a, h ld [wc86e + 1], a ld hl, wc827 ld a, e ld [hli], a ld a, d ld [hli], a inc de inc de dec bc dec bc ld hl, wc98f ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, b ld [hl], a ld hl, wc829 ld a, LOW(wc880) ld [hli], a ld a, HIGH(wc880) ld [hli], a ld a, $80 ld [hli], a xor a ld [hli], a xor a ld [hli], a ld [hli], a xor a ld [wc86b], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes ld a, $e ld [de], a inc de ld a, [wc86c] ld [de], a inc de ld bc, $0001 ld hl, Unknown_112102 call MobileSDK_CopyString ld de, wMobileSDK_PacketBuffer + 11 ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a call Function110d37 ld b, c call Function111f63 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $1c ld [wc86a], a jp Function110432 Function110d37: push bc push de ld b, 0 .check_under_10k ld a, HIGH(10000) cp h jr c, .subtract_10k jr nz, .done_10k ld a, LOW(10000) cp l jr z, .subtract_10k jr nc, .done_10k .subtract_10k inc b ld a, b ld bc, -10000 add hl, bc ld b, a jr .check_under_10k .done_10k ld a, $30 or b ld [de], a inc de ld b, 0 .check_under_1k ld a, HIGH(1000) cp h jr c, .subtract_1k jr nz, .done_1k ld a, LOW(1000) cp l jr z, .subtract_1k jr nc, .done_1k .subtract_1k inc b ld a, b ld bc, -1000 add hl, bc ld b, a jr .check_under_1k .done_1k ld a, $30 or b ld [de], a inc de ld b, 0 .check_under_100 ld a, HIGH(100) cp h jr nz, .subtract_100 ld a, LOW(100) cp l jr z, .subtract_100 jr nc, .check_under_10 .subtract_100 inc b ld a, b ld bc, -100 add hl, bc ld b, a jr .check_under_100 .check_under_10 ld a, $30 or b ld [de], a inc de ld b, $0 ld a, l .subtract_10 cp 10 jr c, .done_10 sub 10 inc b jr .subtract_10 .done_10 ld l, a ld a, $30 or b ld [de], a inc de ld a, $30 or l ld [de], a pop de ld l, e ld h, d ld b, $5 .find_first_digit ld a, [hl] cp $30 jr nz, .found_first_digit inc hl dec b jr nz, .find_first_digit jr .done .found_first_digit ld a, $5 cp b jr z, .done sub b ld c, a ld a, [wMobileSDK_PacketBuffer + 5] sub c ld c, a ld [wMobileSDK_PacketBuffer + 5], a push hl ld b, $1 .penultimate_loop inc b ld a, [hli] cp $d jr nz, .penultimate_loop pop hl call MobileSDK_CopyBytes pop hl ret .done pop bc .last_loop ld a, [de] inc de cp $a jr nz, .last_loop ret Function110ddd: ld a, [wc821] bit 2, a ld a, [wc86a] jr z, .asm_110e00 cp $13 jp z, Function111044 cp $1f jp z, Function111044 cp $21 jp z, Function111044 jp Function110226 .asm_110df9 pop hl .asm_110dfa pop hl pop hl pop hl .asm_110dfd jp Function110231 .asm_110e00 cp $2 jp nz, Function110226 ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86d] or a jp nz, Function110226 ld a, l ld [wc9b5], a ld a, h ld [wc9b6], a xor a ld [wc989], a ld [wc9a5], a ld [wc98a], a ld [wc993], a ld a, [hli] ld [wc833], a ld a, [hli] ld [wc834], a inc hl inc hl ld a, l ld [wc97f], a ld a, h ld [wc980], a dec hl dec hl ld a, [hli] ld h, [hl] ld l, a ld a, LOW(wc880) cp l jr nz, .asm_110e4a ld a, HIGH(wc880) cp h jr z, .asm_110dfd .asm_110e4a push hl push de push bc push hl ld b, URIPrefix.End - URIPrefix ld de, URIPrefix .asm_110e53 ld a, [de] inc de cp [hl] jr nz, .asm_110df9 inc hl dec b jr nz, .asm_110e53 push hl ld b, HTTPUploadURL.End - HTTPUploadURL ld c, $0 ld de, HTTPUploadURL .asm_110e64 ld a, [de] inc de cp [hl] jr nz, .asm_110e70 inc hl dec b jr nz, .asm_110e64 pop hl jr .asm_110df9 .asm_110e70 pop hl push hl ld b, HTTPRankingURL.End - HTTPRankingURL ld c, $0 ld de, HTTPRankingURL .asm_110e79 ld a, [de] inc de cp [hl] jr nz, .asm_110e86 inc hl dec b jr nz, .asm_110e79 pop hl jp .asm_110df9 .asm_110e86 pop hl push hl ld b, HTTPUtilityURL.End - HTTPUtilityURL ld c, $0 ld de, HTTPUtilityURL .asm_110e8f ld a, [de] inc de cp [hl] jr nz, .asm_110ea2 inc hl dec b jr nz, .asm_110e8f pop hl ld a, $1 ld [wc98a], a ld c, $1 jr .asm_110eb3 .asm_110ea2 pop hl ld b, HTTPDownloadURL.End - HTTPDownloadURL ld c, $0 ld de, HTTPDownloadURL .asm_110eaa ld a, [de] inc de cp [hl] jr nz, .asm_110ecb inc hl dec b jr nz, .asm_110eaa .asm_110eb3 ld hl, wc97f ld a, [hli] ld h, [hl] ld l, a ld c, $12 call Function11039a jp c, .asm_110df9 ld c, $12 call Function11039a jp c, .asm_110df9 ld c, $1 .asm_110ecb ld a, c ld [wc98f], a ld [wMobileSDK_ReceivePacketBuffer + 128], a pop hl call Function1111d7 ld a, b cp $4 jr c, .asm_110ee3 jp nz, .asm_110dfa xor a or c jp nz, .asm_110dfa .asm_110ee3 ld hl, wc98b xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a pop bc pop de pop hl ld a, l ld [wc876], a ld a, h ld [wc877], a ld hl, wc872 ld a, c ld [hli], a ld a, b ld [hli], a ld a, e ld [hli], a ld a, d ld [hli], a inc hl inc hl xor a ld [wc994], a Function110f07: ld hl, wc833 ld a, [hli] ld h, [hl] ld l, a or h jr z, .asm_110f12 xor a ld [hl], a .asm_110f12 ld hl, wc991 xor a ld [hli], a ld [hl], a ld hl, wc866 ld a, [hli] or [hl] inc hl or [hl] inc hl or [hl] jr nz, .asm_110f28 ld a, $2 jp Function110615 .asm_110f28 ld a, $2 ld [wc86e], a ld a, $1f ld [wMobileSDK_PacketBuffer + 10], a ld a, $90 ld [wMobileSDK_PacketBuffer + 11], a ld a, $1 ld [wc86b], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_OpenTCPConnection ld b, $6 call MobileSDK_CopyBytes ld hl, wc866 ld b, $4 call MobileSDK_CopyBytes inc de inc de ld b, $6 call Function111f63 ld a, [wMobileSDK_ReceivePacketBuffer + 128] or a jr z, .asm_110f95 ld hl, wc995 ld a, [hli] cp $99 jr nz, .asm_110f8a ld a, [hli] cp $66 jr nz, .asm_110f8a ld a, [hli] cp $23 jr nz, .asm_110f8a ld a, $2 ld [wc86e], a dec a ld [wc86b], a ld a, $a3 ld de, $0010 ld hl, wc995 call Function111f02 ld a, $f ld [wc86a], a jp Function110432 .asm_110f8a ld hl, wMobileSDK_PacketBuffer ld de, wc995 ld b, $10 call MobileSDK_CopyBytes .asm_110f95 ld de, $0010 ld hl, wMobileSDK_PacketBuffer ld a, MOBILE_COMMAND_OPEN_TCP_CONNECTION | $80 ld [wMobileSDK_SendCommandID], a ld b, $5 call PacketSendBytes ld a, $f ld [wc86a], a jp Function110432 URIPrefix: db "http://" .End HTTPDownloadURL: db "gameboy.datacenter.ne.jp/cgb/download" .End HTTPUploadURL: db "gameboy.datacenter.ne.jp/cgb/upload" .End HTTPUtilityURL: db "gameboy.datacenter.ne.jp/cgb/utility" .End HTTPRankingURL: db "gameboy.datacenter.ne.jp/cgb/ranking" .End Function111044: ld hl, wc827 ld a, e ld [hli], a ld a, d ld [hli], a inc de inc de ld a, e ld [hli], a ld a, d ld [hli], a ld e, [hl] ld a, b or c ld [wc86e], a ld [wc86e + 1], a dec bc dec bc jp z, Function1111ca ld a, [wc991] or a call nz, Function11115f xor a cp e jp z, .asm_1110eb xor a cp b jr nz, .asm_1110ac ld a, e cp c jr c, .asm_1110ac push bc sub c ld [hl], a ld b, c ld hl, wc82d ld a, c ld [hli], a xor a ld [hl], a ld hl, wMobileSDK_ReceivePacketBuffer + 3 ld a, [hli] inc hl sub e dec a ld e, a ld d, 0 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes pop bc ld a, [wc991] ld l, a ld h, 0 add hl, bc ld c, l ld b, h xor a ld [wc991], a ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, c ld [hli], a ld [hl], b ret .asm_1110ac ld a, c sub e ld c, a ld a, b sbc $0 ld b, a ld a, c ld [hli], a ld [hl], b ld hl, wc82d ld a, [wc991] add e ld [hli], a ld a, 0 adc 0 ld [hl], a xor a ld [wc991], a ld a, [wc86e] or a jr z, .asm_1110eb ld b, e ld hl, wMobileSDK_ReceivePacketBuffer + 3 ld a, [hli] inc hl sub e dec a ld e, a ld d, 0 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a .asm_1110eb di ld a, $2 ld [wc989], a ld hl, wc821 res 2, [hl] ld a, [wMobileSDK_ReceivePacketBuffer] cp MOBILE_COMMAND_TRANSFER_DATA_END | $80 jr z, .asm_111144 ld de, $000b ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes ld a, $1 ld [wc86b], a ret ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, [wc82d] ld [hli], a ld a, [wc82e] ld [hl], a ld hl, wc98f inc [hl] ld a, $f ld [wc86a], a ld a, $1 ld [wc86b], a ld a, [wc86d] ld [wc86e], a xor a ld [wc989], a ld a, $a3 ld de, $0010 ld hl, wc995 jp Function111f02 .asm_111144 res 0, [hl] ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, [wc82d] ld [hli], a ld a, [wc82e] ld [hl], a ld a, $2 ld [wc86a], a xor a ld [wc86d], a ei ret Function11115f: ld e, a xor a cp b jr nz, .asm_111168 ld a, c cp e jr c, .asm_1111a2 .asm_111168 push hl push bc ld b, e ld c, e ld a, [wc993] sub e ld e, a ld d, 0 ld hl, wc880 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a call MobileSDK_CopyBytes ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a ld e, c ld a, c ld hl, wc82d ld [hli], a xor a ld [hl], a pop bc ld a, c sub e ld c, a ld a, b sbc $0 ld b, a ld a, [wc992] ld [wc82b], a ld e, a pop hl ret .asm_1111a2 ld a, e sub c ld [wc991], a ld a, [wc993] sub e ld e, a ld d, 0 ld hl, wc880 add hl, de ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a ld b, c call MobileSDK_CopyBytes ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, c ld [hli], a xor a ld [hl], a pop af ret Function1111ca: ld hl, wc821 res 2, [hl] ld a, $6 ld [wc86b], a jp Function112430 Function1111d7: push hl ld hl, wc866 ld a, [hli] or [hl] inc hl or [hl] inc hl or [hl] pop hl jr nz, .asm_1111ee ld de, $0007 add hl, de .asm_1111e8 ld a, [hli] cp $2f jr nz, .asm_1111e8 dec hl .asm_1111ee ld bc, -1 .asm_1111f1 ld a, [hli] inc bc or a jr nz, .asm_1111f1 ld hl, wc87a ld a, c ld [hli], a ld a, b ld [hl], a ret Function1111fe: ld a, [wc821] bit 2, a ld a, [wc86a] jp nz, Function1113ea cp $2 jp nz, Function110226 ld a, [wc821] bit 0, a jp nz, Function110226 ld a, [wc86d] or a jp nz, Function110226 xor a ld [wc989], a ld [wc98a], a ld [wc993], a push hl push de push bc push hl rept 4 inc hl endr ld a, [hli] ld [wc833], a ld a, [hli] ld [wc834], a inc hl inc hl ld a, l ld [wc97f], a ld a, h ld [wc980], a dec hl dec hl ld a, [hli] ld h, [hl] ld l, a ld a, LOW(wc880) cp l jr nz, .asm_111251 ld a, HIGH(wc880) cp h jp z, Function1113f7 .asm_111251 ld b, URIPrefix.End - URIPrefix ld de, URIPrefix .asm_111256 ld a, [de] inc de cp [hl] jp nz, Function1113f7 inc hl dec b jr nz, .asm_111256 push hl ld b, HTTPDownloadURL.End - HTTPDownloadURL ld c, $0 ld de, HTTPDownloadURL .asm_111268 ld a, [de] inc de cp [hl] jr nz, .asm_111275 inc hl dec b jr nz, .asm_111268 pop hl jp Function1113f7 .asm_111275 pop hl push hl ld b, HTTPRankingURL.End - HTTPRankingURL ld c, $0 ld de, HTTPRankingURL .asm_11127e ld a, [de] inc de cp [hl] jr nz, .asm_11128f inc hl dec b jr nz, .asm_11127e ld a, $2 ld [wc98a], a pop hl jr .asm_1112a0 .asm_11128f pop hl ld b, HTTPUploadURL.End - HTTPUploadURL ld c, $0 ld de, HTTPUploadURL .asm_111297 ld a, [de] inc de cp [hl] jr nz, .asm_1112cc inc hl dec b jr nz, .asm_111297 .asm_1112a0 ld a, [hli] or a jr nz, .asm_1112a0 .asm_1112a4 ld a, [hld] cp $2f jr nz, .asm_1112a4 inc hl inc hl ld a, [hl] cp $30 jr c, .asm_1112cc cp $3a jr nc, .asm_1112cc ld hl, wc97f ld a, [hli] ld h, [hl] ld l, a ld c, $12 call Function11039a jp c, Function1113f7 ld c, $12 call Function11039a jp c, Function1113f7 ld c, $1 .asm_1112cc ld a, c ld [wc98f], a ld [wMobileSDK_ReceivePacketBuffer + 128], a pop hl ld de, $0006 add hl, de ld a, [hli] ld h, [hl] ld l, a call Function1111d7 ld a, b cp $4 jr c, .asm_1112eb jp nz, Function1113f8 xor a or c jp nz, Function1113f8 .asm_1112eb pop bc pop de pop hl ld a, l ld [wc876], a ld a, h ld [wc877], a ld hl, wc872 ld a, c ld [hli], a ld a, b ld [hli], a ld a, e ld [hli], a ld a, d ld [hli], a inc hl inc hl ld a, e ld [hli], a ld a, d ld [hl], a call Function111335 ld hl, wc876 ld a, [hli] ld h, [hl] ld l, a ld a, [hli] ld [wc9aa], a ld a, [hli] ld [wc9ab], a ld a, [hli] ld [wc9ac], a ld a, [hli] ld [wc9ad], a inc hl inc hl ld a, [hli] ld [wc876], a ld a, [hl] ld [wc877], a ld a, [wc98f] xor $1 ld [wc994], a jp Function110f07 Function111335: ld hl, wc876 ld a, [hli] ld h, [hl] ld l, a inc hl inc hl ld a, [hli] ld h, [hl] ld l, a xor a ld [wc8c9], a .asm_111344 ld de, $8ad0 add hl, de jr nc, .asm_11134e add $3 jr .asm_111344 .asm_11134e ld de, $7530 add hl, de .asm_111352 ld de, $d8f0 add hl, de jr nc, .asm_11135b inc a jr .asm_111352 .asm_11135b ld de, $2710 add hl, de ld [wc8c6], a xor a .asm_111363 ld de, $f448 add hl, de jr nc, .asm_11136d add $30 jr .asm_111363 .asm_11136d ld de, $0bb8 add hl, de .asm_111371 ld de, $fc18 add hl, de jr nc, .asm_11137b add $10 jr .asm_111371 .asm_11137b ld de, $03e8 add hl, de .asm_11137f ld de, $fed4 add hl, de jr nc, .asm_111389 add $3 jr .asm_11137f .asm_111389 ld de, $012c add hl, de .asm_11138d ld de, $ff9c add hl, de jr nc, .asm_111396 inc a jr .asm_11138d .asm_111396 ld de, $0064 add hl, de ld [wc8c7], a xor a .asm_11139e ld de, $ffe2 add hl, de jr nc, .asm_1113a8 add $30 jr .asm_11139e .asm_1113a8 ld de, $001e add hl, de .asm_1113ac ld de, $fff6 add hl, de jr nc, .asm_1113b6 add $10 jr .asm_1113ac .asm_1113b6 ld de, $000a add hl, de add l ld [wc8c8], a ld de, wc9a5 ld hl, wc8c6 ld a, [hli] or $30 ld [de], a inc de ld a, [hl] swap a and $f or $30 ld [de], a inc de ld a, [hli] and $f or $30 ld [de], a inc de ld a, [hl] swap a and $f or $30 ld [de], a inc de ld a, [hl] and $f or $30 ld [de], a inc de ret Function1113ea: cp $14 jp z, Function111044 cp $24 jp z, Function111044 jp Function110226 Function1113f7: pop hl Function1113f8: pop hl pop hl pop hl jp Function110231 Function1113fe: ld a, [wc822] bit 4, a jp z, .asm_11147f bit 7, a jp nz, .asm_11147f ld a, [wc821] bit 0, a jp nz, .asm_11147f .asm_111413 ld a, [wc800] or a jr nz, .asm_111413 di ld a, [wc821] bit 3, a jp nz, .asm_11147b ld a, [wc807] or a jr nz, .asm_111436 ld hl, wc821 set 1, [hl] ld a, $23 ld [wc80f], a ld a, $ff ei ret .asm_111436 xor a ld [wc86b], a push hl ld hl, wc829 xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes pop hl ld a, [hli] or a jr z, .asm_111485 cp $81 jr nc, .asm_111485 ld c, a inc a inc a ld [de], a inc de ld a, $ff ld [de], a inc de ld a, c ld [de], a inc de ld b, c call MobileSDK_CopyBytes ld b, c inc b inc b call Function111f63 ld hl, wc822 set 7, [hl] ld hl, wc821 set 0, [hl] ld a, $0 ei ret .asm_11147b ei ld a, $1 ret .asm_11147f call Function110226 ld a, $ff ret .asm_111485 ei call Function110231 ld a, $ff ret Function11148c: ld a, [wc822] bit 4, a jp z, Function110226 ld a, [wc821] bit 0, a jp nz, Function110226 bit 3, a jp z, Function110226 ld e, l ld d, h ld a, [wc992] or a jr nz, .asm_111507 ld a, [wc993] ld c, a ld b, 0 ld hl, wMobileSDK_ReceivePacketBuffer + 4 add hl, bc ld a, [hli] or a jr z, .asm_1114bb cp $81 jr c, .asm_1114bd .asm_1114bb ld a, $80 .asm_1114bd ld b, a inc c add c ld [wc993], a ld a, [wc994] dec a sub b ld c, a ld [wc994], a ld a, b ld [de], a inc de call MobileSDK_CopyBytes .asm_1114d2 xor a or c jr nz, .asm_1114dc ld hl, wc821 res 3, [hl] ret .asm_1114dc ld a, [hli] or a jr z, .asm_1114e4 cp $81 jr c, .asm_1114e6 .asm_1114e4 ld a, $80 .asm_1114e6 cp c ret c ld [wc991], a dec c ld a, c or a jr z, .asm_111500 ld [wc992], a ld b, a ld de, wc880 call MobileSDK_CopyBytes .asm_1114fa ld hl, wc821 res 3, [hl] ret .asm_111500 ld a, $ff ld [wc992], a jr .asm_1114fa .asm_111507 cp $ff jr nz, .asm_11150c xor a .asm_11150c ld b, a ld a, [wc991] sub b ld c, a ld hl, wc880 ld a, [wc991] ld [de], a inc de ld a, b or a jr z, .asm_111521 call MobileSDK_CopyBytes .asm_111521 ld hl, wMobileSDK_ReceivePacketBuffer + 5 ld b, c call MobileSDK_CopyBytes push hl ld a, c inc a ld [wc993], a ld b, a ld a, [wMobileSDK_ReceivePacketBuffer + 3] sub b ld [wc994], a ld c, a xor a ld hl, wc991 ld [hli], a ld [hl], a pop hl jr .asm_1114d2 Function111540: nop MobileAPI_TelephoneStatus: ld hl, wc821 bit 0, [hl] jp nz, Function110226 ld a, [wc86a] cp $5 jp nc, Function110226 ld [wc985], a ld a, e ld [wc86e], a ld a, d ld [wc86e + 1], a ld a, [wc807] cp $2 jr c, .asm_111582 xor a ld [wc86b], a ld a, MOBILE_COMMAND_TELEPHONE_STATUS | $80 ld hl, MobilePacket_TelephoneStatus call PacketSendEmptyBody .asm_11156f ld a, [wMobileAPIIndex] cp $40 jr nz, .asm_11157a ld a, $2c jr .asm_11157c .asm_11157a ld a, $1e .asm_11157c ld [wc86a], a jp Function110432 .asm_111582 xor a ldh [rTAC], a ld a, [wc870] ld c, a call MobileAPI_SetTimer call Function1104b0 ld a, $1 ld [wc86b], a jr .asm_11156f Function111596: ld hl, wc86a ld a, [hl] cp $1 jp z, Function110226 cp $2a jp z, Function110226 ld a, [wc800] bit 1, a jr nz, .asm_1115af ld a, $2a jr Function1115e4 .asm_1115af ld a, [wMobileSDK_SendCommandID] cp $92 jr nz, .asm_1115dd ld a, $2a ld b, $0 di ld [hli], a ld [hl], b ld hl, wc822 res 5, [hl] res 0, [hl] xor a ld [wc80b], a ld [wc800], a ld a, $8 ld [wc807], a call ResetReceivePacketBuffer call Function11164f ld hl, wc821 set 0, [hl] ei ret .asm_1115dd ld a, $2a ld [hli], a ld a, $1 ld [hl], a ret Function1115e4: di push af ld hl, wc821 set 0, [hl] ld a, $1 ld [wc86b], a ld a, [wc86d] or a ld a, [wMobileSDK_ReceivePacketBuffer] jr z, .asm_111609 cp MOBILE_COMMAND_TRANSFER_DATA_END | $80 jr z, .asm_11160d cp MOBILE_COMMAND_CLOSE_TCP_CONNECTION | $80 jr z, .asm_11160d .asm_111601 call Function112430 .asm_111604 pop af ld [wc86a], a ret .asm_111609 cp $a3 jr z, .asm_111601 .asm_11160d ei jr .asm_111604 Function111610: ld hl, wc86a ld a, [hl] dec a jp z, Function110226 dec a jp z, Function110226 ld a, [wc800] or a jr nz, .asm_111626 ld a, $28 jr Function1115e4 .asm_111626 ld a, $28 ld b, $2 ld [hli], a ld [hl], b ret Function11162d: ld a, [wc86a] cp $1 jp nz, Function110226 xor a ld hl, wMobileSDK_PacketBuffer ld [hli], a ld [hl], a call Function111686 call ResetReceivePacketBuffer ld bc, $0452 ld hl, wc800 .asm_111647 xor a ld [hli], a dec bc ld a, c or b jr nz, .asm_111647 ret Function11164f: ld hl, wc815 xor a ld [hli], a ld a, [wc81f] ld b, a ld a, [wMobileSDK_AdapterType] ld a, b srl a srl a add b add b ld [hl], a ret Function111664: ld hl, wMobileSDK_ReceivedBytes ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [wMobileSDK_SendCommandID] cp $ff jr z, .asm_111679 ld a, [wc822] bit 0, a jr z, .asm_11167c .asm_111679 ld hl, wMobileSDK_ReceivePacketBufferAlt .asm_11167c add hl, de ld [hl], c inc de ld hl, wMobileSDK_ReceivedBytes ld a, e ld [hli], a ld [hl], d ret Function111686: xor a ldh [rTAC], a ld c, $ff ldh a, [c] and $f3 ldh [c], a ld a, [wMobileSDK_PacketBuffer + 1] ld [wc86a], a ld a, [wMobileSDK_PacketBuffer] ld c, a ld hl, wc821 ld a, [hl] or c ld [hl], a ret Function1116a0: ld a, $1 jr Function1116a9 Function1116a4: set 1, [hl] ld a, [wc86a] Function1116a9: ld [wMobileSDK_PacketBuffer + 1], a ld hl, wc815 xor a ld [hli], a ld a, [wc81f] rla ld [hl], a ld hl, wc821 ld a, [hl] ld b, a and $d ld [hl], a ld a, $2 and b ld [wMobileSDK_PacketBuffer], a ret _MobileReceive:: ld a, [wc800] rrca jp nc, Function1118bc rrca jp c, Function1117e7 ld hl, wc801 ld a, [hli] ld d, [hl] ld e, a dec de ld a, d ld [hld], a ld a, e ld [hl], a cp $2 jp nc, Function1118bc ld a, d or a jp nz, Function1118bc ld hl, wc808 add hl, de ldh a, [rSB] ld [hl], a ld a, $8 cp l jp nz, Function1118bc ld a, [wMobileSDK_SendCommandID] cp $ff jr z, .asm_111716 ld a, $f2 cp [hl] jp z, Function111796 dec a cp [hl] jp z, Function1117a0 dec a cp [hl] jp z, Function1117a0 ld a, [wc807] cp $1 jr nz, .asm_111716 ld a, [wc806] or a jr z, .asm_111778 .asm_111716 ld a, [wMobileSDK_SendCommandID] cp -1 jr z, .asm_111730 cp MOBILE_COMMAND_ERROR | $80 jr z, .asm_111727 cp MOBILE_COMMAND_TRANSFER_DATA_END | $80 jr nz, .asm_111727 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 .asm_111727 cp [hl] jr nz, asm_11179a ld a, [wMobileSDK_AdapterType] or a jr z, .asm_111730 .asm_111730 xor a ld [wc819], a ld a, $3 ld [wc800], a xor a ld hl, wc80a ld [hli], a ld [hli], a ld [hli], a ld hl, wc81f ld a, [hli] ld b, a ld a, [hl] ld hl, wc815 ld [hli], a ld a, b ld [hli], a ld a, [wc822] bit 0, a jr z, .asm_111757 ld a, $b jr .asm_111774 .asm_111757 ld a, [wMobileSDK_SendCommandID] cp -1 jr z, .asm_11176e cp MOBILE_COMMAND_DIAL_TELEPHONE | $80 jr z, .asm_111772 cp MOBILE_COMMAND_OPEN_TCP_CONNECTION | $80 jr z, .asm_111772 cp MOBILE_COMMAND_DNS_QUERY | $80 jr z, .asm_111772 ld a, $20 jr .asm_111774 .asm_11176e ld a, $3 jr .asm_111774 .asm_111772 ld a, $60 .asm_111774 ld [hl], a jp Function1118bc .asm_111778 xor a ld [wc800], a Function11177c: ld hl, wc820 ld a, [hld] ld e, a ld a, [hl] dec a ld b, $3 .asm_111785 or a rra rr e dec b jr nz, .asm_111785 or a inc a ld hl, wc816 ld [hld], a ld [hl], e jp Function1118bc Function111796: ld b, $a jr asm_1117a2 asm_11179a: xor a ld [hli], a ld [hl], a jp Function1118bc Function1117a0: ld b, $3 asm_1117a2: ld hl, wc822 set 3, [hl] ld hl, wc815 ld a, [wc820] ld [hli], a ld a, [wc81f] ld [hl], a xor a ld [wc800], a ld hl, wc819 inc [hl] ld a, b cp [hl] jp nc, Function1118bc xor a ld hl, wc806 ld [hli], a ld [wc800], a ld a, $6 ld [hl], a ld hl, wc821 set 1, [hl] ld a, $15 ld [wc80f], a ld hl, wc810 ld a, [wc808] and $f cp $2 jr nz, .asm_1117e1 inc a .asm_1117e1 ld [hli], a xor a ld [hl], a jp Function1118bc Function1117e7: ld a, [wc80b] or a jr z, .asm_1117f8 dec a jp z, Function11186e dec a jp z, Function111884 jp Function111892 .asm_1117f8 ld hl, wc80a ld a, [hl] or a jr nz, .asm_111803 ld b, $99 jr .asm_111805 .asm_111803 ld b, $66 .asm_111805 ldh a, [rSB] cp b jr z, .asm_111840 cp $d2 jr nz, .asm_111817 xor a ld [wc9ae], a .asm_111812 xor a ld [hl], a jp Function1118bc .asm_111817 ld a, [wc9ae] inc a ld [wc9ae], a cp $14 jr c, .asm_111812 ld a, $6 ld [wc807], a ld a, $10 ld [wc80f], a xor a ld [wc800], a ld hl, wc822 res 0, [hl] ld hl, wc821 ld a, [hl] set 1, a and $f ld [hl], a jr Function1118bc .asm_111840 inc [hl] ld a, $2 cp [hl] jr nz, Function1118bc xor a ld [hli], a inc [hl] ld hl, wMobileSDK_PacketChecksum ld b, $3 .asm_11184e ld [hli], a dec b jr nz, .asm_11184e ld a, [wc822] bit 4, a jr z, .asm_111864 ld b, a ld a, [wc821] bit 3, a jr nz, .asm_111864 jp Function11177c .asm_111864 ld a, [wc820] ld [hli], a ld a, [wc81f] ld [hl], a jr Function1118bc Function11186e: call Function1118c2 ld a, $4 cp [hl] jr nz, Function1118bc xor a ld [hli], a ldh a, [rSB] ld [wc80c], a inc [hl] or a jr nz, Function1118bc inc [hl] jr Function1118bc Function111884: call Function1118c2 ld a, [wc80c] cp [hl] jr nz, Function1118bc xor a ld [hli], a inc [hl] jr Function1118bc Function111892: ldh a, [rSB] ld c, a call Function111664 ld hl, wc80a inc [hl] ld a, $2 cp [hl] jr c, .asm_1118b4 ld a, [wc80a] add $11 ld e, a ld d, $c8 ld a, [de] cp c jr z, Function1118bc ld a, $1 ld [wc814], a jr Function1118bc .asm_1118b4 ld a, $4 cp [hl] jr nz, Function1118bc xor a ld [hli], a inc [hl] Function1118bc: ld hl, wc822 res 1, [hl] ret Function1118c2: ldh a, [rSB] ld c, a ld b, 0 ld hl, wMobileSDK_PacketChecksum ld a, [hli] ld l, [hl] ld h, a add hl, bc ld a, h ld [wMobileSDK_PacketChecksum], a ld a, l ld [wMobileSDK_PacketChecksum + 1], a call Function111664 ld hl, wc80a inc [hl] ret _Timer:: ld a, [wc80b] cp $4 call z, Function111b3c call Function11214e ld hl, wc807 ld a, [hli] cp $2 jr c, .asm_111927 ld a, [hli] ld b, a ld a, [hl] ld c, a and b cp $ff jr z, .asm_1118fe ld a, c or b jr nz, .asm_111927 .asm_1118fe ld hl, wc807 ld a, $6 cp [hl] jp z, Function111b3b ld [hl], a ld a, $10 ld [wc80f], a xor a ld [wc800], a ld hl, wc822 res 0, [hl] ld hl, wc821 ld a, [hl] and $f or $2 ld [hl], a ld a, $10 ld [wc80f], a jp Function111b3b .asm_111927 ld a, [wc800] cp $1 jp z, Function111b21 cp $3 jp z, Function111a2a ld a, [wc807] cp $1 jp c, Function111b3b ld hl, wc815 dec [hl] jp nz, Function111b3b inc hl dec [hl] jp nz, Function111b3b ld hl, wc807 ld a, [wc822] bit 3, a jp nz, Function111a0b bit 4, a jr nz, .asm_11199c ld a, [hl] cp $1 jp z, Function1119f0_BeginSession cp $a jr z, .asm_111984 cp $8 jr z, .asm_11197d ld a, [wc86a] cp $2a jr z, .asm_111991 cp $d jr nz, .asm_111977 ld a, [wc86b] cp $4 jr nc, .asm_11199c .asm_111977 call Function111f97 jp Function111b3b .asm_11197d ld a, [wc805] ld [hl], a jp Function111b3b .asm_111984 xor a ld [hl], a ld hl, wc821 res 0, [hl] call Function111686 jp Function111b3b .asm_111991 xor a ld [hl], a ld [wc821], a call Function111686 jp Function111b3b .asm_11199c ld b, a ld [hl], a or a jp z, Function111b3b ld a, [wc822] bit 7, a jr nz, .asm_1119be .asm_1119a9 ld a, [wc821] bit 3, a jr nz, .asm_111977 ld de, MobilePacket_TransferData.End - MobilePacket_TransferData ld hl, MobilePacket_TransferData ld a, $95 call Function111f02 jp Function111b3b .asm_1119be ld a, [wc821] bit 3, a jr nz, .asm_1119dd ld a, [wMobileSDK_PacketBuffer + 5] add $a ld e, a ld d, 0 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 ld [wMobileSDK_SendCommandID], a ld hl, wMobileSDK_PacketBuffer ld b, $5 call PacketSendBytes jp Function111b3b .asm_1119dd ld hl, wc821 set 1, [hl] res 0, [hl] ld hl, wc822 res 7, [hl] ld a, $21 ld [wc80f], a jr .asm_1119a9 Function1119f0_BeginSession: ld a, MOBILE_COMMAND_BEGIN_SESSION | $80 ld [wMobileSDK_SendCommandID], a ld [wc808], a ld b, $5 ld de, MobilePacket_BeginSession.End - MobilePacket_BeginSession ld hl, MobilePacket_BeginSession call PacketSendBytes ld a, $1 ld [wc806], a jp Function111b3b Function111a0b: ld a, [hl] cp $6 jp z, Function111b3b ld hl, wc822 res 3, [hl] res 0, [hl] ld hl, wc81a ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a ld b, $5 call PacketSendBytes jp Function111b3b Function111a2a: ld hl, wc80b ld a, [hld] or a jr z, asm_111a47 cp $3 jr nz, asm_111a40 ld a, [hl] cp $2 jp z, Function111ab9 cp $3 jp z, Function111abd asm_111a40: ld a, $4b Function111a42: ldh [rSB], a jp Function111b2e asm_111a47: ld hl, wc815 dec [hl] jr nz, asm_111a40 inc hl dec [hl] jr nz, asm_111a40 inc hl dec [hl] jr z, .asm_111a63 ld hl, wc81f ld a, [hli] ld d, a ld a, [hl] ld hl, wc815 ld [hli], a ld a, d ld [hli], a jr asm_111a40 .asm_111a63 di ld a, [wc86a] cp $2a jr z, .asm_111aa8 ld hl, wc9b2 inc [hl] ld a, [hl] cp $1 jr z, .asm_111a91 ld hl, wc822 res 5, [hl] res 0, [hl] ld hl, wc821 res 4, [hl] ld a, $0 ld [wc805], a ld a, $29 ld [wc86a], a ld a, $1 ld [wc806], a jr .asm_111aa8 .asm_111a91 ld a, $29 ld [wc86a], a xor a ld [wc806], a ld [wc86b], a ld [wc80b], a ld [wc800], a ld a, $8 ld [wc807], a .asm_111aa8 call ResetReceivePacketBuffer call Function11164f ld hl, wc822 res 5, [hl] res 0, [hl] ei jp Function111b3b Function111ab9: ld a, $80 jr Function111a42 Function111abd: ld a, [wc814] or a jr nz, .asm_111acb ld a, [wMobileSDK_ReceivePacketBuffer] xor $80 jp Function111a42 .asm_111acb ld hl, wc819 inc [hl] ld a, $3 cp [hl] jr z, .asm_111afe call ResetReceivePacketBuffer ld a, $3 ld [wc800], a xor a ld hl, wc80a ld [hli], a ld [hli], a ld [hl], a ld hl, wc815 ld a, [wc820] ld [hli], a ld a, [wc81f] ld [hli], a ld a, [wc822] bit 0, a jr z, .asm_111af9 ld a, $b jr .asm_111afb .asm_111af9 ld a, $20 .asm_111afb ld [hli], a jr .asm_111b1c .asm_111afe ld hl, wc806 xor a ld [hli], a ld [wc800], a ld a, $6 ld [hl], a ld hl, wc821 set 1, [hl] ld a, $15 ld [wc80f], a ld a, $2 ld [wc810], a xor a ld [wc810 + 1], a .asm_111b1c ld a, $f1 jp Function111a42 Function111b21: ld hl, wc803 ld a, [hli] ld e, a ld d, [hl] ld a, [de] ldh [rSB], a inc de ld a, d ld [hld], a ld [hl], e Function111b2e: ld hl, wc822 set 1, [hl] ld a, (0 << rSC_ON) | (1 << rSC_CGB) | (1 << rSC_CLOCK) ldh [rSC], a ld a, (1 << rSC_ON) | (1 << rSC_CGB) | (1 << rSC_CLOCK) ldh [rSC], a Function111b3b: ret Function111b3c: xor a ld [wc819], a ld [wc80b], a ld hl, wc9b1 ld [hli], a ld [hl], a ld [wc800], a ld hl, wc822 res 5, [hl] bit 0, [hl] jr z, .asm_111b59 ld a, [wMobileSDK_ReceivePacketBufferAlt] jr .asm_111b5c .asm_111b59 ld a, [wMobileSDK_ReceivePacketBuffer] .asm_111b5c cp MOBILE_COMMAND_TRANSFER_DATA_END | $80 jr nz, .asm_111b62 ld a, MOBILE_COMMAND_TRANSFER_DATA | $80 .asm_111b62 ld b, a ld hl, Function111e28 push hl cp MOBILE_COMMAND_ERROR | $80 jp z, GetErrorCode ld a, [wMobileSDK_SendCommandID] cp -1 jp z, Function111ef8 cp MOBILE_COMMAND_TRANSFER_DATA | $80 jp z, Function111c17 cp MOBILE_COMMAND_DNS_QUERY | $80 jp z, Function111d23 cp MOBILE_COMMAND_OPEN_TCP_CONNECTION | $80 jr z, .asm_111bbe cp MOBILE_COMMAND_CLOSE_TCP_CONNECTION | $80 jr z, .asm_111bbe cp MOBILE_COMMAND_HANG_UP_TELEPHONE | $80 jr z, .asm_111be0 cp MOBILE_COMMAND_READ_CONFIGURATION_DATA | $80 jr z, .asm_111bf0 cp MOBILE_COMMAND_WRITE_CONFIGURATION_DATA | $80 jp z, Function111c06 cp MOBILE_COMMAND_TELEPHONE_STATUS | $80 jp z, Function111d70 cp MOBILE_COMMAND_ISP_LOGIN | $80 jr z, .asm_111bd0 cp MOBILE_COMMAND_ISP_LOGOUT | $80 jr z, .asm_111bca cp MOBILE_COMMAND_BEGIN_SESSION | $80 jp z, ParseResponse_BeginSession cp MOBILE_COMMAND_WAIT_FOR_TELEPHONE_CALL | $80 jp z, Function111d65 cp MOBILE_COMMAND_DIAL_TELEPHONE | $80 jp z, Function111d65 ld hl, wc822 res 0, [hl] ld a, $a ld [wc807], a xor a ld [wc800], a ret .asm_111bbe ld a, [wMobileSDK_ReceivePacketBuffer + 4] ld [wc86c], a ld a, $4 ld [wc807], a ret .asm_111bca ld a, $3 ld [wc807], a ret .asm_111bd0 ld a, $4 ld [wc807], a ld de, wc823 ld hl, wMobileSDK_ReceivePacketBuffer + 4 ld b, $4 jp MobileSDK_CopyBytes .asm_111be0 ld a, $2 ld [wc807], a ld hl, wc822 res 4, [hl] ld hl, wc821 res 4, [hl] ret .asm_111bf0 ld hl, wc829 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_ReceivePacketBuffer + 3 ; packet size ld a, [hli] dec a ld b, a inc hl call MobileSDK_CopyBytes ld a, $2 ld [wc807], a ret Function111c06: ld de, wc872 ld hl, wMobileSDK_ReceivePacketBuffer + 4 ld b, $2 call MobileSDK_CopyBytes ld a, $2 ld [wc807], a ret Function111c17: ld a, [wMobileSDK_ReceivePacketBuffer] cp MOBILE_COMMAND_TRANSFER_DATA_END | $80 jp z, Function111d07 ld a, [wc86e + 1] ld b, a ld a, [wc86e] or b jp z, Function111d07 ld hl, wc82b ld a, [hli] ld e, a ld d, [hl] ld a, [wMobileSDK_ReceivePacketBuffer + 3] dec a jp z, Function111d07 ld c, a ld a, [wc822] bit 4, a jp z, Function111cc2 ld a, [wc992] or a jr nz, .asm_111c89 ld a, [wMobileSDK_ReceivePacketBuffer + 5] or a jr z, .asm_111c50 cp $81 jr c, .asm_111c52 .asm_111c50 ld a, $80 .asm_111c52 ld b, a ld a, [wMobileSDK_ReceivePacketBuffer + 3] dec a dec a cp b jr c, .asm_111c6e .asm_111c5b ld hl, wc821 set 3, [hl] ld hl, wc993 ld a, $1 ld [hli], a ld a, [wMobileSDK_ReceivePacketBuffer + 3] dec a ld [hl], a jp Function111d07 .asm_111c6e ld hl, wc992 or a jr z, .asm_111c83 ld [hld], a ld [hl], b ld b, a ld hl, wMobileSDK_ReceivePacketBuffer + 6 ld de, wc880 call MobileSDK_CopyBytes jp Function111d07 .asm_111c83 ld a, $ff ld [hld], a ld [hl], b jr Function111d07 .asm_111c89 cp $ff jr nz, .asm_111c9d ld hl, wc991 ld a, [hli] ld b, a ld a, [wMobileSDK_ReceivePacketBuffer + 3] dec a cp b jr nc, .asm_111c5b jr z, .asm_111c5b xor a ld [hl], a .asm_111c9d ld hl, wc991 ld a, [hli] sub [hl] ld b, a ld a, [wMobileSDK_ReceivePacketBuffer + 3] dec a cp b jr nc, .asm_111c5b jr z, .asm_111c5b ld b, a ld l, [hl] ld h, $0 add l ld [wc992], a ld de, wc880 add hl, de ld e, l ld d, h ld hl, wMobileSDK_ReceivePacketBuffer + 5 call MobileSDK_CopyBytes jr Function111d07 Function111cc2: xor a cp d jr nz, .asm_111cda ld a, c cp e jr c, .asm_111cda jr z, .asm_111cda ld a, [wc821] set 2, a ld [wc821], a ld a, c sub e ld c, e ld e, a jr .asm_111ce1 .asm_111cda ld a, e sub c ld e, a ld a, d sbc $0 ld d, a .asm_111ce1 ld a, d ld [hld], a ld [hl], e ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a ld hl, wMobileSDK_ReceivePacketBuffer + 5 ld a, c or a jr z, Function111d07 ld b, a call MobileSDK_CopyBytes ld hl, wc829 ld a, e ld [hli], a ld [hl], d ld de, $3 add hl, de ld a, [hl] add c ld [hli], a jr nc, Function111d07 inc [hl] Function111d07: ld a, [wc822] bit 4, a jr z, .asm_111d1c bit 7, a jr z, .asm_111d1c ld hl, wc822 res 7, [hl] ld hl, wc821 res 0, [hl] .asm_111d1c ld a, [wc805] ld [wc807], a ret Function111d23: ld a, [wc829] ld e, a ld a, [wc829 + 1] ld d, a ld hl, wMobileSDK_ReceivePacketBuffer + 4 ld b, $4 call MobileSDK_CopyBytes ld a, $4 ld [wc807], a ret ParseResponse_BeginSession: ld de, wMobileSDK_ReceivePacketBuffer + 3 ld hl, MobilePacket_BeginSession + 5 ld b, 1 + STRLEN("NINTENDO") .check_loop ld a, [de] inc de cp [hl] jr nz, .check_done inc hl dec b jr nz, .check_loop .check_done ld a, b or a jr nz, .done ld a, [wMobileSDK_ReceivePacketBuffer + 14] ; device type cp $80 jr c, .fail cp $90 jr nc, .fail .done ld [wMobileSDK_AdapterType], a ld a, $2 ld [wc807], a ret .fail xor a jr .done Function111d65: ld a, $3 ld [wc807], a ld hl, wc821 set 4, [hl] ret Function111d70: ld hl, wc822 bit 0, [hl] jr z, .asm_111dc0 ld a, [wc805] ld [wc807], a ld a, [wMobileSDK_ReceivePacketBufferAlt + 4] ld b, a call Function111dd9 call Function111e15 res 0, [hl] ld a, b cp $7 jr z, .asm_111da9 or a ret nz ld hl, wc821 res 4, [hl] set 1, [hl] ld a, [wc822] bit 4, a jr nz, .asm_111dbb ld a, $23 ld [wc80f], a ld a, $6 ld [wc807], a ret .asm_111da9 ld hl, wc821 res 4, [hl] set 1, [hl] ld a, $11 ld [wc80f], a ld a, $6 ld [wc807], a ret .asm_111dbb xor a ld [wc807], a ret .asm_111dc0 ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a ld a, [wMobileSDK_ReceivePacketBuffer + 4] ld b, a call Function111dd9 call Function111e15 ld a, b ld [hl], a ld a, [wc805] ld [wc807], a ret Function111dd9: cp $ff jr z, .asm_111de7 or a ret z cp $4 jr z, .asm_111dea cp $5 jr z, .asm_111e12 .asm_111de7 ld b, $7 ret .asm_111dea ld b, $5 ld a, [wc822] bit 0, a jr z, .asm_111df8 ld a, [wc86a] jr .asm_111dfb .asm_111df8 ld a, [wc985] .asm_111dfb cp $4 ret z cp $1c ret z cp $1a ret z dec b cp $3 ret z ld b, $1 ld a, [wc822] bit 4, a ret z inc b ret .asm_111e12 ld b, $3 ret Function111e15: ld a, b and $7 rrca rrca rrca push hl ld l, a ld a, [wc821] and $1f or l ld [wc821], a pop hl ret Function111e28: jp ResetReceivePacketBuffer GetErrorCode: ; Converts an error packet into a BCD error code ld a, [wMobileSDK_SendCommandID] cp -1 jp z, Function111ef8 ld a, [wc86a] cp $d jr z, .asm_111e48 cp $2a jr z, .asm_111e48 ld a, $6 ld [wc807], a ld hl, wc821 set 1, [hl] .asm_111e48 ld a, [wc822] bit 0, a jr z, .asm_111e54 ld hl, wMobileSDK_ReceivePacketBufferAlt + 4 jr .asm_111e57 .asm_111e54 ld hl, wMobileSDK_ReceivePacketBuffer + 4 .asm_111e57 ld a, [hli] ld [wc80e], a cp MOBILE_COMMAND_BEGIN_SESSION jr z, .adapter_not_plugged_in cp MOBILE_COMMAND_DIAL_TELEPHONE jr z, .dial_telephone cp MOBILE_COMMAND_HANG_UP_TELEPHONE jr z, .hang_up_logout cp MOBILE_COMMAND_TRANSFER_DATA jr z, .transfer_data cp MOBILE_COMMAND_READ_CONFIGURATION_DATA jr z, .read_configuration_data cp MOBILE_COMMAND_ISP_LOGIN jr z, .isp_login cp MOBILE_COMMAND_ISP_LOGOUT jr z, .hang_up_logout cp MOBILE_COMMAND_OPEN_TCP_CONNECTION jr z, .open_tcp_connection cp MOBILE_COMMAND_CLOSE_TCP_CONNECTION jr z, .close_tcp_connection cp MOBILE_COMMAND_DNS_QUERY jr z, .dns_query ld a, [hl] .store_error_code ld [wc80f], a ret .adapter_not_plugged_in ld a, $10 jr .store_error_code .dial_telephone ld a, [hl] or $0 jr z, .asm_111e9d cp $2 jr z, .asm_111e99 ld a, $13 jr .store_error_code .asm_111e99 ld a, $17 jr .store_error_code .asm_111e9d ld a, $12 jr .store_error_code .hang_up_logout ld hl, wc821 res 1, [hl] res 4, [hl] ld a, $2 ld [wc807], a ret .transfer_data ld a, [hl] cp $1 jr nz, .asm_111ed3 ld a, [wc822] bit 4, a jr z, .asm_111ed3 res 4, a ld [wc822], a ld hl, wc821 ld a, [hl] and $f or $2 ld [hl], a ld a, $23 ld [wc80f], a ld a, $6 ld [wc807], a ret .asm_111ed3 ld hl, wc822 res 5, [hl] ld a, $24 jr .store_error_code .read_configuration_data ld a, $14 jr .store_error_code .isp_login ld a, $22 jr .store_error_code .open_tcp_connection ld hl, wc821 res 1, [hl] .dns_query ld a, $24 jr .store_error_code .close_tcp_connection ld hl, wc821 res 1, [hl] ld a, $3 ld [wc807], a ret Function111ef8: ld a, [wc805] ld [wc807], a ret PacketSendEmptyBody: ld de, 10 Function111f02: ld [wMobileSDK_SendCommandID], a ld b, $5 PacketSendBytes: ; hl = bytes ; de = size ; b = ? call Function1100b4 ret c ld a, [wc800] cp $0 jr z, .asm_111f17 call Function110226 scf ret .asm_111f17 ldh a, [rSC] and 1 << rSC_ON jr nz, .asm_111f17 di ld a, [wMobileSDK_SendCommandID] cp $ff jr z, .asm_111f35 ld a, l ld [wc81c], a ld a, h ld [wc81d], a ld a, e ld [wc81a], a ld a, d ld [wc81b], a .asm_111f35 ld a, e ld [wc801], a ld a, d ld [wc802], a ld a, l ld [wc803], a ld a, h ld [wc804], a ld hl, wc807 ld a, [hl] cp b jr z, .asm_111f4f ld [wc805], a .asm_111f4f ld a, b ld [wc807], a xor a ld [wc806], a ld a, $1 ld [wc800], a ld hl, wc822 set 5, [hl] ei ret Function111f63: push de ld hl, 0 ld c, b xor a cp b jr z, .asm_111f71 .asm_111f6c call Function111f8d jr nz, .asm_111f6c .asm_111f71 ld b, $4 .asm_111f73 call Function111f8d jr nz, .asm_111f73 ld e, l ld d, h ld hl, $000a add hl, bc ld c, l ld b, h pop hl ld a, d ld [hli], a ld a, e ld [hli], a ld a, $80 ld [hli], a xor a ld [hl], a ld e, c ld d, b ret Function111f8d: dec de ld a, [de] add l ld l, a ld a, $0 adc h ld h, a dec b ret Function111f97: ld hl, wc822 bit 0, [hl] ret nz ld a, [wc807] cp $2 jr c, .done cp $5 jr z, .done cp $6 jr nz, .hang_up ld a, [wc80f] cp $22 jr z, .done cp $23 jr z, .done cp $26 jr z, .done swap a and $f cp $1 jr z, .done cp $0 jr z, .done cp $8 jr nz, .hang_up .done scf ret .hang_up ld b, $5 ld hl, wMobileSDK_SendCommandID ld a, [hl] cp -1 jr z, .begin_session ld a, MOBILE_COMMAND_TELEPHONE_STATUS | $80 ld [hl], a ld hl, MobilePacket_TelephoneStatus ld de, MobilePacket_TelephoneStatus.End - MobilePacket_TelephoneStatus call PacketSendBytes ld hl, wc822 set 0, [hl] ret .begin_session ld hl, MobilePacket_BeginSession ld de, MobilePacket_BeginSession.End - MobilePacket_BeginSession jp PacketSendBytes ds 14 MobilePacket_Idle: db $4b .End MobilePacket_BeginSession: db $99, $66, MOBILE_COMMAND_BEGIN_SESSION, $00, $00, $08, "NINTENDO", $02, $77, $80, $00 .End MobilePacket_EndSession: db $99, $66, MOBILE_COMMAND_END_SESSION, $00, $00, $00, $00, $11, $80, $00 .End MobilePacket_DialTelephone: db $99, $66, MOBILE_COMMAND_DIAL_TELEPHONE, $00, $00, $00 .End MobilePacket_HangUpTelephone: db $99, $66, MOBILE_COMMAND_HANG_UP_TELEPHONE, $00, $00, $00, $00, $13, $80, $00 .End MobilePacket_TelephoneStatus: db $99, $66, MOBILE_COMMAND_TELEPHONE_STATUS, $00, $00, $00, $00, $17, $80, $00 .End MobilePacket_ISPLogin: db $99, $66, MOBILE_COMMAND_ISP_LOGIN, $00, $00 .End MobilePacket_ISPLogout: db $99, $66, MOBILE_COMMAND_ISP_LOGOUT, $00, $00, $00, $00, $22, $80, $00 .End MobilePacket_ReadConfigurationDataPart1: db $99, $66, MOBILE_COMMAND_READ_CONFIGURATION_DATA, $00, $00, $02, $00, $60, $00, $7b, $80, $00 .End MobilePacket_ReadConfigurationDataPart2: db $99, $66, MOBILE_COMMAND_READ_CONFIGURATION_DATA, $00, $00, $02, $60, $60, $00, $db, $80, $00 .End MobilePacket_WriteConfigurationData: db $99, $66, MOBILE_COMMAND_WRITE_CONFIGURATION_DATA, $00, $00 .End MobilePacket_DNSQuery: db $99, $66, MOBILE_COMMAND_DNS_QUERY, $00, $00 .End MobilePacket_WaitForTelephoneCall: db $99, $66, MOBILE_COMMAND_WAIT_FOR_TELEPHONE_CALL, $00, $00, $00, $00, $14, $80, $00 .End MobilePacket_TransferData: db $99, $66, MOBILE_COMMAND_TRANSFER_DATA, $00, $00, $01, $ff, $01, $15, $80, $00 .End MobilePacket_OpenTCPConnection: db $99, $66, MOBILE_COMMAND_OPEN_TCP_CONNECTION, $00, $00, $06 .End MobilePacket_CloseTCPConnection: db $99, $66, MOBILE_COMMAND_CLOSE_TCP_CONNECTION, $00, $00, $01 .End Unknown_112089: db -20, $14, $c9 db -28, $0f, $0e db -32, $0c, $53 db -60, $07, $94 db -80, $05, $ee db -20, $10, $b4 db -28, $0c, $dd Unknown_11209e: db "HELO ", 0 Unknown_1120a4: db "MAIL FROM:<", 0 Unknown_1120b0: db "RCPT TO:<", 0 Unknown_1120ba: db "DATA\r\n", 0 Unknown_1120c1: db "QUIT\r\n", 0 Unknown_1120c8: db "USER ", 0 Unknown_1120ce: db "PASS ", 0 Unknown_1120d4: db "STAT\r\n", 0 Unknown_1120db: db "LIST 00000\r\n", 0 Unknown_1120e8: db "RETR 00000\r\n", 0 Unknown_1120f5: db "DELE 00000\r\n", 0 Unknown_112102: db "TOP 00000 0\r\n", 0 Unknown_112110: db "GET ", 0 Unknown_112115: db " HTTP/1.0\r\n", 0 Unknown_112121: db "User-Agent: CGB-", 0 Unknown_112132: db "\r\n\r\n", 0 Unknown_112137: db "POST ", 0 Unknown_11213d: db "Content-Length: ", 0 Function11214e: ld a, [wc822] bit 5, a ret nz ld a, [wc86a] cp $a ret c ld c, a cp $d jr z, .asm_112187 cp $f jr z, .asm_112196 cp $29 jr z, .asm_112175 cp $2a jr z, .asm_112175 cp $28 jr z, .asm_112175 .asm_11216f ld a, [wc807] cp $6 ret z .asm_112175 ld b, $0 sla c ld hl, Jumptable_1121ac - 2 * $a add hl, bc ld a, [hli] ld h, [hl] ld l, a push hl ld hl, wc86b inc [hl] ld a, [hl] ret .asm_112187 ld c, a ld a, [wc86b] cp $1 jr nz, .asm_11216f ld hl, wc821 res 1, [hl] jr .asm_112175 .asm_112196 ld c, a ld a, [wc80f] cp $24 jr nz, .asm_11216f ld a, [wc86b] cp $1 jr nz, .asm_11216f ld hl, wc821 res 1, [hl] jr .asm_112175 Jumptable_1121ac: dw Function1121f6 dw Function112271 dw Function112373 dw Function1123b6 dw Function1123e1 dw Function112451 dw Function112715 dw Function11273a dw Function11299c dw Function112d33 dw Function112d33 dw Function112840 dw Function1128db dw Function112969 dw Function112a56 dw Function112b71 dw Function112bec dw Function112bbb dw Function112bec dw Function112b71 dw Function1134cb dw Function112d33 dw Function112d33 dw Function112d33 dw Function112d33 dw Function112d33 dw Function112d33 dw Function113519 dw Function113519 dw Function113519 dw Function113e42 dw Function113ef2 dw Function113f2d dw Function1121f6 dw Function1134cb dw Function113672 dw Function113626 Function1121f6: dec a jr z, .asm_1121fe dec a jr z, .asm_112210 dec [hl] ret .asm_1121fe ld a, [wMobileSDK_AdapterType] or a jr z, .asm_112206 jr Mobile_EndSession .asm_112206 ld a, $10 call Function11225d res 0, [hl] set 1, [hl] ret .asm_112210 ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a ld a, [wMobileSDK_AdapterType] cp $88 jr c, .asm_112249 sub $88 ld [hl], a ; There aren't more than four adapters cp $4 jr c, .asm_112226 ld a, $3 .asm_112226 ; The green adapter was scrapped, so the red adapter is the third cp $3 jr nz, .asm_11222b dec a .asm_11222b ld b, a ld a, $4 sub b ld d, a rlca add d ld c, a xor a cp b jr z, .asm_11223a ld a, $3 xor b .asm_11223a ld hl, wc871 ld [hld], a ld [hl], c ld a, [wc86a] cp $a jr nz, Function112251 jp Function1116a0 .asm_112249 ld a, $10 call Function11225d jp Function1116a4 Function112251: xor a ld [wc821], a ld [wc807], a inc a ld [wc86a], a ret Function11225d: ld [wc80f], a ld a, $5 ld [wc86a], a ld hl, wc821 ret Mobile_EndSession: ld a, MOBILE_COMMAND_END_SESSION | $80 ld hl, MobilePacket_EndSession jp PacketSendEmptyBody Function112271: dec a jr z, .asm_11228c dec a jr z, .asm_112292 dec a jr z, .asm_1122a1 dec a jp z, .asm_112309 dec a jp z, .asm_112326 dec a jp z, .asm_112335 dec a jp z, .asm_112342 dec [hl] ret .asm_11228c ld hl, MobilePacket_ReadConfigurationDataPart1 jp Function11236b .asm_112292 ld hl, wc829 ld a, LOW(wc8ca + 22) ld [hli], a ld a, HIGH(wc8ca + 22) ld [hli], a ld hl, MobilePacket_ReadConfigurationDataPart2 jp Function11236b .asm_1122a1 ld hl, wc880 ld a, [hli] cp "M" jr nz, .asm_1122f5 ld a, [hld] cp "A" jr nz, .asm_1122f5 ld b, $be ld de, 0 .asm_1122b3 ld a, [hli] add e ld e, a ld a, $0 adc d ld d, a dec b jr nz, .asm_1122b3 ld a, [hli] cp d jr nz, .asm_1122fc ld a, [hl] cp e jr nz, .asm_1122fc ld hl, wc884 ld de, wc836 ld b, $8 call MobileSDK_CopyBytes ld hl, wc8ca ld b, $2c call MobileSDK_CopyBytes ld a, [wMobileSDK_PacketBuffer + 50] ld c, a sub $8 ld e, a ld d, 0 ld hl, wMobileSDK_PacketBuffer + 51 add hl, de ld e, l ld d, h ld hl, wc836 ld b, $8 call MobileSDK_CopyBytes ld b, c call Function111f63 jr Function11235a .asm_1122f5 ld a, $25 ld [wc872], a jr .asm_112301 .asm_1122fc ld a, $14 ld [wc872], a .asm_112301 ld a, $6 ld [wc86b], a jp Mobile_EndSession .asm_112309 ld a, [wc821] and $e0 jr nz, .asm_112314 ld b, $92 jr Function11234b .asm_112314 cp $e0 ld a, $11 jr z, .asm_11231b inc a .asm_11231b ld [wc872], a ld a, $6 ld [wc86b], a jp Mobile_EndSession .asm_112326 ld d, a ld a, [wMobileSDK_PacketBuffer + 50] add $a ld e, a ld hl, wMobileSDK_PacketBuffer + 45 ld a, $a1 jp Function111f02 .asm_112335 ld a, $2 ld [wc86a], a ld hl, wc821 res 0, [hl] set 5, [hl] ret .asm_112342 ld a, [wc872] call Function11225d jp Function1116a4 Function11234b: ld a, [wMobileSDK_PacketBuffer + 5] add $a ld e, a ld d, 0 ld hl, wMobileSDK_PacketBuffer ld a, b jp Function111f02 Function11235a: ld hl, wc86e ld a, LOW(wc880) ld [hli], a ld a, HIGH(wc880) ld [hl], a ld a, MOBILE_COMMAND_TELEPHONE_STATUS | $80 ld hl, MobilePacket_TelephoneStatus jp PacketSendEmptyBody Function11236b: ld a, $99 ld de, $000c jp Function111f02 Function112373: dec a jr z, Function11235a dec a jr z, .asm_112381 dec a jr z, .asm_11239b dec a jr z, .asm_1123ad dec [hl] ret .asm_112381 ld a, [wc821] and $e0 jr nz, .asm_11238c ld b, $92 jr Function11234b .asm_11238c cp $e0 ld a, $11 jr z, .asm_112393 inc a .asm_112393 ld a, $3 ld [wc86b], a jp Mobile_EndSession .asm_11239b ld hl, wc822 set 4, [hl] ld a, $2 ld [wc86a], a ld hl, wc821 res 0, [hl] set 6, [hl] ret .asm_1123ad ld a, [wc872] call Function11225d jp Function1116a4 Function1123b6: dec a jr z, .wait_for_call dec a jr z, .asm_1123c6 ret .asm_1123bd dec [hl] .wait_for_call ld a, MOBILE_COMMAND_WAIT_FOR_TELEPHONE_CALL | $80 ld hl, MobilePacket_WaitForTelephoneCall jp PacketSendEmptyBody .asm_1123c6 ld a, [wMobileSDK_ReceivePacketBuffer] cp $ee jr z, .asm_1123bd ld hl, wc822 set 4, [hl] ld a, $2 ld [wc86a], a ld hl, wc821 res 0, [hl] set 6, [hl] set 5, [hl] ret Function1123e1: dec a jr z, .asm_1123f2 dec a jr z, .asm_11240a dec a jr z, .asm_112416 dec a jr z, .asm_11241e dec a jr z, .asm_112421 dec [hl] ret .asm_1123f2 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jr z, .asm_112408 call Function1127e1 jr z, .asm_112408 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 32 jp Function1127c5 .asm_112408 jr Function112430 .asm_11240a xor a ld [wc86d], a ld a, MOBILE_COMMAND_ISP_LOGOUT | $80 ld hl, MobilePacket_ISPLogout jp PacketSendEmptyBody .asm_112416 ld a, MOBILE_COMMAND_HANG_UP_TELEPHONE | $80 ld hl, MobilePacket_HangUpTelephone jp PacketSendEmptyBody .asm_11241e jp Mobile_EndSession .asm_112421 ld hl, wc822 res 4, [hl] ld hl, wc821 ld a, [hl] and $f ld [hl], a jp Function1116a0 Function112430: ld a, $3 ld [wc807], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_CloseTCPConnection ld b, MobilePacket_CloseTCPConnection.End - MobilePacket_CloseTCPConnection call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de inc b call Function111f63 ld a, $a4 ld hl, wMobileSDK_PacketBuffer jp Function111f02 Function112451: dec a jr z, .asm_112458 dec a jr z, .asm_112496 ret .asm_112458 ld b, $6 ld de, wMobileSDK_PacketBuffer + 92 call Function111f63 ld a, [wc86e] inc a cp $3 jr nz, .asm_11248b ld a, [wMobileSDK_ReceivePacketBuffer + 128] or a jr z, .asm_11248b ld hl, wc995 ld a, [hli] cp $99 jr nz, .asm_112480 ld a, [hli] cp $66 jr nz, .asm_112480 ld a, [hli] cp $23 jr z, .asm_11248b .asm_112480 ld hl, wMobileSDK_PacketBuffer + 80 ld de, wc995 ld b, $10 call MobileSDK_CopyBytes .asm_11248b ld a, $a3 ld de, $0010 ld hl, wMobileSDK_PacketBuffer + 80 jp Function111f02 .asm_112496 ld a, [wMobileSDK_ReceivePacketBuffer] cp $a3 jr z, .asm_1124ce ld a, [wc822] bit 3, a jr z, .asm_1124ab dec [hl] ld a, $3 ld [wc807], a ret .asm_1124ab ld a, [wc9af] cp $5 jr c, .asm_1124b8 ld hl, wc821 set 1, [hl] ret .asm_1124b8 dec [hl] ld hl, wc9af inc [hl] ld hl, wc822 set 3, [hl] ld hl, wc815 ld a, [wc820] ld [hli], a ld a, [wc81f] ld [hl], a ret .asm_1124ce xor a ld [wc9af], a ld a, [wc86e] inc a ld [wc86d], a dec a jp z, Function11261c dec a jp z, Function112654 dec a jp z, Function112597 dec a jp z, Function112566 call Function1125c7 push de ld de, wc880 ld hl, wc827 ld a, e ld [hli], a ld a, d ld [hli], a ld a, e ld [hli], a ld a, d ld [hli], a ld a, $1 ld [wc86e], a ld a, $fa ld [hli], a xor a ld [hli], a xor a ld [hli], a ld [hli], a pop de ld a, $1 ld [wc994], a call Function11269b ld a, $5 ld [wc86b], a call Function112534 ld a, [wc9a5] or a jr z, .asm_112521 ld a, $1 .asm_112521 add $23 ld [wc86a], a ld a, [wc98a] cp $2 jr nz, .asm_112531 xor a ld [wc9a5], a .asm_112531 jp Function1125bf Function112534: ld b, $fa ld hl, wc880 xor a .asm_11253a ld [hli], a dec b jr nz, .asm_11253a ld a, [wc876] ld [wc87c], a ld a, [wc877] ld [wc87d], a ld a, [wc87a] ld [wc87e], a ld a, [wc87b] ld [wc87f], a ld a, c ld [wMobileSDK_PacketBuffer + 17], a ld b, c call Function111f63 ld a, $95 ld hl, wMobileSDK_PacketBuffer + 12 jp Function111f02 Function112566: call Function1125c7 ld a, [wMobileSDK_PacketBuffer + 19] and $1 or a jr nz, .asm_11257d ld a, [wc98a] cp $2 jr nz, .asm_11257d ld a, $1 ld [wc994], a .asm_11257d call Function11269b ld a, $5 ld [wc86b], a call Function112534 ld a, [wc9a5] or a jr z, .asm_112590 ld a, $1 .asm_112590 add $21 ld [wc86a], a jr Function1125bf Function112597: call Function1125c7 call Function11269b ld a, $5 ld [wc86b], a call Function112534 ld a, [wc98f] ld b, a ld a, [wc994] and $1 add $13 bit 0, b jr z, .asm_1125bc sub $13 add $1f dec b sla b add b .asm_1125bc ld [wc86a], a Function1125bf: ld hl, wc821 set 0, [hl] res 2, [hl] ret Function1125c7: ld hl, wc872 ld a, [hli] ld c, a ld a, [hli] ld b, a ld a, [hli] ld e, a ld d, [hl] ld a, [wc994] and $1 xor $1 ld [wc86b], a ld hl, wc827 ld a, e ld [hli], a ld a, d ld [hli], a inc de inc de ld a, LOW(wc880) ld [hli], a ld a, HIGH(wc880) ld [hli], a dec bc dec bc ld a, $fa ld [hli], a ld a, $0 ld [hli], a xor a ld [hli], a ld [hli], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 ld de, wMobileSDK_PacketBuffer + 12 ld hl, MobilePacket_TransferData ld b, $5 call MobileSDK_CopyBytes inc de ld a, [wc86c] ld [de], a inc de ret Function11261c: xor a ld [wc86b], a ld a, [wc86c] ld [wMobileSDK_PacketBuffer + 118], a ld de, wMobileSDK_PacketBuffer + 102 ld [de], a inc de ld b, $1 call Function111f63 call Function112724 ld a, [wMobileSDK_PacketBuffer + 117] ld b, a ld de, wMobileSDK_PacketBuffer + 118 add e ld e, a ld a, $0 adc d ld d, a call Function111f63 ld hl, wMobileSDK_PacketBuffer + 96 call Function1127c5 ld a, $11 ld [wc86a], a Function11264e: ld hl, wc821 set 0, [hl] ret Function112654: xor a ld [wc86b], a ld a, [wc86c] ld [wMobileSDK_PacketBuffer + 102], a ld [wMobileSDK_PacketBuffer + 166], a ld de, wMobileSDK_PacketBuffer + 134 ld [de], a inc de ld b, $1 call Function111f63 call Function112724 ld a, [wMobileSDK_PacketBuffer + 165] ld b, a ld de, wMobileSDK_PacketBuffer + 166 add e ld e, a ld a, $0 adc d ld d, a call Function111f63 ld a, [wMobileSDK_PacketBuffer + 101] ld b, a ld de, wMobileSDK_PacketBuffer + 102 add e ld e, a ld a, $0 adc d ld d, a call Function111f63 ld hl, wMobileSDK_PacketBuffer + 128 call Function1127c5 ld a, $12 ld [wc86a], a jr Function11264e Function11269b: ld bc, $0001 ld hl, Unknown_112110 ld a, [wc994] or a call nz, Function1126ac call MobileSDK_CopyString ret Function1126ac: ld hl, Unknown_112137 ret Function1126b0: ld hl, Unknown_112115 jp MobileSDK_CopyString Function1126b6: ld hl, Unknown_112121 call MobileSDK_CopyString ld hl, $013f ld b, $4 call MobileSDK_CopyBytes ld a, $2d ld [de], a inc de ld a, [$014c] and $f0 swap a or $30 ld [de], a inc de ld a, [$014c] and $f or $30 ld [de], a inc de ld a, $7 add c ld c, a ld hl, Unknown_112132 jp MobileSDK_CopyString Function1126e6: xor a ld [wc86b], a ld hl, Unknown_11213d call MobileSDK_CopyString ld hl, wc9a5 ld b, $5 .asm_1126f5 ld a, [hl] cp $30 jr nz, .asm_112701 inc hl dec b ld a, $1 cp b jr nz, .asm_1126f5 .asm_112701 push bc call MobileSDK_CopyBytes ld a, $d ld [de], a inc de ld a, $a ld [de], a inc de pop bc ld a, b add $2 add c ld c, a or c ret Function112715: xor a ld [wc86c], a ld a, $2 ld [wc86a], a ld hl, wc821 res 0, [hl] ret Function112724: ld a, $ff ld [wc86e], a Function112729: push hl ld hl, wc82c xor a ld [hld], a ld a, $ff ld [hld], a ld a, HIGH(wc880) ld [hld], a ld a, LOW(wc880) ld [hl], a pop hl ret Function11273a: dec a jr z, .asm_112752 dec a jr z, .asm_11278f dec a jr z, .asm_112744 ret .asm_112744 xor a ld [wc86d], a ld a, $30 call Function11225d set 1, [hl] res 0, [hl] ret .asm_112752 call Function1127e1 jr nz, .asm_11277a ld hl, wc880 call Function112b11 ld a, $2 cp d jr nz, .asm_1127b7 ld a, $20 cp e jr nz, .asm_1127b7 call Function112724 ld a, [wMobileSDK_PacketBuffer + 117] add $a ld e, a ld d, 0 ld a, $95 ld hl, wMobileSDK_PacketBuffer + 112 jp Function111f02 .asm_11277a ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jr z, Function1127cd ld hl, wc86b dec [hl] xor a ld [wMobileSDK_ReceivePacketBuffer + 3], a ld hl, wMobileSDK_PacketBuffer + 96 jp Function1127c5 .asm_11278f call Function1127e1 jr nz, .asm_11277a ld hl, wc880 call Function112b11 ld a, $2 cp d jr nz, .asm_1127b7 ld a, $50 cp e jr nz, .asm_1127b7 ld a, $3 ld [wc86a], a ld hl, wc821 ld a, [hl] and $d6 or $80 ld [hl], a xor a ld [wc98a], a ret .asm_1127b7 ld hl, wc810 ld a, e ld [hli], a ld [hl], d ld a, $2 ld [wc86b], a jp Function112430 Function1127c5: ld de, $000b ld a, $95 jp Function111f02 Function1127cd: ld hl, wc810 xor a ld [hli], a ld [hl], a xor a ld [wc86d], a ld a, $30 call Function11225d set 1, [hl] res 0, [hl] ret Function1127e1: call Function112807 ld hl, wc832 Function1127e7: ld a, [hli] cp $d ret nz ld a, [hl] cp $a ret nz ld a, $20 ld [hl], a ret Function1127f3: call Function112807 ld hl, wc82f ld a, [hli] cp $d ret nz ld a, [hli] cp $a ret nz ld a, [hli] cp $2e ret nz jr Function1127e7 Function112807: push bc push de ld hl, wMobileSDK_ReceivePacketBuffer + 3 ld a, [hl] dec a jr z, .asm_11282d ld c, a cp $5 jr nc, .asm_112830 ld a, $5 sub c ld b, a ld e, c ld d, $0 ld hl, wc82f add hl, de ld de, wc82f call MobileSDK_CopyBytes ld hl, wMobileSDK_ReceivePacketBuffer + 5 ld b, c .asm_11282a call MobileSDK_CopyBytes .asm_11282d pop de pop bc ret .asm_112830 sub $5 ld c, a ld b, 0 ld hl, wMobileSDK_ReceivePacketBuffer + 5 add hl, bc ld b, $5 ld de, wc82f jr .asm_11282a Function112840: dec a jr z, .asm_112844 ret .asm_112844 call Function1127e1 jr nz, .asm_1128ab ld hl, wc880 ld a, [hli] cp $32 jr nz, Function1128bd ld a, [hli] cp $35 jr nz, Function1128bd call Function112724 ld hl, wc87c ld a, [hli] ld h, [hl] ld l, a ld a, [hl] or a jr z, .asm_11289d push hl ld hl, wc86b dec [hl] ld bc, $0001 ld de, wMobileSDK_PacketBuffer + 19 ld hl, Unknown_1120b0 call MobileSDK_CopyString pop hl ld a, $80 call MobileSDK_CopyStringLen ld a, $3e ld [de], a inc de inc c ld a, l ld [wc87c], a ld a, h ld [wc87d], a call Function11295e ld a, c ld [wMobileSDK_PacketBuffer + 17], a ld b, c call Function111f63 ld hl, wMobileSDK_PacketBuffer + 12 ld d, $0 ld e, c ld a, $95 jp Function111f02 .asm_11289d ld a, $3 ld [wc86a], a call Function1128d3 ld a, $1 ld [wc98a], a ret .asm_1128ab ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp z, Function1127cd ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer jp Function1127c5 Function1128bd: ld hl, wc880 call Function112b11 ld hl, wc810 ld a, e ld [hli], a ld [hl], d ld a, $30 call Function11225d set 1, [hl] res 0, [hl] ret Function1128d3: ld hl, wc821 res 0, [hl] res 2, [hl] ret Function1128db: dec a jr z, .asm_112947 dec a jr z, .asm_1128e5 dec a jr z, .asm_112913 ret .asm_1128e5 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp z, Function1127cd call Function113482 ld a, [wc86e + 1] or a jr nz, .asm_112901 ld a, $3 ld [wc86a], a ld hl, wc821 res 0, [hl] ret .asm_112901 call Function112724 ld de, wMobileSDK_PacketBuffer + 5 ld a, $1 ld [de], a inc de inc de ld b, $1 call Function111f63 jr .asm_112941 .asm_112913 call Function1127e1 jr nz, .asm_11293d ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp z, Function1127cd ld hl, wc880 call Function112b11 ld a, d cp $2 jr nz, .asm_11295b ld a, e cp $50 jr nz, .asm_11295b ld a, $3 ld [wc86a], a call Function1128d3 xor a ld [wc98a], a ret .asm_11293d ld hl, wc86b dec [hl] .asm_112941 ld hl, wMobileSDK_PacketBuffer jp Function1127c5 .asm_112947 call Function1127e1 jr nz, .asm_11293d ld hl, wc880 call Function112b11 ld a, d cp $3 jr nz, .asm_11295b ld a, e cp $54 ret z .asm_11295b jp Function1128bd Function11295e: ld a, $d ld [de], a inc de inc c ld a, $a ld [de], a inc de inc c ret Function112969: dec a jr z, .asm_112970 dec a jr z, .asm_112989 ret .asm_112970 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jr z, .asm_112986 call Function1127e1 jr z, .asm_112986 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 32 jp Function1127c5 .asm_112986 jp Function112430 .asm_112989 xor a ld [wc86d], a ld a, $2 ld [wc86a], a ld hl, wc821 res 0, [hl] res 7, [hl] set 5, [hl] ret Function11299c: dec a jr z, .asm_1129aa dec a jr z, .asm_1129c9 dec a jr z, .asm_1129e7 dec a jp z, .asm_112a1d ret .asm_1129aa call Function1127e1 jr nz, .asm_1129fe ld a, [wc880] cp $2b jr nz, .asm_112a0f call Function112724 ld a, [wMobileSDK_PacketBuffer + 101] add $a ld e, a ld d, 0 ld a, $95 ld hl, wMobileSDK_PacketBuffer + 96 jp Function111f02 .asm_1129c9 ld d, a call Function1127e1 jr nz, .asm_1129fe ld a, [wc880] cp $2b jr nz, .asm_112a0f call Function112724 ld a, [wMobileSDK_PacketBuffer + 165] add $a ld e, a ld a, $95 ld hl, wMobileSDK_PacketBuffer + 160 jp Function111f02 .asm_1129e7 call Function1127e1 jr nz, .asm_1129fe ld a, [wc880] cp $2b jr nz, .asm_112a0f ld a, $4 ld [wc86a], a call Function1128d3 set 7, [hl] ret .asm_1129fe ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jr z, Function112a42 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 128 jp Function1127c5 .asm_112a0f ld a, [wc86b] ld [wMobileSDK_PacketBuffer + 32], a ld a, $3 ld [wc86b], a jp Function112430 .asm_112a1d xor a ld [wc86d], a ld de, $0002 ld a, [wMobileSDK_PacketBuffer + 32] cp $1 jr z, .asm_112a2c inc de .asm_112a2c Function112a2c: ld hl, wc821 set 1, [hl] res 0, [hl] ld hl, wc80f ld a, $31 ld [hli], a ld a, e ld [hli], a ld [hl], d ld a, $5 ld [wc86a], a ret Function112a42: ld hl, wc810 xor a ld [hli], a ld [hl], a xor a ld [wc86d], a ld a, $31 call Function11225d set 1, [hl] res 0, [hl] ret Function112a56: dec a jr z, .asm_112a5a ret .asm_112a5a call Function1127e1 jr nz, .asm_112a95 ld hl, wc880 ld a, [hli] cp $2b jr nz, .asm_112aa6 .asm_112a67 ld a, [hli] cp $20 jr nz, .asm_112a67 call Function112aac ld a, [wc86e] ld c, a ld a, [wc86e + 1] ld b, a ld a, e ld [bc], a inc bc ld a, d ld [bc], a call Function112aac ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a inc hl inc hl ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, $4 ld [wc86a], a jp Function1128d3 .asm_112a95 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jr z, Function112a42 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 128 jp Function1127c5 .asm_112aa6 ld de, $0005 jp Function112a2c Function112aac: ld a, [wc872] push af ld a, [wc873] push af ld a, [wc874] push af ld bc, 0 ld de, 0 .asm_112abe ld a, [hli] cp $d jr z, .asm_112b04 cp $20 jr z, .asm_112b04 and $f ld b, a sla e rl d rl c ld a, e ld [wc872], a ld a, d ld [wc873], a ld a, c ld [wc874], a sla e rl d rl c sla e rl d rl c ld a, [wc872] add e ld e, a ld a, [wc873] adc d ld d, a ld a, [wc874] adc c ld c, a ld a, b add e ld e, a ld a, $0 adc d ld d, a ld a, $0 adc c ld c, a jr .asm_112abe .asm_112b04 pop af ld [wc874], a pop af ld [wc873], a pop af ld [wc872], a ret Function112b11: ld a, [wc872] push af ld a, [wc873] push af ld a, [wc874] push af ld bc, $0300 ld de, wc872 call .asm_112b60 call nc, .asm_112b60 call nc, .asm_112b60 dec hl .asm_112b2d ld a, [hli] cp "\r" jr z, .asm_112b36 cp " " jr nz, .asm_112b2d .asm_112b36 push hl ld hl, wc872 ld de, 0 ld a, b or a jr z, .asm_112b49 dec a jr z, .asm_112b4b dec a jr z, .asm_112b4f jr .asm_112b52 .asm_112b49 ld a, [hli] ld d, a .asm_112b4b ld a, [hli] swap a ld e, a .asm_112b4f ld a, [hli] or e ld e, a .asm_112b52 pop hl pop af ld [wc874], a pop af ld [wc873], a pop af ld [wc872], a ret .asm_112b60: ld a, [hli] cp "0" jr c, .asm_112b6f cp "9" + 1 jr nc, .asm_112b6f and $f ld [de], a inc de dec b ret .asm_112b6f scf ret Function112b71: dec a jr z, .asm_112b75 ret .asm_112b75 call Function1127e1 jr nz, .asm_112ba3 ld hl, wc880 ld a, [hli] cp $2b jr nz, .asm_112bb5 .asm_112b82 ld a, [hli] cp $20 jr nz, .asm_112b82 .asm_112b87 ld a, [hli] cp $20 jr nz, .asm_112b87 call Function112aac ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a ld a, e ld [hli], a ld a, d ld [hli], a ld a, c ld [hli], a ld a, $4 ld [wc86a], a jp Function1128d3 .asm_112ba3 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp z, Function112a42 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 128 jp Function1127c5 .asm_112bb5 ld de, $0004 jp Function112a2c Function112bbb: dec a jr z, .asm_112bbf ret .asm_112bbf call Function1127e1 jr nz, .asm_112bd4 ld hl, wc880 ld a, [hli] cp $2b jr nz, .asm_112be6 ld a, $4 ld [wc86a], a jp Function1128d3 .asm_112bd4 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp z, Function112a42 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 128 jp Function1127c5 .asm_112be6 ld de, $0004 jp Function112a2c Function112bec: dec a jr z, .asm_112bf7 dec a jp z, .asm_112cdb dec a ret nz dec [hl] ret .asm_112bf7 ld a, [wc880] cp $2d jr nz, .asm_112c03 call Function1127e1 jr z, .asm_112c0b .asm_112c03 ld a, [wc821] bit 2, a jp z, .asm_112cef .asm_112c0b ld hl, wc86b inc [hl] ld hl, wc880 ld a, [hli] cp $2b jp nz, Function112d20 ld b, $7f .asm_112c1a ld a, [hli] dec b cp $a jr nz, .asm_112c1a push hl ld hl, wc98f ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, b ld [wc82d], a ld a, [hli] ld h, [hl] sub b ld l, a ld a, h sbc $0 ld h, a jr nc, .asm_112c56 cp $ff jr nz, .asm_112c56 ld hl, wc991 ld a, [hli] ld c, a inc hl ld a, b sub c ld [hli], a ld a, [wc82b] ld [hl], a ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, c ld [hli], a xor a ld [hl], a pop hl ld b, c jp MobileSDK_CopyBytes .asm_112c56 ld [wc993], a ld a, [wc82b] ld c, a ld [wc994], a push hl ld a, l sub c ld l, a ld a, h sbc $0 ld h, a jr nc, .asm_112c9f cp $ff jr nz, .asm_112c9f ld a, c ld [wMobileSDK_ReceivePacketBuffer + 1], a ld a, [wMobileSDK_ReceivePacketBuffer + 3] sub c pop hl ld c, l pop hl push af call MobileSDK_CopyBytes pop af push de ld hl, wMobileSDK_ReceivePacketBuffer + 4 ld e, a ld d, 0 add hl, de pop de ld b, c call MobileSDK_CopyBytes ld a, [wMobileSDK_ReceivePacketBuffer + 1] sub c ld [wc994], a ld hl, wc827 ld a, [hli] ld h, [hl] ld l, a ld a, [wc991] ld [hli], a xor a ld [hl], a ret .asm_112c9f ld [wc994], a ld a, l ld [wc82b], a ld a, h ld [wc82c], a pop hl pop hl call MobileSDK_CopyBytes ld a, [wMobileSDK_ReceivePacketBuffer + 3] sub c push de ld hl, wMobileSDK_ReceivePacketBuffer + 4 ld e, a ld d, 0 add hl, de pop de ld b, c call MobileSDK_CopyBytes ld a, [wc82d] add c ld [wc82d], a ld a, [wc82e] adc 0 ld [wc82e], a ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a ld hl, wc821 res 2, [hl] .asm_112cdb ld a, [wc821] bit 2, a jr z, .asm_112cea ld a, $2 ld [wc86b], a jp .asm_112d09 .asm_112cea call Function1127f3 jr z, .asm_112d01 .asm_112cef ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp z, Function112a42 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer + 128 jp Function1127c5 .asm_112d01 ld a, $4 ld [wc86a], a call Function1128d3 .asm_112d09 ld a, [wc86e] ld l, a ld a, [wc86e + 1] or l ret z ld hl, wc827 ld a, [hli] ld e, a ld d, [hl] ld hl, wc82d ld b, $2 jp MobileSDK_CopyBytes Function112d20: ld a, [wc86a] cp $1a jr nz, .asm_112d2d ld de, $0004 jp Function112a2c .asm_112d2d ld de, $0004 jp Function112a2c Function112d33: dec a jr z, .asm_112d87 dec a jr z, .asm_112d9f dec a jp z, .asm_112e46 dec a jr z, .asm_112d4d dec a jp z, Function113317 dec a jp z, Function113386 dec a jp .asm_112e46 .asm_112d4c ; unreferenced ret .asm_112d4d ld a, [wc86a] cp $23 jr z, .asm_112d6d cp $1f jr z, .asm_112d60 cp $20 jr z, .asm_112d6d cp $22 jr nz, .asm_112d82 .asm_112d60 ld hl, wc98b ld a, [hli] cp $1 jr nz, .asm_112d82 ld a, [hl] cp $4 jr nz, .asm_112d82 .asm_112d6d ld hl, wc86e xor a ld [hli], a ld [hl], a ld hl, wc82b ld [hli], a ld [hl], a ld hl, wc821 res 2, [hl] ld hl, wc86b dec [hl] dec [hl] .asm_112d82 ld hl, wc86b dec [hl] ret .asm_112d87 call Function113482 ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 .asm_112d9f ld a, [wc821] bit 2, a jr z, .asm_112dab ld a, $3 ld [hl], a jr .asm_112dc1 .asm_112dab ld a, [wMobileSDK_ReceivePacketBuffer] cp MOBILE_COMMAND_TRANSFER_DATA_END | $80 jr z, .asm_112dc1 ld hl, wc86b dec [hl] ld de, $000b ld hl, wMobileSDK_PacketBuffer ld b, $5 jp PacketSendBytes .asm_112dc1 ld a, [wc989] cp $2 jr nc, .asm_112df2 call Function112f61 bit 2, a ret nz cp $3 jr z, .asm_112e38 cp $1 jr nz, .asm_112df2 ld a, [wc86a] cp $1f jr z, .asm_112de1 cp $20 jr nz, .asm_112df2 .asm_112de1 ld hl, wc98b ld a, [hli] cp $1 jr nz, .asm_112df2 ld a, $4 cp [hl] jr nz, .asm_112df2 xor a ld [wc990], a .asm_112df2 ld a, [wc86e] ld l, a ld a, [wc86e + 1] or l ret z ld a, [wc86a] cp $13 jr z, .asm_112e21 cp $14 jr z, .asm_112e21 cp $20 ret z cp $22 ret z cp $23 ret z cp $1f jr nz, .asm_112e21 ld hl, wc98b ld a, [hli] cp $0 ret nz ld a, $2 cp [hl] ret nz ld a, [wc86a] .asm_112e21 cp $24 jr nz, .asm_112e2a ld hl, wc878 jr .asm_112e2d .asm_112e2a ld hl, wc827 .asm_112e2d ld a, [hli] ld e, a ld d, [hl] ld hl, wc82d ld b, $2 jp MobileSDK_CopyBytes .asm_112e38 ld hl, wc821 set 1, [hl] res 0, [hl] ld de, wc98b ld a, $24 jr .asm_112e95 .asm_112e46 ld a, [wc86a] cp $1f jr z, .asm_112ea6 cp $20 jr z, .asm_112ea6 ld a, [wc98a] cp $1 jr z, .asm_112e65 ld a, [wc86a] cp $21 jp z, .asm_112eea cp $22 jp z, .asm_112eea .asm_112e65 ld a, [wc990] or a jp z, .asm_112f3d .asm_112e6c ld hl, wc98c ld a, [hld] cp $3 jr nz, .asm_112e7f ld a, [hl] or a jr z, .asm_112e7f cp $3 jr nc, .asm_112e7f call Function1133fe .asm_112e7f ld hl, wc821 set 1, [hl] res 0, [hl] ld de, wc98b ld a, [wc990] cp $1 ld a, $32 jr z, .asm_112e95 inc de inc de inc a .asm_112e95 ld [wc80f], a ld hl, wc810 ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a ld a, $5 ld [wc86a], a ret .asm_112ea6 ld hl, wc98b ld a, [hli] ld h, [hl] ld l, a cp $0 jr nz, .asm_112ec1 ld a, $2 cp h jr nz, .asm_112ec1 ld a, [wc98d] ld b, a ld a, [wc98e] or b jr nz, .asm_112e6c jr .asm_112f3d .asm_112ec1 ld a, $1 cp l jr nz, .asm_112e6c ld a, $4 cp h jr nz, .asm_112e6c ld a, [wc9a5] or a jr nz, .asm_112efb ld a, [wc86e] ld l, a ld a, [wc86e + 1] or l jr nz, .asm_112efb ld a, $2 ld [wc86a], a xor a ld [wc86d], a ld hl, wc821 res 0, [hl] ret .asm_112eea ld hl, wc98b ld a, [hli] ld h, [hl] ld l, a cp $0 jp nz, .asm_112e6c ld a, $2 cp h jp nz, .asm_112e6c .asm_112efb ld a, [wc98d] ld b, a ld a, [wc98e] cp b jp nz, .asm_112e6c or a jr z, .asm_112f13 cp $1 jp nz, .asm_112e6c ld a, $1 ld [wc993], a .asm_112f13 ld a, [wc86b] cp $7 jr z, .asm_112f3d ld hl, wc98f inc [hl] ld a, $f ld [wc86a], a ld a, $1 ld [wc86b], a ld a, [wc86d] ld [wc86e], a xor a ld [wc989], a ld a, $a3 ld de, $0010 ld hl, wc995 jp Function111f02 .asm_112f3d ld a, [wc993] cp $1 jr nz, .asm_112f52 ld a, $2 ld [wc990], a ld hl, wc98d dec a ld [hli], a ld [hl], a jp .asm_112e7f .asm_112f52 ld a, $2 ld [wc86a], a xor a ld [wc86d], a ld hl, wc821 res 0, [hl] ret Function112f61: ld hl, wc989 ld a, [hl] or a jr nz, .asm_112f8a inc [hl] ld hl, wc880 ld de, $0008 add hl, de .asm_112f70 ld a, [hli] cp $20 jr z, .asm_112f70 dec hl ld d, $0 cp $32 jr z, .asm_112f7d inc d .asm_112f7d ld a, d ld [wc990], a call Function112b11 ld hl, wc98b ld a, e ld [hli], a ld [hl], d .asm_112f8a ld hl, wc880 ld a, [wc82d] ld b, a or a jr nz, .asm_112fa1 ld hl, wc98b ld a, $0 ld [hli], a ld [hl], a ld a, $1 ld [wc990], a ret .asm_112fa1 call Function112fd5 call Function113008 call Function113026 call Function113054 call Function113167 call Function113180 call Function113268 jr c, .asm_112fc9 ld a, $d cp [hl] jr z, .asm_112fc2 ld a, $a cp [hl] jr nz, .asm_112fa1 .asm_112fc2 ld hl, wc990 res 2, [hl] jr .asm_112fce .asm_112fc9 ld hl, wc990 set 2, [hl] .asm_112fce call Function11306b ld a, [wc990] ret Function112fd5: ld de, Unknown_113001 push hl call Function113281 jr nc, .asm_112fe0 pop hl ret .asm_112fe0 pop de push bc push de push hl ld b, $0 .asm_112fe6 inc b ld a, [hli] cp $a jr nz, .asm_112fe6 pop hl ld c, b ld a, [wc833] ld e, a ld a, [wc834] ld d, a or e jr z, .asm_112ffe call MobileSDK_CopyBytes xor a ld [de], a .asm_112ffe pop hl pop bc ret Unknown_113001: db "date: ", 0 Function113008: ld de, Unknown_1132a6 push hl call Function113273 jr nc, .asm_113013 pop hl ret .asm_113013 call Function112b11 ld hl, wc98d ld a, e ld [hli], a ld [hl], d pop hl ld a, d or e ret z ld a, $2 ld [wc990], a ret Function113026: ld de, Unknown_1132b2 push hl call Function113273 jr nc, .asm_113031 pop hl ret .asm_113031 pop hl push bc push hl push hl ld b, $0 .asm_113037 inc b ld a, [hli] cp $a jr nz, .asm_113037 pop hl ld c, b ld de, wMobileSDK_PacketBuffer + 18 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 18 ld de, wc9b5 ld b, c call MobileSDK_CopyBytes xor a ld [de], a pop hl pop bc ret Function113054: ld de, Unknown_1132bf push hl call Function113273 jr nc, .asm_11305f pop hl ret .asm_11305f push bc ld de, wc9b5 ld b, $30 call Function1136c1 pop bc pop hl ret Function11306b: ld hl, wc880 ld a, [wc82d] ld b, a Function113072: call Function113268 jp nc, Function113089 ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jp nz, Function1131a9 push hl ld hl, wc990 res 2, [hl] pop hl jr Function113095 Function113089: ld a, [hl] cp $d jr z, .asm_113094 cp $a jr z, Function113095 jr Function113072 .asm_113094 inc hl Function113095: inc hl push bc ld a, [wc872] ld b, a ld a, [wc873] or b pop bc jr z, .asm_1130b3 ld a, [wc86a] cp $23 jr z, .asm_1130b3 cp $20 jr z, .asm_1130b3 cp $22 jr z, .asm_1130b3 jr .asm_1130d6 .asm_1130b3 xor a ld hl, wc86e ld [hli], a ld [hl], a ld hl, wc821 res 2, [hl] ld a, [wc86a] cp $13 jr z, .asm_1130c8 cp $14 ret nz .asm_1130c8 ld a, $6 ld [wc86b], a ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f ret z jp Function112430 .asm_1130d6 ld a, [wc82b] ld c, a dec b dec b ld a, b ld [wc82d], a jr z, .asm_11310d ld a, [wc873] ld d, a ld a, [wc872] ld e, a dec de dec de xor a or d jr nz, .asm_1130f5 ld a, e cp b jp c, Function113206 .asm_1130f5 ld a, e sub b ld [wc82b], a ld a, d sbc $0 ld [wc82c], a ld a, [wc874] ld e, a ld a, [wc875] ld d, a inc de inc de call MobileSDK_CopyBytes .asm_11310d ld a, [wMobileSDK_ReceivePacketBuffer] cp $9f jr z, .asm_113150 ld a, [wMobileSDK_ReceivePacketBuffer + 3] or a jr z, .asm_113150 ld l, c sub c ld c, a ld a, l ld hl, wMobileSDK_ReceivePacketBuffer + 4 add hl, bc ld b, a push de ld a, [wc82b] ld e, a ld a, [wc82c] ld d, a xor a or d jr nz, .asm_113135 ld a, e cp b jp c, Function113245 .asm_113135 pop de push hl ld hl, wc82d ld a, [hl] add b ld [hli], a ld a, [hl] adc 0 ld [hl], a ld c, b pop hl call MobileSDK_CopyBytes ld hl, wc82b ld a, [hl] sub c ld [hli], a ld a, [hl] sbc $0 ld [hl], a .asm_113150 ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a ld hl, wc821 res 2, [hl] ld a, $1 ld [wc86b], a ld a, $2 ld [wc989], a ret Function113167: ld de, Unknown_1132ff push hl call Function113273 jr nc, .asm_113172 pop hl ret .asm_113172 pop de push bc push de push hl ld b, $0 .asm_113178 inc b ld a, [hli] cp $a jr nz, .asm_113178 jr Function113197 Function113180: ld de, Unknown_11330c push hl call Function113273 jr nc, .asm_11318b pop hl ret .asm_11318b pop de push bc push de push hl ld b, $0 .asm_113191 inc b ld a, [hli] cp $a jr nz, .asm_113191 Function113197: pop hl ld c, b ld de, wMobileSDK_PacketBuffer + 16 ld a, b ld [de], a inc de dec b dec b call MobileSDK_CopyBytes xor a ld [de], a pop hl pop bc ret Function1131a9: ld hl, wc979 ld de, wc880 ld b, $0 ld c, b ld a, [hl] cp $a jr z, .asm_1131c4 .asm_1131b7 ld a, [hld] inc b cp $a jr nz, .asm_1131b7 inc hl inc hl dec b ld c, b call MobileSDK_CopyBytes .asm_1131c4 ld a, [wc82b] ld b, a add c ld c, a push bc ld a, $ff sub b ld c, a ld b, 0 ld hl, wMobileSDK_ReceivePacketBuffer + 4 add hl, bc pop bc call MobileSDK_CopyBytes ld a, c ld [wc82d], a ld a, $fa sub c ld [wc82b], a ld hl, wc829 ld a, e ld [hli], a ld a, d ld [hl], a ld l, e ld h, d ld de, wc97a .asm_1131ef xor a ld [hli], a ld a, l cp e jr nz, .asm_1131ef ld a, d cp h jr nz, .asm_1131ef ld hl, wc821 res 2, [hl] ld hl, wc86b dec [hl] dec [hl] ld a, $4 ret Function113206: ld a, b sub e ld [wc991], a ld a, [wc821] bit 2, a ld a, c jr nz, .asm_113214 xor a .asm_113214 ld [wc992], a ld b, e ld c, e ld a, [wc874] ld e, a ld a, [wc875] ld d, a inc de inc de call MobileSDK_CopyBytes ld a, [wc991] ld [wc993], a ld b, a ld de, wc880 call MobileSDK_CopyBytes ld hl, wc82d ld a, c ld [hli], a xor a ld [hl], a ld hl, wc821 set 2, [hl] ld a, $3 ld [wc86b], a ret Function113245: ld a, b sub e ld [wc992], a ld [wc82b], a ld b, e ld c, e pop de call MobileSDK_CopyBytes ld hl, wc82d ld a, c add [hl] ld [hli], a ld a, $0 adc [hl] ld [hl], a ld hl, wc821 set 2, [hl] ld a, $3 ld [wc86b], a ret Function113268: .asm_113268 dec b ld a, [hli] cp $a ret z xor a or b jr nz, .asm_113268 scf ret Function113273: ld c, $0 .asm_113275 ld a, [de] inc de or a ret z xor [hl] inc hl or c ld c, a jr z, .asm_113275 scf ret Function113281: ld c, $0 push hl ld l, e ld h, d pop de .asm_113287 ld a, [de] inc de call Function11329d xor [hl] inc hl or c ld c, a xor a cp [hl] jr z, .asm_113298 cp c jr z, .asm_113287 scf .asm_113298 push hl ld l, e ld h, d pop de ret Function11329d: cp $41 ret c cp $5b ret nc or $20 ret Unknown_1132a6: db "Gb-Status: ", 0 Unknown_1132b2: db "Gb-Auth-ID: ", 0 Unknown_1132bf: db "WWW-Authenticate: GB00 name=", $22, 0 Unknown_1132dd: db "Content-Type: application/x-cgb", $d, "\n", 0 Unknown_1132ff: db "URI-header: ", 0 Unknown_11330c: db "Location: ", 0 Function113317: ld a, $1 ld [wc86b], a ld de, wMobileSDK_PacketBuffer + 18 ld a, [wc86c] ld [de], a inc de ld bc, $0001 call Function1126b0 ld hl, Unknown_1132dd ld a, [wc9a5] or a call nz, MobileSDK_CopyString ld a, [wc86a] cp $22 jr nz, .asm_113344 ld a, [wc98a] cp $2 jr nz, .asm_113351 jr .asm_113348 .asm_113344 cp $24 jr nz, .asm_113351 .asm_113348 ld a, [wc9a5] or a jr z, .asm_11336a call Function1133de .asm_113351 ld hl, wc9b5 call MobileSDK_CopyString call Function1126b6 ld a, c ld [wMobileSDK_PacketBuffer + 17], a ld b, c call Function111f63 ld a, $95 ld hl, wMobileSDK_PacketBuffer + 12 jp Function111f02 .asm_11336a ld hl, Unknown_113372 call MobileSDK_CopyString jr .asm_113351 Unknown_113372: db "Content-Length: 0", $d, "\n", 0 Function113386: call Function113482 ld a, $1 ld [wc86b], a ld de, wMobileSDK_PacketBuffer ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86c] ld [de], a inc de ld b, $1 call Function111f63 ld de, wMobileSDK_PacketBuffer + 12 ld hl, MobilePacket_TransferData ld b, $6 call MobileSDK_CopyBytes ld a, [wc86d] cp $3 jp nz, Function113317 ld de, wMobileSDK_PacketBuffer + 18 ld a, [wc86c] ld [de], a inc de ld bc, $0001 call Function1126b0 ld a, [wc994] or a call nz, Function1133de call Function1126b6 ld a, c ld [wMobileSDK_PacketBuffer + 17], a ld b, c call Function111f63 ld a, $95 ld hl, wMobileSDK_PacketBuffer + 12 jp Function111f02 Function1133de: call Function1126e6 xor a ld [wc86b], a ld a, [wc9aa] ld [wc87c], a ld a, [wc9ab] ld [wc87d], a ld a, [wc9ac] ld [wc87e], a ld a, [wc9ad] ld [wc87f], a ret Function1133fe: ld hl, wMobileSDK_PacketBuffer + 17 ld a, [hli] cp "h" jr nz, .asm_113432 ld a, [hli] cp "t" jr nz, .asm_113432 ld a, [hli] cp "t" jr nz, .asm_113432 ld a, [hli] cp "p" jr nz, .asm_113432 ld a, [hli] cp ":" jr nz, .asm_113432 ld a, [hli] cp "/" jr nz, .asm_113432 ld a, [hli] cp "/" jr nz, .asm_113432 ld hl, wMobileSDK_PacketBuffer + 16 ld de, wc880 ld a, [hli] ld b, a call MobileSDK_CopyBytes xor a ld [de], a ret .asm_113432 ld a, [wMobileSDK_PacketBuffer + 17] cp "/" jr z, .asm_113460 ld de, wc880 ld hl, wc9b5 ld a, [hli] ld h, [hl] ld l, a inc hl inc hl ld a, [hli] ld h, [hl] ld l, a call MobileSDK_CopyString ld l, e ld h, d .asm_11344c ld a, [hld] cp "/" jr nz, .asm_11344c inc hl inc hl ld e, l ld d, h .asm_113455 ld hl, wMobileSDK_PacketBuffer + 16 ld a, [hli] ld b, a call MobileSDK_CopyBytes xor a ld [de], a ret .asm_113460 ld de, wc880 ld hl, wc9b5 ld a, [hli] ld h, [hl] ld l, a inc hl inc hl ld a, [hli] ld h, [hl] ld l, a ld a, [hl] cp "/" jr z, .asm_113478 ld b, $7 call MobileSDK_CopyBytes .asm_113478 ld a, [hli] ld [de], a inc de cp "/" jr nz, .asm_113478 dec de jr .asm_113455 Function113482: ld hl, wc87f ld a, [hld] ld b, a ld a, [hld] ld c, a ld a, b or c ret z pop hl ld hl, rSC add hl, bc jr c, .asm_113496 xor a ld l, a ld h, a .asm_113496 ld e, l ld d, h ld hl, wc87f ld a, d ld [hld], a ld a, e ld [hld], a jr nc, .asm_1134a3 ld c, $fe .asm_1134a3 ld a, [hld] ld l, [hl] ld h, a ld a, c inc a ld [wMobileSDK_PacketBuffer + 5], a ld de, wMobileSDK_PacketBuffer + 7 ld b, c call MobileSDK_CopyBytes ld a, l ld [wc87c], a ld a, h ld [wc87d], a ld b, c inc b call Function111f63 ld hl, wc86b dec [hl] ld hl, wMobileSDK_PacketBuffer ld a, $95 jp Function111f02 Function1134cb: dec a jr z, .asm_1134d9 dec a jr z, .asm_1134f4 dec a jr z, .asm_1134fc dec a jr z, .asm_11350e dec [hl] ret .asm_1134d9 ld a, [wMobileSDK_ReceivePacketBuffer + 4] cp $0 jr z, .asm_1134f0 cp $ff jr z, .asm_1134f0 ld a, [wc985] ld [wc86a], a ld hl, wc821 res 0, [hl] ret .asm_1134f0 inc [hl] inc [hl] jr .asm_1134fc .asm_1134f4 ld a, MOBILE_COMMAND_TELEPHONE_STATUS | $80 ld hl, MobilePacket_TelephoneStatus jp PacketSendEmptyBody .asm_1134fc ld hl, wc86e ld a, [hli] ld h, [hl] ld l, a ld a, [wMobileSDK_ReceivePacketBuffer + 6] cp $f0 jr c, .asm_11350b set 7, [hl] .asm_11350b jp Mobile_EndSession .asm_11350e ld a, [wc86a] cp $1e jp nz, Function112251 jp Function1116a0 Function113519: dec a jr z, .asm_113527 dec a jr z, .asm_11352d dec a jr z, .asm_11353c dec a jr z, .asm_11353f dec [hl] ret .asm_113527 ld hl, MobilePacket_ReadConfigurationDataPart1 jp Function11236b .asm_11352d ld hl, wc829 ld a, LOW(wc8ca + 22) ld [hli], a ld a, HIGH(wc8ca + 22) ld [hli], a ld hl, MobilePacket_ReadConfigurationDataPart2 jp Function11236b .asm_11353c jp Mobile_EndSession .asm_11353f ld hl, wc880 ld a, [hli] cp "M" jr nz, .asm_113586 ld a, [hld] cp "A" jr nz, .asm_113586 ld b, $be ld de, 0 .asm_113551 ld a, [hli] add e ld e, a ld a, $0 adc d ld d, a dec b jr nz, .asm_113551 ld a, [hli] cp d jr nz, .asm_11358a ld a, [hl] cp e jr nz, .asm_11358a ld a, [wc86e] ld e, a ld a, [wc86e + 1] ld d, a ld hl, .asm_11357e push hl ld a, [wc86a] cp $25 jr z, Function1135ba cp $26 jr z, Function11359d cp $27 jr z, Function1135ad .asm_11357e ld a, $1 ld [wc835], a jp Function1116a0 .asm_113586 ld a, $25 jr .asm_11358c .asm_11358a ld a, $14 .asm_11358c call Function11225d jp Function1116a4 Function113592: push de ld l, e ld h, d xor a ld [hl], a inc de call MobileSDK_CopyBytes pop de ret Function11359d: ld b, $20 call Function113592 ld a, $21 ld hl, wc88c call MobileSDK_CopyStringLen xor a ld [de], a ret Function1135ad: ld b, $1e call Function113592 ld a, $1f ld hl, wc8ac jp MobileSDK_CopyStringLen Function1135ba: ld b, $65 call Function113592 ld hl, wc8f6 call Function1135eb ld a, $11 ld hl, wc8fe call MobileSDK_CopyStringLen inc de ld hl, wc90e call Function1135eb ld a, $11 ld hl, wc916 call MobileSDK_CopyStringLen inc de ld hl, wc926 call Function1135eb ld a, $11 ld hl, wc92e jp MobileSDK_CopyStringLen Function1135eb: ld b, $8 .asm_1135ed ld a, [hl] swap a and $f cp $f jr z, .asm_11361c or $30 cp $3a call z, Function113620 cp $3b call z, Function113623 ld [de], a inc de ld a, [hli] and $f cp $f jr z, .asm_11361c or $30 cp $3a call z, Function113620 cp $3b call z, Function113623 ld [de], a inc de dec b jr nz, .asm_1135ed .asm_11361c xor a ld [de], a inc de ret Function113620: ld a, $23 ret Function113623: ld a, $2a ret Function113626: dec a jr z, .asm_113634 dec a jr z, .asm_113639 dec a jr z, .asm_11366c dec a jr z, .asm_11366f dec [hl] ret .asm_113634 ld b, $9a jp Function11234b .asm_113639 ld a, [wc882] or a jr nz, .asm_113642 inc [hl] jr .asm_11366c .asm_113642 ld de, wMobileSDK_PacketBuffer + 5 ld c, a inc a ld [de], a inc de ld a, $80 ld [de], a inc de ld hl, wc880 ld a, [hli] ld h, [hl] ld l, a ld b, c call MobileSDK_CopyBytes ld b, c inc b call Function111f63 ld a, [wMobileSDK_PacketBuffer + 5] add $a ld e, a ld d, 0 ld a, $9a ld hl, wMobileSDK_PacketBuffer jp Function111f02 .asm_11366c jp Mobile_EndSession .asm_11366f jp Function1116a0 Function113672: dec a jr z, .asm_113680 dec a jr z, .asm_113686 dec a jr z, .asm_1136bb dec a jr z, .asm_1136be dec [hl] ret .asm_113680 ld hl, wMobileSDK_PacketBuffer jp Function11236b .asm_113686 ld a, [wc882] or a jr z, .asm_113693 cp $81 jr nc, .asm_113693 inc [hl] jr .asm_1136bb .asm_113693 ld hl, wMobileSDK_PacketBuffer + 7 sub $80 ld [hld], a ld a, $80 ld [hl], a ld de, wMobileSDK_PacketBuffer + 8 ld b, $2 call Function111f63 ld hl, wc880 ld a, [hli] ld h, [hl] ld l, a ld de, $0080 add hl, de ld e, h ld a, l ld hl, wc829 ld [hli], a ld [hl], e ld hl, wMobileSDK_PacketBuffer jp Function11236b .asm_1136bb jp Mobile_EndSession .asm_1136be jp Function1116a0 Function1136c1: xor a ld [wMobileSDK_PacketBuffer + 225], a ld a, l ld [wMobileSDK_PacketBuffer + 192], a ld a, h ld [wMobileSDK_PacketBuffer + 193], a ld hl, wMobileSDK_PacketBuffer + 194 ld a, e ld [hli], a ld a, d ld [hli], a ld a, b ld [hli], a ld hl, wMobileSDK_PacketBuffer + 192 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 32 ld b, $30 ld c, b call MobileSDK_CopyBytes ld hl, wc97f ld a, [hli] ld h, [hl] ld l, a .asm_1136eb ld a, [hli] or a jr nz, .asm_1136eb call MobileSDK_CopyString ld a, $37 cp c inc a jr nc, .asm_1136ff ld a, $2 ld [wMobileSDK_PacketBuffer + 225], a ld a, $78 .asm_1136ff sub c ld b, a ld a, $80 ld [de], a inc de xor a .asm_113706 dec b jr z, .asm_11370d ld [de], a inc de jr .asm_113706 .asm_11370d or a sla c rl b sla c rl b sla c rl b ld a, c ld [de], a inc de ld a, b ld [de], a inc de ld l, e ld h, d ld b, $6 xor a .asm_113725 ld [hli], a dec b jr nz, .asm_113725 ld de, wMobileSDK_PacketBuffer + 160 ld hl, Unknown_113b7e ld b, $10 call MobileSDK_CopyBytes .asm_113734 ld hl, wMobileSDK_PacketBuffer + 197 ld a, LOW(MD5_K_Table) ld [hli], a ld a, HIGH(MD5_K_Table) ld [hl], a ld hl, wMobileSDK_PacketBuffer + 199 ld a, LOW(Unknown_113a70) ld [hli], a ld a, HIGH(Unknown_113a70) ld [hl], a ld hl, wMobileSDK_PacketBuffer + 160 ld de, wMobileSDK_PacketBuffer + 209 ld b, $10 call MobileSDK_CopyBytes .asm_113751 ld hl, wMobileSDK_PacketBuffer + 199 ld a, [hli] ld h, [hl] ld l, a ld a, [hli] ld c, a push hl call Function113909 ld hl, wMobileSDK_PacketBuffer + 176 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a32 pop hl ld a, [hli] ld d, [hl] inc hl ld e, a push hl ld a, [wMobileSDK_PacketBuffer + 225] bit 0, a jr z, .asm_11377c ld hl, $0040 add hl, de ld e, l ld d, h .asm_11377c ld hl, wMobileSDK_PacketBuffer + 32 add hl, de ld e, l ld d, h ld hl, wMobileSDK_PacketBuffer + 184 call Function113a32 ld hl, wMobileSDK_PacketBuffer + 197 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a32 pop hl ld a, [hli] ld b, a ld a, l ld [wMobileSDK_PacketBuffer + 199], a ld a, h ld [wMobileSDK_PacketBuffer + 200], a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a40 ld hl, wMobileSDK_PacketBuffer + 178 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a32 ld hl, wMobileSDK_PacketBuffer + 176 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 197 ld a, [hli] ld h, [hl] ld l, a rept 4 inc hl endr ld a, h ld [wMobileSDK_PacketBuffer + 198], a ld a, l ld [wMobileSDK_PacketBuffer + 197], a cp $8e ; LOW(MD5_K_Table + $100) ??? jp nz, .asm_113751 ld de, wMobileSDK_PacketBuffer + 209 ld hl, wMobileSDK_PacketBuffer + 160 call Function113a32 ld de, wMobileSDK_PacketBuffer + 213 call Function113a32 ld de, wMobileSDK_PacketBuffer + 217 call Function113a32 ld de, wMobileSDK_PacketBuffer + 221 call Function113a32 ld hl, wMobileSDK_PacketBuffer + 225 bit 1, [hl] jr z, .asm_1137fc dec [hl] jp .asm_113734 .asm_1137fc ld hl, wMobileSDK_PacketBuffer + 32 ld de, wMobileSDK_PacketBuffer + 80 ld bc, $0030 call Function113d66 ld hl, wMobileSDK_PacketBuffer + 194 ld a, [hli] ld d, [hl] ld e, a ld hl, Unknown_113a55 call MobileSDK_CopyString ld hl, wMobileSDK_PacketBuffer + 80 ld bc, $0020 call Function113c8e ld a, l ld [wMobileSDK_PacketBuffer + 194], a ld a, h ld [wMobileSDK_PacketBuffer + 195], a ld b, $12 ld hl, wMobileSDK_PacketBuffer + 80 ld de, wMobileSDK_PacketBuffer + 32 .asm_11382d ld a, $40 and [hl] rlca ld c, a ld a, [hli] bit 4, a jr z, .asm_113839 set 6, c .asm_113839 bit 2, a jr z, .asm_11383f set 5, c .asm_11383f bit 0, a jr z, .asm_113845 set 4, c .asm_113845 ld a, [hli] bit 6, a jr z, .asm_11384c set 3, c .asm_11384c bit 4, a jr z, .asm_113852 set 2, c .asm_113852 bit 2, a jr z, .asm_113858 set 1, c .asm_113858 bit 0, a jr z, .asm_11385e set 0, c .asm_11385e ld a, c ld [de], a inc de dec b jr nz, .asm_11382d ld b, $12 ld hl, wMobileSDK_PacketBuffer + 115 ld de, wMobileSDK_PacketBuffer + 67 .asm_11386c ld a, $2 and [hl] rrca ld c, a ld a, [hld] bit 3, a jr z, .asm_113878 set 1, c .asm_113878 bit 5, a jr z, .asm_11387e set 2, c .asm_11387e bit 7, a jr z, .asm_113884 set 3, c .asm_113884 ld a, [hld] bit 1, a jr z, .asm_11388b set 4, c .asm_11388b bit 3, a jr z, .asm_113891 set 5, c .asm_113891 bit 5, a jr z, .asm_113897 set 6, c .asm_113897 bit 7, a jr z, .asm_11389d set 7, c .asm_11389d ld a, c ld [de], a dec de dec b jr nz, .asm_11386c ld b, $10 ld de, wMobileSDK_PacketBuffer + 80 ld hl, wMobileSDK_PacketBuffer + 160 call MobileSDK_CopyBytes ld bc, $0010 ld hl, wc97f ld a, [hli] ld h, [hl] ld l, a call MobileSDK_CopyString ld a, $24 sub c ld b, a ld l, e ld h, d ld a, $ff .asm_1138c2 ld [hli], a dec b jr nz, .asm_1138c2 xor a ld [hl], a ld b, $24 ld hl, wMobileSDK_PacketBuffer + 32 ld de, wMobileSDK_PacketBuffer + 80 .asm_1138d0 ld a, [de] inc de xor [hl] ld c, $0 bit 0, a jr z, .asm_1138db set 3, c .asm_1138db bit 3, a jr z, .asm_1138e1 set 6, c .asm_1138e1 bit 6, a jr z, .asm_1138e7 set 0, c .asm_1138e7 and $b6 or c ld [hli], a dec b jr nz, .asm_1138d0 ld hl, wMobileSDK_PacketBuffer + 194 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 32 ld bc, $0024 call Function113c8e ld a, $22 ld [hli], a ld a, $d ld [hli], a ld a, $a ld [hli], a xor a ld [hl], a ret Function113909: call Function11391e ld a, c and $f0 swap a or a jr z, Function11392f dec a jr z, Function113973 dec a jp z, Function1139b7 jp Function1139de Function11391e: and $f ld e, a ld d, 0 ld hl, Unknown_113b70 add hl, de ld de, wMobileSDK_PacketBuffer + 176 ld b, $8 jp MobileSDK_CopyBytes Function11392f: ld hl, wMobileSDK_PacketBuffer + 178 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 184 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 180 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a0b ld hl, wMobileSDK_PacketBuffer + 178 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 188 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 188 call Function113a1f ld hl, wMobileSDK_PacketBuffer + 182 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 188 call Function113a0b ld hl, wMobileSDK_PacketBuffer + 184 ld de, wMobileSDK_PacketBuffer + 188 call Function113a15 ret Function113973: ld hl, wMobileSDK_PacketBuffer + 178 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 184 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 182 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a0b ld hl, wMobileSDK_PacketBuffer + 182 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 188 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 188 call Function113a1f ld hl, wMobileSDK_PacketBuffer + 180 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 188 call Function113a0b ld hl, wMobileSDK_PacketBuffer + 184 ld de, wMobileSDK_PacketBuffer + 188 call Function113a15 ret Function1139b7: ld hl, wMobileSDK_PacketBuffer + 178 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 184 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 180 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a28 ld hl, wMobileSDK_PacketBuffer + 182 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a28 ret Function1139de: ld hl, wMobileSDK_PacketBuffer + 182 ld a, [hli] ld h, [hl] ld l, a ld de, wMobileSDK_PacketBuffer + 184 ld b, $4 call MobileSDK_CopyBytes ld hl, wMobileSDK_PacketBuffer + 184 call Function113a1f ld hl, wMobileSDK_PacketBuffer + 178 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a15 ld hl, wMobileSDK_PacketBuffer + 180 ld a, [hli] ld d, [hl] ld e, a ld hl, wMobileSDK_PacketBuffer + 184 call Function113a28 ret Function113a0b: ld b, $4 .asm_113a0d ld a, [de] inc de and [hl] ld [hli], a dec b jr nz, .asm_113a0d ret Function113a15: ld b, $4 .asm_113a17 ld a, [de] inc de or [hl] ld [hli], a dec b jr nz, .asm_113a17 ret Function113a1f: ld b, $4 .asm_113a21 ld a, [hl] cpl ld [hli], a dec b jr nz, .asm_113a21 ret Function113a28: ld b, $4 .asm_113a2a ld a, [de] inc de xor [hl] ld [hli], a dec b jr nz, .asm_113a2a ret Function113a32: ld a, [de] inc de add [hl] ld [hli], a ld b, $3 .asm_113a38 ld a, [de] inc de adc [hl] ld [hli], a dec b jr nz, .asm_113a38 ret Function113a40: .asm_113a40 or a push hl ld a, [hli] rla ld a, [hl] rla ld [hli], a ld a, [hl] rla ld [hli], a ld a, [hl] rla ld [hl], a pop hl ld a, [hl] rla ld [hl], a dec b jr nz, .asm_113a40 ret Unknown_113a55: db "Authorization: GB00 name=", $22, 0 Unknown_113a70: db $00, $00, $00, $07, $06, $04, $00, $0c, $04, $08, $00, $11, $02, $0c, $00, $16 db $00, $10, $00, $07, $06, $14, $00, $0c, $04, $18, $00, $11, $02, $1c, $00, $16 db $00, $20, $00, $07, $06, $24, $00, $0c, $04, $28, $00, $11, $02, $2c, $00, $16 db $00, $30, $00, $07, $06, $34, $00, $0c, $04, $38, $00, $11, $02, $3c, $00, $16 db $10, $04, $00, $05, $16, $18, $00, $09, $14, $2c, $00, $0e, $12, $00, $00, $14 db $10, $14, $00, $05, $16, $28, $00, $09, $14, $3c, $00, $0e, $12, $10, $00, $14 db $10, $24, $00, $05, $16, $38, $00, $09, $14, $0c, $00, $0e, $12, $20, $00, $14 db $10, $34, $00, $05, $16, $08, $00, $09, $14, $1c, $00, $0e, $12, $30, $00, $14 db $20, $14, $00, $04, $26, $20, $00, $0b, $24, $2c, $00, $10, $22, $38, $00, $17 db $20, $04, $00, $04, $26, $10, $00, $0b, $24, $1c, $00, $10, $22, $28, $00, $17 db $20, $34, $00, $04, $26, $00, $00, $0b, $24, $0c, $00, $10, $22, $18, $00, $17 db $20, $24, $00, $04, $26, $30, $00, $0b, $24, $3c, $00, $10, $22, $08, $00, $17 db $30, $00, $00, $06, $36, $1c, $00, $0a, $34, $38, $00, $0f, $32, $14, $00, $15 db $30, $30, $00, $06, $36, $0c, $00, $0a, $34, $28, $00, $0f, $32, $04, $00, $15 db $30, $20, $00, $06, $36, $3c, $00, $0a, $34, $18, $00, $0f, $32, $34, $00, $15 db $30, $10, $00, $06, $36, $2c, $00, $0a, $34, $08, $00, $0f, $32, $24, $00, $15 Unknown_113b70: dw wMobileSDK_PacketBuffer + 160 dw wMobileSDK_PacketBuffer + 164 dw wMobileSDK_PacketBuffer + 168 dw wMobileSDK_PacketBuffer + 172 dw wMobileSDK_PacketBuffer + 160 dw wMobileSDK_PacketBuffer + 164 dw wMobileSDK_PacketBuffer + 168 Unknown_113b7e: db $01, $23, $45, $67, $89, $ab, $cd, $ef db $fe, $dc, $ba, $98, $76, $54, $32, $10 MD5_K_Table: dl $d76aa478, $e8c7b756, $242070db, $c1bdceee dl $f57c0faf, $4787c62a, $a8304613, $fd469501 dl $698098d8, $8b44f7af, $ffff5bb1, $895cd7be dl $6b901122, $fd987193, $a679438e, $49b40821 dl $f61e2562, $c040b340, $265e5a51, $e9b6c7aa dl $d62f105d, $02441453, $d8a1e681, $e7d3fbc8 dl $21e1cde6, $c33707d6, $f4d50d87, $455a14ed dl $a9e3e905, $fcefa3f8, $676f02d9, $8d2a4c8a dl $fffa3942, $8771f681, $6d9d6122, $fde5380c dl $a4beea44, $4bdecfa9, $f6bb4b60, $bebfbc70 dl $289b7ec6, $eaa127fa, $d4ef3085, $04881d05 dl $d9d4d039, $e6db99e5, $1fa27cf8, $c4ac5665 dl $f4292244, $432aff97, $ab9423a7, $fc93a039 dl $655b59c3, $8f0ccc92, $ffeff47d, $85845dd1 dl $6fa87e4f, $fe2ce6e0, $a3014314, $4e0811a1 dl $f7537e82, $bd3af235, $2ad7d2bb, $eb86d391 Function113c8e: ld a, c ld [wMobileSDK_PacketBuffer + 201], a ld a, b ld [wMobileSDK_PacketBuffer + 202], a ld c, e ld b, d ld e, l ld d, h ld l, c ld h, b xor a ld [wMobileSDK_PacketBuffer + 207], a .asm_113ca0 ld b, $3 push hl ld hl, wMobileSDK_PacketBuffer + 203 .asm_113ca6 ld a, [de] inc de ld [hli], a dec b jr nz, .asm_113ca6 ld a, [wMobileSDK_PacketBuffer + 201] ld c, a ld a, [wMobileSDK_PacketBuffer + 202] ld b, a xor a or b jr nz, .asm_113ccf ld a, $2 cp c jr c, .asm_113ccf push hl dec hl ld a, c ld [wMobileSDK_PacketBuffer + 207], a .asm_113cc3 xor a ld [hld], a inc c ld a, $3 cp c jr nz, .asm_113cc3 pop hl ld bc, $0003 .asm_113ccf dec bc dec bc dec bc ld a, c ld [wMobileSDK_PacketBuffer + 201], a ld a, b ld [wMobileSDK_PacketBuffer + 202], a push de dec hl ld c, [hl] dec hl ld b, [hl] dec hl ld a, [hl] ld d, a srl a srl a ld [hli], a ld a, $3 and d ld d, a ld a, $f0 and b or d swap a ld [hli], a ld a, $f and b ld d, a ld a, c and $c0 or d rlca rlca ld [hli], a ld a, $3f and c ld [hld], a dec hl dec hl pop de ld b, h ld c, l pop hl ld a, [bc] inc bc call Function113d47 ld [hli], a ld a, [bc] inc bc call Function113d47 ld [hli], a ld a, [bc] inc bc call Function113d47 ld [hli], a ld a, [bc] inc bc call Function113d47 ld [hli], a ld a, [wMobileSDK_PacketBuffer + 201] cp $0 jp nz, .asm_113ca0 ld a, [wMobileSDK_PacketBuffer + 202] cp $0 jp nz, .asm_113ca0 ld a, [wMobileSDK_PacketBuffer + 207] cp $0 jr z, .asm_113d43 push hl dec hl ld b, a .asm_113d39 ld a, $3d ld [hld], a inc b ld a, $3 cp b jr nz, .asm_113d39 pop hl .asm_113d43 ld a, $0 ld [hl], a ret Function113d47: cp $1a jr c, .asm_113d5a cp $34 jr c, .asm_113d5d cp $3e jr c, .asm_113d60 cp $3e jr z, .asm_113d63 ld a, $2f ret .asm_113d5a add $41 ret .asm_113d5d add $47 ret .asm_113d60 sub $4 ret .asm_113d63 ld a, $2b ret Function113d66: ld a, c ld [wMobileSDK_PacketBuffer + 201], a ld a, b ld [wMobileSDK_PacketBuffer + 202], a ld c, e ld b, d ld e, l ld d, h ld l, c ld h, b .asm_113d74 ld a, [wMobileSDK_PacketBuffer + 202] or a jr nz, .asm_113d82 ld a, [wMobileSDK_PacketBuffer + 201] cp $4 jp c, .asm_113e26 .asm_113d82 ld b, $4 push hl ld hl, wMobileSDK_PacketBuffer + 203 .asm_113d88 ld a, [de] inc de call .decodeBase64Character ld [hli], a dec b jr nz, .asm_113d88 ld a, [wMobileSDK_PacketBuffer + 201] ld c, a ld a, [wMobileSDK_PacketBuffer + 202] ld b, a rept 4 dec bc endr ld a, b or c jr z, .asm_113dae .asm_113da1 ld a, [de] cp $d jr z, .asm_113daa cp $a jr nz, .asm_113dae .asm_113daa inc de dec bc jr .asm_113da1 .asm_113dae ld a, c ld [wMobileSDK_PacketBuffer + 201], a ld a, b ld [wMobileSDK_PacketBuffer + 202], a push de dec hl ld d, [hl] dec hl ld c, [hl] dec hl ld b, [hl] dec hl ld a, [hl] sla b sla b sla b rla sla b rla ld [hli], a ld [hl], b inc hl rrc c rrc c ld [hl], c dec hl ld a, $f and c or [hl] ld [hli], a ld a, [hli] and $c0 or [hl] dec hl ld [hld], a dec hl pop de ld b, h ld c, l pop hl ld a, [bc] ld [hli], a inc bc ld a, [bc] ld [hli], a inc bc ld a, [bc] ld [hli], a ld a, [wMobileSDK_PacketBuffer + 201] or a jr nz, .asm_113d74 ld a, [wMobileSDK_PacketBuffer + 202] or a jp nz, .asm_113d74 xor a ld [hl], a ret .decodeBase64Character: cp "+" jr c, .asm_113e24 jr z, .asm_113e31 cp "/" jr c, .asm_113e24 jr z, .asm_113e34 cp "0" jr c, .asm_113e24 cp "9" + 1 jr c, .asm_113e37 cp "=" jr c, .asm_113e24 jr z, .asm_113e3a cp "A" jr c, .asm_113e24 cp "Z" + 1 jr c, .asm_113e3c cp "a" jr c, .asm_113e24 cp "z" + 1 jr c, .asm_113e3f .asm_113e24 pop hl pop hl .asm_113e26 ld hl, wc821 set 1, [hl] ld a, $20 ld [wc80f], a ret .asm_113e31 ld a, $3e ret .asm_113e34 ld a, $3f ret .asm_113e37 add $4 ret .asm_113e3a xor a ret .asm_113e3c sub $41 ret .asm_113e3f sub $47 ret Function113e42: dec a jr z, .asm_113e4f dec a jr z, .asm_113e85 dec a jr z, .asm_113ea8 dec a jr z, .asm_113eb0 ret .asm_113e4f ld a, [wc807] cp $8 jr nz, .asm_113e58 .asm_113e56 dec [hl] ret .asm_113e58 xor a ld [wc86d], a ld a, $2 ld [wc86a], a ld hl, wc821 ld a, [hl] and $10 set 5, a ld [hl], a jp Function113eb8 .asm_113e6d ld a, [wc86d] or a ld a, [wMobileSDK_ReceivePacketBuffer] jr z, .asm_113e81 cp $9f jr z, .asm_113e85 cp $a4 jr z, .asm_113e85 .asm_113e7e jp Function112430 .asm_113e81 cp $a3 jr z, .asm_113e7e .asm_113e85 xor a ld [wc86d], a ld [wMobileSDK_SendCommandID], a ld a, $2 ld [wc86a], a ld a, $3 ld [wc807], a ld hl, wc821 ld a, [hl] and $10 set 5, a ld [hl], a ld hl, wc822 bit 0, [hl] call z, Function111f97 ret .asm_113ea8 ld a, [wc807] cp $8 jr z, .asm_113e56 ret .asm_113eb0 ld a, $1 ld [wc86b], a jp .asm_113e6d Function113eb8: ld a, $ff ld [wMobileSDK_SendCommandID], a ld hl, wc822 res 5, [hl] res 0, [hl] jp Function111f97 Function113ec7: ; unreferenced ld hl, wc822 ld a, [hl] push af res 3, [hl] res 0, [hl] ld hl, wc81a ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] ld h, [hl] ld l, a inc hl inc hl ld a, [hld] dec hl xor $80 ld [wMobileSDK_SendCommandID], a ld b, $5 call PacketSendBytes pop af bit 0, a ret z ld hl, wc822 set 0, [hl] ret Function113ef2: dec a jr z, .asm_113efa dec a jr z, .asm_113f03 dec [hl] ret .asm_113efa ld a, [wc807] cp $8 jr nz, Function113eb8 dec [hl] ret .asm_113f03 ld a, $26 call Function11225d ld a, $2a ld [wc86a], a ld hl, wc820 ld a, [hld] ld h, [hl] ld l, a ld e, l ld d, h add hl, de add hl, de ld e, l ld d, h ld hl, wc815 ld e, a ld [hli], a ld a, d ld [hl], a xor a ld [wc800], a ld hl, wMobileSDK_PacketBuffer ld a, $2 ld [hli], a dec a ld [hl], a ret Function113f2d: dec a jr z, .asm_113f35 dec a jr z, .asm_113f4f dec [hl] ret .asm_113f35 ld a, [wc807] cp $8 jr nz, .asm_113f3e dec [hl] ret .asm_113f3e xor a ld [wMobileSDK_ReceivePacketBuffer], a ld [wMobileSDK_ReceivePacketBufferAlt], a ld a, [wMobileSDK_SendCommandID] cp $91 jr z, .asm_113f4f jp Function113eb8 .asm_113f4f xor a ld [wc86d], a ld hl, wc821 set 0, [hl] ld hl, wc822 xor a ld [hl], a xor a ld [wc80b], a xor a ld [wMobileSDK_PacketBuffer], a ld hl, wc820 ld a, [hld] ld h, [hl] ld l, a ld e, l ld d, h add hl, de add hl, de ld e, l ld d, h ld hl, wc815 ld e, a ld [hli], a ld a, d ld [hl], a xor a ld [wc800], a ld hl, wMobileSDK_PacketBuffer xor a ld [hli], a inc a ld [hl], a ret