Function at 0x4dc460
Capabilities:
Get geographical location
Get graphical window text

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x34
cmp eax, 0x111
push ebx
push ebp
push esi
push edi
mov esi, ecx
ja 0x4dc8c9
je 0x4dc4c7
cmp eax, 0x18
je 0x4dc49e
cmp eax, 0x110
jne 0x4dca63
mov eax, dword [esp + 0x48]
push eax
call fcn.004dcd90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 0x10
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4dc4b8
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
test eax, eax
je 0x4dc4b8
mov ecx, dword [esi + 4]
call fcn.004d6b70
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x34
ret 0x10
mov ebx, dword [esp + 0x50]
mov eax, ebx
shr eax, 0x10
sub eax, 0
je 0x4dc64f
dec eax
je 0x4dc5f1
sub eax, 0x2ff
jne 0x4dca63
mov ebp, dword [esp + 0x48]
lea eax, [esp + 0x1c]
and ebx, 0xffff
push 0x14
push eax
push ebx
push ebp
call dword [sym.imp.USER32.dll_GetDlgItemTextA]
lea ecx, [esp + 0x1c]
push ecx
call fcn.004760a0
fmul qword [0x539b90]
add esp, 4
call sub.MSVCRT.dll__ftol
cmp ebx, 0x9f5
mov edi, eax
jne 0x4dca63
mov ebx, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push 0
push 0x466
push 0x9f4
push ebp
call ebx
mov ecx, eax
shr ecx, 0x10
cmp edi, ecx
jge 0x4dc54c
mov edi, ecx
and eax, 0xffff
cmp edi, eax
jle 0x4dc557
mov edi, eax
and edi, 0xffff
push edi
push 0
push 0x467
push 0x9f4
push ebp
call ebx
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x244]
test eax, eax
je 0x4dca63
mov eax, dword [ecx + 0x25c]
test eax, eax
je 0x4dca63
call fcn.004d6e60
mov eax, dword [esi + 4]
xor edi, edi
mov eax, dword [eax]
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x4dc5c9
cmp edi, ecx
jge 0x4dc5b5
test edi, edi
jl 0x4dc5b5
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + edi*4]
jmp 0x4dc5b7
xor ecx, ecx
push 0
call fcn.004e0fc0
mov edx, dword [esi + 4]
inc edi
mov eax, dword [edx]
cmp edi, dword [eax + 8]
jl 0x4dc5a9
mov ecx, dword [esi + 4]
call fcn.004d6da0
mov eax, dword [esi + 4]
push 0
push 0
mov ecx, dword [eax + 0x244]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret 0x10
mov edx, dword [esp + 0x48]
push 0
push 0
push 0x147
push 0xa5a
push edx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edi, eax
mov eax, dword [esi + 0x14]
cmp edi, eax
je 0x4dc640
mov ecx, esi
mov dword [esi + 0x14], edi
call fcn.004dd3a0
mov ecx, dword [esi + 0x18]
lea eax, [edi*8]
sub eax, edi
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*4 + 4]
lea eax, [ecx + eax*4]
mov ecx, dword [esi + 4]
push edx
mov eax, dword [eax + 0x1c]
push eax
call fcn.004d5310
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x34
ret 0x10
cmp bx, 0xa75
jne 0x4dc773
lea ecx, [esp + 0x50]
push 0
push ecx
mov ecx, dword [esi + 0x14]
lea eax, [ecx*8]
sub eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + edx*4 + 4]
push ecx
call sub.WINSPOOL.DRV_OpenPrinterA
mov edi, dword [esp + 0x48]
mov dl, byte [0x5688a4]
xor eax, eax
lea ecx, [esp + 0x10]
mov dword [esp + 0x11], eax
push 8
push ecx
mov word [esp + 0x1d], ax
push 0x482
push edi
mov byte [esp + 0x20], dl
mov byte [esp + 0x27], al
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
test ax, ax
jle 0x4dc6e1
mov edx, dword [esi + 0x14]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [esi + 0x18]
lea ecx, [ecx + ecx*2]
mov ecx, dword [edx + ecx*4 + 0x1c]
mov word [ecx + 0x36], ax
mov ecx, dword [esi + 0x14]
push 0xe
lea eax, [ecx*8]
sub eax, ecx
lea edx, [eax + eax*2]
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + edx*4 + 0x1c]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x54]
push ecx
push ecx
mov ecx, dword [eax + 4]
push ecx
push edx
push edi
call sub.WINSPOOL.DRV_DocumentPropertiesA
mov edi, eax
mov eax, dword [esp + 0x50]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
cmp edi, 1
jne 0x4dc753
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
mov edx, dword [eax + 0x1c]
push ecx
mov ecx, dword [esi + 4]
push edx
call fcn.004d5310
mov ecx, dword [esi + 4]
call fcn.004d7050
mov ecx, esi
call fcn.004dd3a0
mov eax, dword [esi + 4]
push 0
push 0
mov ecx, dword [eax + 0x240]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret 0x10
cmp bx, 0x9f3
jne 0x4dc825
mov ebx, dword [esp + 0x48]
push 0x9f3
push ebx
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, eax
push edi
push 0x9f5
push ebx
call ebp
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push edi
push 0x9f4
push ebx
call ebp
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push edi
push 0xa43
push ebx
call ebp
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
test edi, edi
jne 0x4dc7d4
mov edx, dword [esi + 4]
mov dword [edx + 0x70], 0x3f99999a
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x244]
test eax, eax
je 0x4dca63
call fcn.004d6e60
mov eax, dword [esi + 4]
xor edi, edi
mov eax, dword [eax]
mov ecx, dword [eax + 8]
test ecx, ecx
jle 0x4dc5c9
cmp edi, ecx
jge 0x4dc80c
test edi, edi
jl 0x4dc80c
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + edi*4]
jmp 0x4dc80e
xor ecx, ecx
push 0
call fcn.004e0fc0
mov edx, dword [esi + 4]
inc edi
mov eax, dword [edx]
cmp edi, dword [eax + 8]
jl 0x4dc800
jmp 0x4dc5c9
cmp bx, 0xa78
jne 0x4dc875
mov edi, dword [esp + 0x48]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push 0xa5e
push edi
call ebx
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebp
push 1
push 0xa5c
push edi
call ebx
push eax
call ebp
push 1
push 0x442
push edi
call ebx
push eax
call ebp
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret 0x10
cmp bx, 0xa76
jne 0x4dca63
mov edi, dword [esp + 0x48]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0xa5e
push edi
call ebx
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call ebp
push 0
push 0xa5c
push edi
call ebx
push eax
call ebp
push 0
push 0x442
push edi
call ebx
push eax
call ebp
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret 0x10
cmp eax, 0x114
jb 0x4dca63
cmp eax, 0x115
jbe 0x4dc916
cmp eax, 0x402
jne 0x4dca63
mov ecx, dword [esi + 4]
mov dword [ecx + 0x24c], 1
mov esi, dword [esi + 4]
mov eax, dword [esi + 0x244]
test eax, eax
je 0x4dc907
mov ecx, esi
call fcn.004d6b70
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x34
ret 0x10
mov ebx, dword [esp + 0x54]
push 0xfffffffffffffff4
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x468
push ebx
mov edi, eax
call ebp
mov ecx, edi
and eax, 0xffff
sub ecx, 0x9f4
je 0x4dc986
sub ecx, 0x17
jne 0x4dca63
mov esi, dword [esp + 0x48]
push 0
push eax
push 0xa09
push esi
call dword [sym.imp.USER32.dll_SetDlgItemInt]
push 0xffffffffffffffff
push 0
push 0xb1
push 0xa0b
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x34
ret 0x10
mov dx, word [0x5579f4]
lea edi, [eax + eax*4]
lea ecx, [esp + 0x10]
xor eax, eax
push 0xa
push ecx
mov dword [esp + 0x1a], eax
push 0xe
push 0x400
mov word [esp + 0x20], dx
shl edi, 1
mov dword [esp + 0x26], eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, edi
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x1c]
push edx
lea edx, [esp + 0x14]
push edx
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push str._0d_s_02d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, 0x66666667
add esp, 0x14
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ebx
call ebp
mov edi, dword [esp + 0x48]
lea ecx, [esp + 0x30]
push 0x14
push ecx
push 0x9f4
push edi
call dword [sym.imp.USER32.dll_GetDlgItemTextA]
lea edx, [esp + 0x1c]
lea eax, [esp + 0x30]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4dca48
lea ecx, [esp + 0x1c]
push ecx
push 0x9f5
push edi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 0xffffffffffffffff
push 0
push 0xb1
push 0x9f5
push edi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [esi]
mov ecx, esi
call dword [edx]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x34
ret 0x10