Function at 0x40f530
Capabilities:
Accept command line arguments
Check os version
Delete file
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48077f
mov eax, dword fs:[0]
push eax
mov eax, 0x17cc
call fcn.0046ab70
mov eax, dword [0x4b185c]
xor eax, ebp
mov dword [ebp - 0x30], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x17a4], ecx
mov dword [ebp - 0x17a0], 0
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov ecx, dword [ebp - 0x17a4]
call fcn.00456738
push 0x48c870
mov ecx, dword [ebp - 0x17a4]
call fcn.00459ca3
push 8
lea eax, [ebp - 0x38]
push eax
push 3
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
lea ecx, [ebp - 0x38]
push ecx
call fcn.004065f0
add esp, 4
mov dword [ebp - 0xd8], eax
push 0x48c884
mov edx, dword [ebp - 0xd8]
push edx
call fcn.0046ab17
add esp, 8
test eax, eax
je 0x40f759
lea ecx, [ebp - 0x114]
call fcn.00402320
mov dword [ebp - 4], 0
push str._.dll
mov eax, dword [ebp - 0xd8]
push eax
push str.DriverWizard_
lea ecx, [ebp - 0x114]
call fcn.00405270
mov ecx, eax
call fcn.00405270
mov ecx, eax
call fcn.00405270
lea ecx, [ebp - 0x110]
call fcn.00401000
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1770]
push ecx
call fcn.0040fcb0
add esp, 4
mov dword [ebp - 0x17a8], eax
mov edx, dword [ebp - 0x17a8]
mov dword [ebp - 0x17ac], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x17ac]
push eax
lea ecx, [ebp - 0x110]
call fcn.004018c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1770]
call fcn.00402630
push 0x48c8a0
lea ecx, [ebp - 0x1774]
call fcn.00402350
mov byte [ebp - 4], 3
push 0
lea ecx, [ebp - 0x1774]
push ecx
lea edx, [ebp - 0x1778]
push edx
call fcn.00405d90
add esp, 0xc
mov dword [ebp - 0x17b0], eax
mov eax, dword [ebp - 0x17b0]
mov dword [ebp - 0x17b4], eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x17b4]
push ecx
mov ecx, dword [ebp - 0x17a4]
add ecx, 0xa8
call fcn.00402820
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1778]
call fcn.00402630
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1774]
call fcn.00402630
push 4
mov edx, dword [ebp - 0x17a4]
add edx, 0xa8
push edx
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x110]
call fcn.004016f0
movzx ecx, al
test ecx, ecx
je 0x40f738
mov ecx, dword [ebp - 0x17a4]
add ecx, 0xa8
call fcn.00402260
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, dword [ebp - 0x17a4]
mov dword [edx + 0xa4], eax
mov eax, dword [ebp - 0x17a4]
mov ecx, dword [eax + 0xa4]
push ecx
call fcn.00411ac0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x110]
call fcn.004012a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x114]
call fcn.00402630
mov ecx, dword [ebp - 0x17a4]
call fcn.00411010
mov ecx, dword [ebp - 0x17a4]
call fcn.00410ea0
movzx edx, al
test edx, edx
jne 0x40f7ce
push 0
push 0x10
push 0x7a
lea eax, [ebp - 0x177c]
push eax
call fcn.00415aa0
add esp, 8
mov dword [ebp - 0x17b8], eax
mov ecx, dword [ebp - 0x17b8]
mov dword [ebp - 0x17bc], ecx
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x17bc]
call fcn.0040e550
push eax
call fcn.00458430
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x177c]
call fcn.0040e4c0
xor eax, eax
jmp 0x40fbe1
mov dword [ebp - 0xd4], 0x94
lea edx, [ebp - 0xd4]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x40f93e
cmp dword [ebp - 0xd0], 6
jae 0x40f93e
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 1
lea eax, [ebp - 0x124]
push eax
lea ecx, [ebp - 0x118]
push ecx
push 0
call sub.WINSPOOL.DRV_OpenPrinterA
test eax, eax
jne 0x40f932
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x128], eax
lea ecx, [ebp - 0x12c]
call fcn.0040e380
mov dword [ebp - 4], 6
cmp dword [ebp - 0x128], 5
jne 0x40f8a9
push 0xad
lea edx, [ebp - 0x1780]
push edx
call fcn.00415aa0
add esp, 8
mov dword [ebp - 0x17c0], eax
mov eax, dword [ebp - 0x17c0]
mov dword [ebp - 0x17c4], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x17c4]
push ecx
lea ecx, [ebp - 0x12c]
call fcn.0040e510
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1780]
call fcn.0040e4c0
jmp 0x40f8f6
mov edx, dword [ebp - 0x128]
push edx
lea eax, [ebp - 0x1784]
push eax
call fcn.00415c30
add esp, 8
mov dword [ebp - 0x17c8], eax
mov ecx, dword [ebp - 0x17c8]
mov dword [ebp - 0x17cc], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x17cc]
push edx
lea ecx, [ebp - 0x12c]
call fcn.0040e510
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1784]
call fcn.0040e4c0
push 0
push 0x10
lea ecx, [ebp - 0x12c]
call fcn.0040e550
push eax
call fcn.00458430
mov dword [ebp - 0x1788], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x12c]
call fcn.0040e4c0
mov eax, dword [ebp - 0x1788]
jmp 0x40fbe1
mov eax, dword [ebp - 0x118]
push eax
call sub.WINSPOOL.DRV_ClosePrinter
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
lea ecx, [ebp - 0x178c]
call fcn.0040e440
mov dword [ebp - 4], 9
lea ecx, [ebp - 0x178c]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0040d080
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x178c]
call fcn.0040e4c0
lea ecx, [ebp - 0x2c]
call fcn.0040d200
movzx edx, al
test edx, edx
jne 0x40fb88
mov ecx, dword [ebp - 0x17a4]
call fcn.0040ff80
mov ecx, dword [ebp - 0x17a4]
mov byte [ecx + 0xac], al
push 0
call fcn.0040fc00
push eax
lea ecx, [ebp - 0x1764]
call fcn.00438950
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2c]
call fcn.00411220
movzx edx, al
test edx, edx
je 0x40f9d5
lea ecx, [ebp - 0x1764]
call fcn.0043daf0
jmp 0x40fb1f
lea ecx, [ebp - 0x2c]
call fcn.00411240
movzx eax, al
test eax, eax
je 0x40f9f4
lea ecx, [ebp - 0x1764]
call fcn.0043e2d0
jmp 0x40fb1f
mov dword [ebp - 0x176c], 0
lea ecx, [ebp - 0x2c]
call fcn.0040db60
movzx ecx, al
push ecx
lea ecx, [ebp - 0x1764]
call fcn.00411280
lea ecx, [ebp - 0x2c]
call fcn.0040db00
movzx edx, al
test edx, edx
jne 0x40fa8b
lea ecx, [ebp - 0x1764]
call fcn.00411260
movzx eax, al
test eax, eax
jne 0x40fa8b
lea ecx, [ebp - 0x1794]
push ecx
lea ecx, [ebp - 0x1764]
call fcn.004112a0
mov dword [ebp - 0x17d0], eax
mov edx, dword [ebp - 0x17d0]
mov dword [ebp - 0x17d4], edx
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x17a0]
or eax, 1
mov dword [ebp - 0x17a0], eax
mov ecx, dword [ebp - 0x17d4]
call fcn.0040de50
movzx ecx, al
test ecx, ecx
je 0x40fa8b
mov dword [ebp - 0x17d8], 1
jmp 0x40fa95
mov dword [ebp - 0x17d8], 0
mov dl, byte [ebp - 0x17d8]
mov byte [ebp - 0x178d], dl
mov dword [ebp - 4], 0xc
mov eax, dword [ebp - 0x17a0]
and eax, 1
je 0x40fac5
and dword [ebp - 0x17a0], 0xfffffffe
lea ecx, [ebp - 0x1794]
call fcn.0040e4c0
movzx ecx, byte [ebp - 0x178d]
test ecx, ecx
je 0x40fb0d
push 0x48c8a4
lea ecx, [ebp - 0x1798]
call fcn.0040e440
mov byte [ebp - 4], 0xe
push 0
lea edx, [ebp - 0x1798]
push edx
mov ecx, dword [ebp - 0x17a4]
call fcn.004101e0
mov dword [ebp - 0x176c], eax
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1798]
call fcn.0040e4c0
mov eax, dword [ebp - 0x176c]
push eax
lea ecx, [ebp - 0x1764]
call fcn.0043f5e0
lea ecx, [ebp - 0x1764]
call fcn.00459292
mov dword [ebp - 0x1768], eax
cmp dword [ebp - 0x1768], 4
jne 0x40fb62
lea ecx, [ebp - 0x1764]
call fcn.0043d3e0
lea ecx, [ebp - 0x1764]
call fcn.0043a080
lea ecx, [ebp - 0x1764]
call fcn.00459292
mov dword [ebp - 0x1768], eax
jmp 0x40fb30
cmp dword [ebp - 0x1768], 0x3025
jne 0x40fb79
lea ecx, [ebp - 0x1764]
call fcn.0043d3e0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x1764]
call fcn.00439280
mov ecx, dword [ebp - 0x17a4]
cmp dword [ecx + 0xa4], 0
je 0x40fbc2
mov edx, dword [ebp - 0x17a4]
mov eax, dword [edx + 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0x17a4]
add ecx, 0xa8
call fcn.00402260
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov dword [ebp - 0x179c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0040d190
mov eax, dword [ebp - 0x179c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x30]
xor ecx, ebp
call fcn.0046a0d3
mov esp, ebp
pop ebp
ret