Function at 0x402590
Capabilities:
Accept command line arguments
Get geographical location
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x278
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push esi
push edi
xor edi, edi
push edi
call ebp
mov dword [0x405010], eax
push edi
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x2c]
mov ebx, 1
push ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
call sub.gdiplus.dll_GdiplusStartup
mov byte [esp + 0x17], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x20], edi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [esp + 0x18], ebx
mov esi, eax
jle 0x402624
mov ecx, dword [esi + 4]
call fcn.00402a50
cmp eax, ebx
jbe 0x402624
movzx eax, word [ecx]
cmp ax, 0x5c
je 0x402613
cmp ax, 0x2f
jne 0x402624
cmp word [ecx + 2], 0x71
je 0x402620
cmp ax, 0x51
jne 0x402624
mov byte [esp + 0x17], bl
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x400
push 0x40
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push 0x400
push ebx
push edi
mov dword [esp + 0x84], ebx
call ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ebx
lea esi, [esp + 0x2c]
call fcn.004011c0
test al, al
je 0x402888
push 0x55
lea eax, [esp + 0x1dc]
push eax
push 0x1004
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov esi, dword [esp + 0x28]
mov ebx, dword [esi + 0x18]
mov eax, dword [esi + 0x1c]
add ebx, esi
xor ebp, ebp
cmp eax, edi
jbe 0x4026c6
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
add edx, esi
lea eax, [esp + 0x1d8]
call fcn.004029a0
test eax, eax
je 0x4026c4
add dword [esp + 0x18], 0x14
inc edi
cmp edi, dword [esi + 0x1c]
jb 0x40269f
jmp 0x4026c6
mov ebp, edi
mov edi, dword [esi + 4]
lea edx, [ebp + ebp*4]
mov ecx, dword [ebx + edx*4 + 4]
mov ebp, dword [ebx + edx*4 + 0xc]
lea eax, [ebx + edx*4]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 0x10]
mov eax, dword [esi + 0x14]
add eax, esi
add edx, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
add ecx, esi
mov dword [0x405008], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x10]
mov dword [0x40500c], ecx
mov ecx, dword [esi]
add edx, esi
add eax, esi
add ecx, esi
push edx
add ebp, esi
add ebx, esi
add edi, esi
push eax
lea esi, [esp + 0x20]
mov dword [0x405004], ecx
call fcn.004030b0
cmp byte [esp + 0x17], 0
mov eax, esi
je 0x402776
call fcn.004028d0
mov edx, eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x17]
push ecx
mov ecx, dword [0x405004]
push eax
push edi
xor eax, eax
mov byte [esp + 0x23], 0
call fcn.00402520
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
add esp, 0xc
push ecx
call fcn.00402ae0
add esp, 4
mov eax, esi
call fcn.004028f0
mov ebx, dword [esp + 0x78]
xor edi, edi
jmp 0x4028a1
mov esi, dword [0x405004]
mov dword [esp + 0x44], 0x4042ec
call fcn.004028d0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], eax
push 0x84
lea eax, [esp + 0x48]
mov dword [esp + 0x54], 0x25
mov dword [esp + 0x58], 0x9e
mov dword [esp + 0x5c], 0x107
mov dword [esp + 0x60], 8
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], esi
mov dword [esp + 0x71], edi
mov dword [esp + 0x75], edx
mov byte [esp + 0x70], 0
call fcn.004012e0
cmp byte [esp + 0x6c], 0
mov edi, 0x4042e4
jne 0x40281a
push ebp
push ebx
lea esi, [esp + 0x88]
call fcn.00401ef0
push 0x85
mov eax, esi
call fcn.004012e0
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x80], edi
test ecx, ecx
je 0x402863
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
jmp 0x402863
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
call fcn.00402ae0
add esp, 4
test al, al
jne 0x402863
push ebp
push ebx
lea esi, [esp + 0x88]
call fcn.00401ef0
push 0x85
mov eax, esi
call fcn.004012e0
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x80], edi
test ecx, ecx
je 0x402863
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], edi
test ecx, ecx
je 0x402877
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea eax, [esp + 0x18]
call fcn.004028f0
mov ebx, dword [esp + 0x78]
xor edi, edi
jmp 0x4028a1
cmp byte [esp + 0x17], 0
jne 0x4028a1
push edi
push str.Error
push str.Not_find_resource
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp ebx, edi
je 0x4028ac
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x4028bb
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esp + 0x24]
push ecx
call sub.gdiplus.dll_GdiplusShutdown
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]