Function at 0x44d7f0
Capabilities:
Get geographical location
Hide graphical window

Disassembly:
sub esp, 0x7c
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x68]
mov esi, dword [esp + 0x8c]
test eax, eax
push edi
mov dword [ebx + 0x84], 0
mov dword [ebx + 0x60], esi
je 0x44d974
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x22c
push esi
call ebp
lea ecx, [esp + 0x2c]
mov dword [esp + 0x20], eax
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 0xd0]
sub eax, edi
mov edi, dword [esp + 0x38]
sub edi, edx
mov edx, dword [ebx + 0xcc]
push edx
push ecx
push eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
cmp eax, edi
jle 0x44d886
mov edx, dword [ebx + 0xd0]
mov eax, dword [ebx + 0xcc]
push edx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [esp + 0x24], eax
jmp 0x44d88c
mov dword [esp + 0x28], eax
mov edi, eax
lea ecx, [esp + 0x2c]
push 2
push ecx
push esi
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
sub eax, ecx
add eax, edx
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
sub eax, edi
lea edi, [esp + 0x3c]
add eax, ecx
mov ecx, 0xa
cdq
sub eax, edx
lea edx, [esp + 0x3c]
sar eax, 1
mov dword [esp + 0x1c], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x58]
push edx
push str.PrintPreviewWndClass
push eax
mov dword [esp + 0x6c], str.PrintPreviewWndClass
call dword [sym.imp.USER32.dll_GetClassInfoA]
test eax, eax
jne 0x44d929
mov ecx, dword [ebx + 0x58]
push 0x7f00
push eax
mov dword [esp + 0x48], 0x44d3d0
mov dword [esp + 0x50], 4
mov dword [esp + 0x54], ecx
call dword [sym.imp.USER32.dll_LoadCursorA]
lea edx, [esp + 0x3c]
mov dword [esp + 0x54], eax
push edx
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [esp + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebx + 0x58]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push ebx
push ecx
mov ecx, dword [esp + 0x24]
push 0x245
push esi
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x78]
push ecx
push edx
push 0x50000000
push str.Print_preview
push eax
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [ebx + 0x64], eax
jmp 0x44d9eb
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
lea ecx, [esp + 0x2c]
push ecx
push 0x22a
push esi
call ebp
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
push eax
call edi
lea edx, [esp + 0x2c]
push 2
push edx
push esi
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
push 5
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [esp + 0x2c]
lea edx, [ecx + eax*2]
lea eax, [esp + 0x2c]
push eax
push esi
mov dword [esp + 0x28], edx
call edi
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
sub ecx, edi
push 6
push ecx
push edx
push 0
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0
push 0x246
push esi
call ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
movsx ecx, byte [ebx + 0x10]
xor eax, eax
cmp ecx, 8
ja case.default.0x44d9f6
jmp dword [ecx*4 + 0x44e3f8]
mov eax, 0x23b
jmp case.default.0x44d9f6
mov eax, 0x23c
jmp case.default.0x44d9f6
mov eax, 0x23d
jmp case.default.0x44d9f6
mov eax, 0x23e
jmp case.default.0x44d9f6
mov eax, 0x23f
jmp case.default.0x44d9f6
mov eax, 0x240
jmp case.default.0x44d9f6
mov eax, 0x241
jmp case.default.0x44d9f6
mov eax, 0x242
jmp case.default.0x44d9f6
mov eax, 0x243
and eax, 0xffff
push 1
push eax
push esi
call dword [sym.imp.USER32.dll_CheckDlgButton]
mov eax, dword [ebx + 0x58]
mov edi, dword [sym.imp.USER32.dll_LoadBitmapA]
push 0x7d0
push eax
call edi
push eax
push 0
push 0xf7
push 0x23b
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [ebx + 0x58]
push 0x7d1
push ecx
call edi
push eax
push 0
push 0xf7
push 0x23c
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [ebx + 0x58]
push 0x7d2
push edx
call edi
push eax
push 0
push 0xf7
push 0x23d
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [ebx + 0x58]
push 0x7d3
push eax
call edi
push eax
push 0
push 0xf7
push 0x23e
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [ebx + 0x58]
push 0x7d4
push ecx
call edi
push eax
push 0
push 0xf7
push 0x23f
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [ebx + 0x58]
push 0x7d5
push edx
call edi
push eax
push 0
push 0xf7
push 0x240
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [ebx + 0x58]
push 0x7d6
push eax
call edi
push eax
push 0
push 0xf7
push 0x241
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov ecx, dword [ebx + 0x58]
push 0x7d7
push ecx
call edi
push eax
push 0
push 0xf7
push 0x242
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov edx, dword [ebx + 0x58]
push 0x7d8
push edx
call edi
push eax
push 0
push 0xf7
push 0x243
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov cl, byte [ebx + 0x17]
mov edi, dword [sym.imp.USER32.dll_CheckDlgButton]
xor eax, eax
test cl, cl
setne al
push eax
push 0x205
push esi
call edi
mov al, byte [ebx + 0x14]
xor ecx, ecx
test al, al
setne cl
push ecx
push 0x201
push esi
call edi
mov cl, byte [ebx + 0x15]
xor edx, edx
test cl, cl
setne dl
push edx
push 0x203
push esi
call edi
mov dl, byte [ebx + 0x16]
xor eax, eax
test dl, dl
setne al
push eax
push 0x206
push esi
call edi
mov al, byte [ebx + 0x12]
xor ecx, ecx
test al, al
setne cl
push ecx
push 0x223
push esi
call edi
push 0x220
push esi
call ebp
lea edx, [esp + 0x64]
mov edi, eax
mov eax, dword [ebx + 0x58]
push 0x28
push edx
push 0x45f
push eax
mov dword [esp + 0x20], edi
call dword [sym.imp.USER32.dll_LoadStringA]
lea ecx, [esp + 0x64]
push ecx
push 0
push 0x143
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
call edi
mov eax, dword [ebx + 0x58]
lea edx, [esp + 0x64]
push 0x28
push edx
push 0x460
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x64]
push ecx
push 0
push 0x143
push edx
call edi
mov ecx, dword [ebx + 0x58]
lea eax, [esp + 0x64]
push 0x28
push eax
push 0x461
push ecx
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x64]
push edx
push 0
push 0x143
push eax
call edi
mov edx, dword [ebx + 0x58]
lea ecx, [esp + 0x64]
push 0x28
push ecx
push 0x462
push edx
call dword [sym.imp.USER32.dll_LoadStringA]
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x64]
push eax
push 0
push 0x143
push ecx
call edi
movsx edx, byte [ebx + 0x11]
mov eax, dword [esp + 0x10]
push 0
push edx
push 0x14e
push eax
call edi
mov al, byte [ebx + 0x1a]
test al, al
jne 0x44dcbb
push 0
push 0x215
push esi
call ebp
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 0
push 0x216
push esi
call ebp
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
fld dword [ebx + 0x1c]
fcomp dword [0x4cca7c]
fnstsw ax
test ah, 0x40
je 0x44dcd2
mov dword [ebx + 0x1c], 0x3f99999a
fld dword [ebx + 0x20]
fcomp dword [0x4cca7c]
mov ecx, 0x40c00000
fnstsw ax
test ah, 0x40
je 0x44dcea
mov dword [ebx + 0x20], ecx
fld dword [ebx + 0x24]
fcomp dword [0x4cca7c]
fnstsw ax
test ah, 0x40
je 0x44dcfd
mov dword [ebx + 0x24], ecx
fld dword [ebx + 0x28]
fcomp dword [0x4cca7c]
mov ecx, 0x3f800000
fnstsw ax
test ah, 0x40
je 0x44dd15
mov dword [ebx + 0x20], ecx
fld dword [ebx + 0x2c]
fcomp dword [0x4cca7c]
fnstsw ax
test ah, 0x40
je 0x44dd28
mov dword [ebx + 0x24], ecx
fild dword [ebx + 0xcc]
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov dword [ebx + 0xb8], eax
fidiv dword [ebx + 0xd4]
mov al, byte [ebx + 0x11]
mov dword [ebx + 0xc0], ecx
mov ecx, dword [ebx + 0x24]
cmp al, 3
mov dword [ebx + 0xc4], edx
mov dword [ebx + 0xbc], ecx
fstp dword [esp + 0x20]
fild dword [ebx + 0xd0]
fidiv dword [ebx + 0xd8]
fstp dword [esp + 0x24]
jne 0x44dd7c
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x10], edx
jmp 0x44dd83
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x10], ecx
cmp al, 3
jne 0x44dd90
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x18], edx
jmp 0x44dd97
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x18], eax
movsx ecx, byte [ebx + 0x1a]
push ecx
push 0x214
push esi
call dword [sym.imp.USER32.dll_CheckDlgButton]
fld dword [esp + 0x10]
fmul dword [0x4cca78]
mov dx, word [0x4e092c]
xor eax, eax
mov dword [esp + 0x2e], eax
mov word [esp + 0x2c], dx
mov dword [esp + 0x32], eax
call fcn.004bedcc
push 0x21b
push esi
mov dword [esp + 0x18], eax
call ebp
fld dword [esp + 0x20]
fmul dword [0x4cca74]
mov dword [esp + 0x14], eax
call fcn.004bedcc
mov ecx, dword [esp + 0x14]
and eax, 0xffff
push eax
push 0
push 0x465
push ecx
mov dword [esp + 0x30], eax
call edi
mov eax, 0x66666667
mov ecx, dword [esp + 0x14]
imul dword [esp + 0x10]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, dword [esp + 0x10]
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x30]
push edx
imul dword [esp + 0x18]
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]
add esp, 0x14
lea edx, [esp + 0x3c]
push edx
push 0x221
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
fld dword [esp + 0x18]
fmul dword [0x4cca78]
mov ax, word [0x4e092c]
xor ecx, ecx
mov dword [esp + 0x2e], ecx
mov word [esp + 0x2c], ax
mov dword [esp + 0x32], ecx
call fcn.004bedcc
mov dword [esp + 0x10], eax
push 0x224
push esi
call ebp
fld dword [esp + 0x24]
fmul dword [0x4cca74]
mov dword [esp + 0x18], eax
call fcn.004bedcc
mov edx, dword [esp + 0x18]
and eax, 0xffff
push eax
push 0
push 0x465
push edx
mov dword [esp + 0x24], eax
call edi
mov eax, 0x66666667
mov ecx, dword [esp + 0x18]
imul dword [esp + 0x10]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, dword [esp + 0x10]
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x30]
push edx
imul dword [esp + 0x18]
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]
add esp, 0x14
lea edx, [esp + 0x3c]
push edx
push 0x222
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
fld dword [ebx]
mov ax, word [0x4e092c]
xor ecx, ecx
fmul dword [0x4cca78]
mov dword [esp + 0x2e], ecx
mov word [esp + 0x2c], ax
mov dword [esp + 0x32], ecx
call fcn.004bedcc
push 0x219
push esi
mov dword [esp + 0x18], eax
call ebp
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
push edx
push 0
push 0x465
push eax
call edi
mov eax, 0x66666667
imul dword [esp + 0x10]
sar edx, 2
mov eax, edx
mov ecx, dword [esp + 0x24]
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, dword [esp + 0x10]
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x30]
push edx
imul dword [esp + 0x18]
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]
add esp, 0x14
lea edx, [esp + 0x3c]
push edx
push 0x21d
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
fld dword [ebx + 4]
mov ax, word [0x4e092c]
xor ecx, ecx
fmul dword [0x4cca78]
mov dword [esp + 0x2e], ecx
mov word [esp + 0x2c], ax
mov dword [esp + 0x32], ecx
call fcn.004bedcc
push 0x21a
push esi
mov dword [esp + 0x18], eax
call ebp
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
push edx
push 0
push 0x465
push eax
call edi
mov eax, 0x66666667
mov ecx, dword [esp + 0x24]
imul dword [esp + 0x10]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, dword [esp + 0x10]
cdq
mov ecx, 0x64
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x30]
push edx
imul dword [esp + 0x18]
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]
add esp, 0x14
lea edx, [esp + 0x3c]
push edx
push 0x21e
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
fld dword [ebx + 8]
mov ax, word [0x4e092c]
xor ecx, ecx
fmul dword [0x4cca78]
mov dword [esp + 0x2e], ecx
mov word [esp + 0x2c], ax
mov dword [esp + 0x32], ecx
call fcn.004bedcc
push 0x217
push esi
mov dword [esp + 0x18], eax
call ebp
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
push edx
push 0
push 0x465
push eax
call edi
mov eax, 0x66666667
mov ecx, dword [esp + 0x24]
imul dword [esp + 0x10]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, dword [esp + 0x10]
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x30]
push edx
imul dword [esp + 0x18]
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]
add esp, 0x14
lea edx, [esp + 0x3c]
push edx
push 0x21c
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
fld dword [ebx + 0xc]
mov ax, word [0x4e092c]
xor ecx, ecx
fmul dword [0x4cca78]
mov dword [esp + 0x2e], ecx
mov word [esp + 0x2c], ax
mov dword [esp + 0x32], ecx
call fcn.004bedcc
push 0x218
push esi
mov dword [esp + 0x18], eax
call ebp
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
push edx
push 0
push 0x465
push eax
call edi
mov eax, 0x66666667
mov ecx, dword [esp + 0x24]
imul dword [esp + 0x10]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov eax, dword [esp + 0x10]
mov ecx, 0x64
cdq
idiv ecx
mov eax, 0x51eb851f
lea ecx, [esp + 0x3c]
push edx
lea edx, [esp + 0x30]
push edx
imul dword [esp + 0x18]
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]
add esp, 0x14
lea edx, [esp + 0x3c]
push edx
push 0x21f
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
fld dword [ebx + 0x1c]
mov ax, word [0x4e092c]
xor ecx, ecx
fmul dword [0x4cca78]
mov dword [esp + 0x2e], ecx
mov word [esp + 0x2c], ax
mov dword [esp + 0x32], ecx
call fcn.004bedcc
push 0x215
push esi
mov dword [esp + 0x28], eax
call ebp
mov dword [esp + 0x24], eax
push 0x1001e
push 0
push 0x465
push eax
call edi
mov eax, 0x66666667
mov ecx, dword [esp + 0x24]
imul dword [esp + 0x20]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
and edx, 0xffff
push edx
push 0
push 0x467
push ecx
call edi
lea edx, [esp + 0x2c]
push 0xa
push edx
push 0xe
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov ecx, dword [esp + 0x20]
mov edi, 0x64
mov eax, ecx
cdq
idiv edi
lea eax, [esp + 0x2c]
push edx
push eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [esp + 0x48]
push str._0d_s_02d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea eax, [esp + 0x3c]
push eax
push 0x216
push esi
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov edi, dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0xa04b0
push 0
push 0x465
push 0x226
push esi
call edi
xor ecx, ecx
mov cx, word [ebx + 0x18]
push ecx
push 0
push 0x467
push 0x226
push esi
call edi
movsx edx, word [ebx + 0x18]
mov edi, dword [sym.imp.USER32.dll_SetDlgItemInt]
push 0
push edx
push 0x225
push esi
call edi
push 0x10001
push 0
push 0x465
push 0x229
push esi
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
push 0
push 0x244
push esi
call ebp
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0x220
mov ecx, ebx
call fcn.004513e0
push 0
push 1
push 0x227
push esi
call edi
push 0
push 0
push 0x402
push esi
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x7c
ret 4