Function at 0x437a60
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x7c
mov ecx, 0x45f390
push ebx
push ebp
push esi
push edi
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
push ecx
push ebx
call fcn.00407d70
add esp, 8
test eax, eax
jne 0x437ad1
test esi, esi
jne 0x437a9a
mov esi, 0x45f390
jmp 0x437aa8
push 0x45f390
push esi
call fcn.00403b8c
add esp, 8
test ebp, ebp
je 0x437ef3
xor eax, eax
mov word [ebp + 4], ax
mov word [ebp + 6], ax
mov word [ebp + 0xc], ax
mov word [ebp + 0xe], ax
mov dword [ebp], eax
mov dword [ebp + 8], eax
mov word [ebp + 0x10], ax
jmp 0x437ef3
push 0x46
push 0
lea edx, [esp + 0x30]
push edx
call fcn.00403aac
mov byte [esp + 0x7a], 0x2f
add esp, 0xc
push 0x45f394
push ebx
call fcn.00439ea0
add esp, 8
mov edi, eax
test eax, eax
jne 0x437b03
mov cl, byte [ebx + edi]
inc ebx
mov byte [esp + 0x6e], cl
cmp byte [esp + 0x6e], 0
je 0x437ba6
push 0x45f394
push ebx
call fcn.00439ea0
mov edi, eax
add esp, 8
movsx edx, byte [esp + 0x6e]
cmp edx, 0x2f
je 0x437b37
cmp edx, 0x5f
je 0x437b56
cmp edx, 0x2e
je 0x437b75
jmp 0x437e68
cmp edi, 0x20
jae 0x437b40
mov ecx, edi
jmp 0x437b45
mov ecx, 0x1f
push ecx
push ebx
lea edx, [esp + 0x30]
push edx
call fcn.00436840
add esp, 0xc
jmp 0x437b92
cmp edi, 0x20
jae 0x437b5f
mov ecx, edi
jmp 0x437b64
mov ecx, 0x1f
push ecx
push ebx
lea edx, [esp + 0x50]
push edx
call fcn.00436840
add esp, 0xc
jmp 0x437b92
cmp edi, 6
jae 0x437b7e
mov ecx, edi
jmp 0x437b83
mov ecx, 5
push ecx
push ebx
lea edx, [esp + 0x70]
push edx
call fcn.00436840
add esp, 0xc
mov cl, byte [ebx + edi]
lea edx, [edi + 1]
add ebx, edx
mov byte [esp + 0x6e], cl
test cl, cl
jne 0x437b0e
xor eax, eax
mov word [esp + 0x18], ax
mov word [esp + 0x1a], ax
cmp byte [esp + 0x28], al
je 0x437bd3
lea ebx, [esp + 0x28]
push ebx
call fcn.0043794c
mov word [esp + 0x1c], ax
add esp, 4
test ax, ax
je 0x437e68
xor edi, edi
mov word [esp + 0x20], di
mov word [esp + 0x22], di
cmp byte [esp + 0x48], 0
je 0x437c01
lea ecx, [esp + 0x48]
push ecx
call fcn.004379bc
mov word [esp + 0x24], ax
add esp, 4
test ax, ax
je 0x437e68
mov dword [esp + 0x74], edi
mov word [esp + 0x24], di
cmp byte [esp + 0x68], 0
je 0x437c62
push 0x45f398
lea edx, [esp + 0x6c]
push edx
call fcn.00407d70
add esp, 8
test eax, eax
jne 0x437c31
mov dword [esp + 0x74], 1
jmp 0x437c62
push 0x45f39c
lea eax, [esp + 0x6c]
push eax
call fcn.00407d70
add esp, 8
test eax, eax
je 0x437c62
lea ebx, [esp + 0x68]
push ebx
call fcn.00407d24
mov word [esp + 0x28], ax
add esp, 4
test ax, ax
je 0x437e68
mov di, word [esp + 0x18]
and edi, 0xffff
test edi, edi
je 0x437c73
jmp 0x437cc4
mov cx, word [esp + 0x20]
and ecx, 0xffff
test ecx, ecx
je 0x437c84
jmp 0x437c99
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov word [esp + 0x20], ax
mov word [esp + 0x18], ax
jmp 0x437d73
mov dx, word [esp + 0x20]
and edx, 0xffff
push edx
call fcn.00437a00
mov ax, word [eax*8 + 0x45f242]
mov word [esp + 0x24], ax
mov word [esp + 0x1c], ax
add esp, 4
jmp 0x437d73
mov bx, word [esp + 0x20]
and ebx, 0xffff
test ebx, ebx
je 0x437cd5
jmp 0x437ce4
mov di, word [esp + 0x18]
mov word [esp + 0x20], di
jmp 0x437d73
mov cx, word [esp + 0x18]
and cx, 0x3ff
mov dx, word [esp + 0x20]
mov word [esp + 0x78], cx
xor ebx, ebx
and edx, 0xffff
push edx
call fcn.00437a00
lea edi, [eax*8 + 0x45f242]
mov dword [esp + 0x74], eax
add esp, 4
mov dx, word [esp + 0x78]
mov ax, word [edi + ebx*2]
test ax, ax
je 0x437d4a
mov ecx, eax
and cx, 0x3ff
cmp cx, dx
jne 0x437d4a
mov dx, word [esp + 0x18]
and edx, 0xffff
sar edx, 0xa
jne 0x437d43
mov word [esp + 0x18], ax
mov word [esp + 0x20], ax
jmp 0x437d50
inc ebx
cmp ebx, 3
jb 0x437d19
mov ecx, 3
cmp ebx, ecx
jl 0x437d73
mov eax, dword [esp + 0x70]
mov bx, word [eax*8 + 0x45f242]
mov word [esp + 0x20], bx
test bx, bx
je 0x437e68
mov di, word [esp + 0x1a]
mov dx, word [esp + 0x18]
mov cx, word [esp + 0x22]
mov ax, word [esp + 0x20]
and edi, 0xffff
shl edi, 0x10
and edx, 0xffff
or edi, edx
and ecx, 0xffff
shl ecx, 0x10
mov dword [esp + 0x14], edi
and eax, 0xffff
or ecx, eax
mov dword [esp + 0x1c], ecx
cmp word [esp + 0x24], 0
jne 0x437e01
cmp dword [esp + 0x74], 0
je 0x437dc6
mov ebx, 0xb
jmp 0x437dcb
mov ebx, 0x1004
push 0x10
lea edx, [esp + 0x80]
push edx
push ebx
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x437e68
push 0xa
push 0
lea ebx, [esp + 0x84]
push ebx
call fcn.00439ac0
mov word [esp + 0x30], ax
add esp, 0xc
mov di, word [esp + 0x24]
and edi, 0xffff
push edi
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
je 0x437e68
push 0x20
lea ecx, [esp + 0x2c]
push ecx
push 0x1001
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x437e68
push 0x20
lea eax, [esp + 0x4c]
push eax
push 0x1002
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x437e68
push 0xa
lea edx, [esp + 0x6c]
mov bx, word [esp + 0x28]
push edx
and ebx, 0xffff
push ebx
call fcn.00439ce8
add esp, 0xc
jmp 0x437e72
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
lea ecx, [esp + 0x68]
push ecx
push 0x45f3a4
lea edx, [esp + 0x50]
push edx
push 0x45f3a0
lea ecx, [esp + 0x38]
push ecx
push 0
push esi
call fcn.00437a20
add esp, 0xc
push eax
push esi
call fcn.00437a20
add esp, 0xc
push eax
push esi
call fcn.00437a20
add esp, 0xc
push eax
push esi
call fcn.00437a20
add esp, 0xc
push eax
push esi
call fcn.00437a20
add esp, 0xc
mov edi, eax
test esi, esi
jne 0x437ed6
lea edx, [edi + 1]
push edx
call fcn.00404f38
add esp, 4
mov esi, eax
test eax, eax
jne 0x437e72
test ebp, ebp
je 0x437ef3
mov dword [esp + 0x94], esi
lea esi, [esp + 0x14]
mov edi, ebp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x94]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret