Function at 0x43a190
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x688dac
mov eax, dword fs:[0]
push eax
sub esp, 0x484
mov eax, dword [0x725fec]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x44c], eax
movzx eax, si
movzx edi, ax
push 0x200
mov dword [ebp - 0x448], eax
lea eax, [ebp - 0x210]
push ebx
push eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x460], edi
call fcn.006440e0
add esp, 0xc
lea eax, [ebp - 0x410]
push 0x200
push ebx
push eax
call fcn.006440e0
mov eax, 0x8419
add esp, 0xc
cmp di, ax
je 0x43a2f0
shr esi, 0x10
mov eax, 0xf088
cmp si, ax
je 0x43a2f0
mov eax, 0xf089
cmp si, ax
je 0x43a2b8
mov eax, 0x3009
cmp di, ax
je 0x43a2b8
mov eax, 0xf087
cmp si, ax
je 0x43a273
mov eax, 0x3409
cmp di, ax
je 0x43a273
push 0xff
lea eax, [ebp - 0x210]
push eax
push 3
push edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
jmp 0x43a334
lea ecx, [ebp - 0x210]
mov esi, 0x6e53d8
mov eax, ecx
mov edx, 0x100
sub esi, eax
nop word [eax + eax]
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x43a327
movzx eax, word [esi + ecx]
test ax, ax
je 0x43a327
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x43a290
jmp 0x43a327
lea ecx, [ebp - 0x210]
mov esi, 0x6e53d0
mov eax, ecx
mov edx, 0x100
sub esi, eax
nop dword [eax]
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x43a327
movzx eax, word [esi + ecx]
test ax, ax
je 0x43a327
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x43a2d0
jmp 0x43a327
lea ecx, [ebp - 0x210]
mov esi, 0x6e53c8
mov eax, ecx
mov edx, 0x100
sub esi, eax
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x43a322
movzx eax, word [esi + ecx]
test ax, ax
je 0x43a322
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x43a304
mov ebx, 1
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
xor eax, eax
lea ecx, [ebp - 0x410]
mov word [ebp - 0x20c], ax
lea esi, [ebp - 0x210]
mov eax, ecx
mov edx, 0x100
sub esi, eax
lea eax, [edx + 0x7ffffefe]
test eax, eax
je 0x43a370
movzx eax, word [esi + ecx]
test ax, ax
je 0x43a370
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x43a352
lea eax, [ecx - 2]
test edx, edx
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.USER32.dll_CharLowerW]
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
mov ax, word [ebp - 0x410]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x31
mov word [ebp - 0x210], ax
call esi
push 0x32
mov dword [ebp - 0x434], eax
call esi
mov esi, dword [0x734140]
mov dword [ebp - 0x428], eax
test esi, esi
je 0x43a3d3
lock inc dword [esi + 4]
mov esi, dword [0x734140]
mov ecx, dword [0x73413c]
mov dword [ebp - 0x470], ecx
mov dword [ebp - 0x46c], esi
push str.ShowLayoutFlags
lea eax, [ebp - 0x42c]
mov dword [ebp - 4], 0
push eax
mov dword [ebp - 0x430], 1
call fcn.0042ae40
lea ecx, [ebp - 0x42c]
mov dword [ebp - 4], 1
call fcn.0042cc10
mov byte [ebp - 4], 0
or edi, 0xffffffff
mov edx, dword [ebp - 0x42c]
add edx, 0xfffffff0
test al, al
mov eax, edi
je 0x43a44e
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43a441
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test ebx, ebx
jne 0x43a460
mov byte [ebp - 0x421], 1
jmp 0x43a467
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x43a460
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 0x421], 0
mov dword [ebp - 4], 2
test esi, esi
je 0x43a491
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x43a491
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x43a491
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x421], bl
je 0x43a6c1
cmp dword [0x733f58], ebx
jne 0x43a56c
push 0x734038
mov dword [ebp - 0x430], 0x734038
call fcn.0063fb1c
add esp, 4
test eax, eax
je 0x43a4d6
push eax
call fcn.0063f6f2
add esp, 4
mov dword [ebp - 4], 3
cmp dword [0x733f58], 0
jne 0x43a54b
push 0x198
call fcn.004fb4ab
mov esi, eax
add esp, 4
mov dword [ebp - 0x474], esi
mov byte [ebp - 4], 4
test esi, esi
je 0x43a544
sub esp, 8
mov ecx, esp
call fcn.004231e0
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [0x73402c]
test eax, eax
je 0x43a52c
lock inc dword [eax + 4]
mov eax, dword [0x734028]
mov dword [ecx], eax
mov eax, dword [0x73402c]
mov dword [ecx + 4], eax
mov ecx, esi
call fcn.0041ae00
jmp 0x43a546
xor eax, eax
mov dword [0x733f58], eax
push 0x734038
mov dword [ebp - 4], 5
call fcn.0063fb41
add esp, 4
test eax, eax
je 0x43a56c
push eax
call fcn.0063f6f2
add esp, 4
mov eax, dword [0x733f58]
mov al, byte [eax + 1]
test al, al
jne 0x43a5ad
lea eax, [ebp - 0x47c]
push eax
call fcn.00403dc0
mov dword [ebp - 4], 6
mov ebx, 2
mov ecx, dword [eax]
push str.ShowLayoutFlagsAlwaysInColor
mov dword [ebp - 0x430], ebx
call fcn.0042b590
mov byte [ebp - 0x421], 0
test al, al
je 0x43a5b4
mov byte [ebp - 0x421], 1
mov dword [ebp - 4], 0xffffffff
test ebx, ebx
je 0x43a5f6
mov dword [ebp - 4], 7
mov esi, dword [ebp - 0x478]
test esi, esi
je 0x43a5ef
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x43a5ef
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x43a5ef
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x421], 0
je 0x43a632
call fcn.004fd14f
mov esi, dword [ebp - 0x428]
push 0
push esi
mov ecx, dword [eax + 4]
push dword [ebp - 0x434]
mov eax, dword [ebp - 0x448]
push 1
movzx eax, ax
push eax
push dword [ecx + 0x44]
call dword [sym.imp.USER32.dll_LoadImageW]
mov ebx, eax
jmp 0x43a6b6
call fcn.004fc414
mov ecx, eax
test ecx, ecx
je 0x43aa39
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x430], eax
push dword [ebp - 0x460]
lea eax, [ebp - 0x430]
mov dword [ebp - 4], 8
push str._d_D
push eax
call fcn.00406060
add esp, 0xc
call fcn.004fd14f
mov esi, dword [ebp - 0x430]
push 0
push 0x10
mov eax, dword [eax + 4]
push 0x10
push 1
push esi
push dword [eax + 0x44]
call dword [sym.imp.USER32.dll_LoadImageW]
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x43a6b0
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x428]
test ebx, ebx
je 0x43a6c7
mov eax, ebx
jmp 0x43aa1b
mov esi, dword [ebp - 0x428]
mov dword [ebp - 0x458], 0
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
lea ecx, [ebp - 0x444]
mov dword [ebp - 4], 9
call fcn.0050cda9
mov ebx, dword [ebp - 0x44c]
mov byte [ebp - 4], 0xa
test ebx, ebx
jne 0x43a6ff
xor eax, eax
jmp 0x43a702
mov eax, dword [ebx + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [ebp - 0x444]
call fcn.0050d691
push esi
mov esi, dword [ebp - 0x434]
push esi
push dword [ebx + 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [ebp - 0x45c]
call fcn.0050d6d3
mov dword [ebp - 0x464], 0
mov dword [ebp - method.CBrush.virtual_0], vtable.CBrush.0
push dword [ebp + 0x10]
mov byte [ebp - 4], 0xb
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
lea ecx, [ebp - 0x468]
call fcn.0050d6d3
push dword [ebp - 0x458]
push dword [ebp - 0x440]
call fcn.0050de5c
mov ebx, eax
lea ecx, [ebp - 0x444]
lea eax, [ebp - 0x468]
push eax
call fcn.0050dec3
push 0xf00021
push dword [ebp - 0x428]
mov dword [ebp - 0x448], eax
push esi
push 0
push 0
push dword [ebp - 0x440]
call dword [sym.imp.GDI32.dll_PatBlt]
push 0x11
lea ecx, [ebp - 0x444]
call fcn.0050df38
push 1
lea ecx, [ebp - 0x444]
mov dword [ebp - 0x44c], eax
call fcn.0050dfbf
push 0xffffff
lea ecx, [ebp - 0x444]
call fcn.0050e0f8
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x418], esi
mov dword [ebp - 0x414], eax
call fcn.004fc414
mov ecx, eax
test ecx, ecx
je 0x43aa43
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x42c], eax
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0xc
test eax, 0xffff0000
jne 0x43a83b
movzx eax, ax
lea ecx, [ebp - 0x42c]
push eax
call fcn.00403830
jmp 0x43a866
lea ecx, [ebp - 0x210]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43a844
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x42c]
call fcn.00403bb0
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0x420]
mov esi, dword [ebp - 0x42c]
lea ecx, [ebp - 0x444]
push 0x25
push eax
mov eax, dword [ebp - 0x444]
push dword [esi - 0xc]
push esi
call dword [eax + 0x68]
mov byte [ebp - 4], 0xb
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], edi
dec edi
test edi, edi
jg 0x43a8a5
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x450], 0
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
push 0
push 1
push 1
push dword [ebp - 0x428]
mov byte [ebp - 4], 0xe
push dword [ebp - 0x434]
call dword [sym.imp.GDI32.dll_CreateBitmap]
push eax
lea ecx, [ebp - 0x454]
call fcn.0050d6d3
push dword [ebp - 0x450]
push dword [ebp - 0x440]
call fcn.0050de5c
push 4
lea ecx, [ebp - 0x444]
mov esi, eax
call fcn.0050df38
push 0xf00021
push dword [ebp - 0x428]
mov edi, eax
push dword [ebp - 0x434]
push 0
push 0
push dword [ebp - 0x440]
call dword [sym.imp.GDI32.dll_PatBlt]
test edi, edi
jne 0x43a92c
xor eax, eax
jmp 0x43a92f
mov eax, dword [edi + 4]
push eax
push dword [ebp - 0x440]
call fcn.0050de5c
test esi, esi
jne 0x43a943
xor eax, eax
jmp 0x43a946
mov eax, dword [esi + 4]
push eax
push dword [ebp - 0x440]
call fcn.0050de5c
mov eax, dword [ebp - 0x458]
xorps xmm0, xmm0
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x450]
mov dword [ebp - 0x484], eax
mov eax, dword [ebp - 0x44c]
movlpd qword [ebp - 0x48c], xmm0
mov dword [ebp - 0x490], 1
test eax, eax
je 0x43a98c
mov eax, dword [eax + 4]
push eax
push dword [ebp - 0x440]
call fcn.0050de5c
push dword [ebp - 0x448]
lea ecx, [ebp - 0x444]
call fcn.0050dec3
test ebx, ebx
jne 0x43a9b1
xor eax, eax
jmp 0x43a9b4
mov eax, dword [ebx + 4]
push eax
push dword [ebp - 0x440]
call fcn.0050de5c
lea eax, [ebp - 0x490]
push eax
call dword [sym.imp.USER32.dll_CreateIconIndirect]
lea ecx, [ebp - 0x454]
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
mov esi, eax
call fcn.004419b0
lea ecx, [ebp - 0x468]
mov dword [ebp - method.CBrush.virtual_0], vtable.CBrush.0
call fcn.004419b0
lea ecx, [ebp - 0x444]
call fcn.0050cf00
lea ecx, [ebp - 0x45c]
mov dword [ebp - method.CBitmap.virtual_0], vtable.CBitmap.0
call fcn.004419b0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0063db0b
mov esp, ebp
pop ebp
ret 0x10
push 0x80004005
call fcn.00403b60
push 0x80004005
call fcn.00403b60
int3