Function at 0x401590
Capabilities:
Accept command line arguments
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x47839d
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x49d340]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49d340]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [edi + 4]
mov byte [edi], 0
xor ebp, ebp
push 5
mov esi, 7
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push str.en_US
mov dword [esp + 0x1c], edi
mov word [ecx + 4], bp
call fcn.00405290
add edi, 0x20
mov dword [esp + 0xf8], ebp
push 2
mov dword [edi + 0x18], esi
mov dword [edi + 0x14], ebp
push 0x48612c
mov ecx, edi
mov word [edi + 4], bp
call fcn.00405290
mov ebx, 1
mov byte [esp + 0xf8], bl
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, eax
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], ebp
mov word [esp + 0xb8], bp
lea edx, [ecx + 2]
mov si, word [ecx]
add ecx, 2
cmp si, bp
jne 0x401643
sub ecx, edx
sar ecx, 1
push ecx
push eax
lea ecx, [esp + 0xbc]
call fcn.00405290
mov byte [esp + 0xf8], 2
push 4
mov esi, 7
push str.__r_n_t
lea ecx, [esp + 0x20]
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebp
mov word [esp + 0x24], bp
call fcn.00405290
lea eax, [esp + 0x18]
lea ecx, [esp + 0xb4]
mov byte [esp + 0xf8], 3
call fcn.0041c26a
lea eax, [esp + 0x18]
lea ecx, [esp + 0xb4]
call fcn.0041c2d8
mov byte [esp + 0xf8], 2
cmp dword [esp + 0x30], 8
jb 0x4016ce
mov eax, dword [esp + 0x1c]
push eax
call fcn.00433471
add esp, 4
push 9
push str._download
lea ecx, [esp + 0xd8]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xec], ebp
mov word [esp + 0xdc], bp
call fcn.00405290
mov byte [esp + 0xf8], 4
cmp dword [esp + 0xe8], 8
mov eax, dword [esp + 0xd4]
jae 0x401717
lea eax, [esp + 0xd4]
mov ecx, dword [esp + 0xe4]
push ecx
push ebp
push eax
lea ecx, [esp + 0xc0]
call fcn.00404c60
mov esi, eax
cmp esi, 0xffffffff
jne 0x4017b1
mov esi, 8
cmp dword [esp + 0xe8], esi
jb 0x401752
mov edx, dword [esp + 0xd4]
push edx
call fcn.00433471
add esp, 4
cmp dword [esp + 0xcc], esi
mov dword [esp + 0xe8], 7
mov dword [esp + 0xe4], ebp
mov word [esp + 0xd4], bp
jb 0x401785
mov eax, dword [esp + 0xb8]
push eax
call fcn.00433471
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.00433192
add esp, 0xe8
ret
lea ebp, [esi - 1]
cmp ebp, dword [esp + 0xc8]
jbe 0x4017c2
call fcn.00433461
mov edx, dword [esp + 0xcc]
cmp edx, 8
mov eax, dword [esp + 0xb8]
mov ecx, eax
jae 0x4017de
lea ecx, [esp + 0xb8]
cmp word [ecx + ebp*2], 0x20
je 0x40186c
cmp ebp, dword [esp + 0xc8]
jbe 0x401805
call fcn.00433461
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xb8]
cmp edx, 8
mov ecx, eax
jae 0x401813
lea ecx, [esp + 0xb8]
cmp word [ecx + ebp*2], 9
je 0x40186c
cmp dword [esp + 0xe8], 8
jb 0x401842
mov ecx, dword [esp + 0xd4]
push ecx
call fcn.00433471
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xbc]
add esp, 4
xor ecx, ecx
cmp edx, 8
mov dword [esp + 0xe8], 7
mov dword [esp + 0xe4], ecx
mov word [esp + 0xd4], cx
jb 0x401785
jmp 0x40177c
add esi, dword [esp + 0xe4]
cmp esi, dword [esp + 0xc8]
jae 0x4018bf
cmp edx, 8
jae 0x401888
lea eax, [esp + 0xb8]
cmp word [eax + esi*2], 0x20
je 0x4018bf
push esi
lea ecx, [esp + 0xb8]
call fcn.0040d0b0
cmp word [eax], 9
je 0x4018bf
lea ecx, [esp + 0xd0]
call fcn.00407dc0
lea ecx, [esp + 0xb4]
call fcn.00407dc0
jmp 0x401785
mov ebp, dword [esp + 0x14]
push 3
push 0x486154
lea ecx, [esp + 0xd8]
mov byte [ebp], bl
call fcn.00405290
cmp dword [esp + 0xe8], 8
mov eax, dword [esp + 0xd4]
jae 0x4018f1
lea eax, [esp + 0xd4]
mov edx, dword [esp + 0xe4]
push edx
push 0
push eax
lea ecx, [esp + 0xc0]
call fcn.00404c60
mov esi, eax
cmp esi, 0xffffffff
je 0x4019c2
lea ebp, [esi - 1]
cmp ebp, dword [esp + 0xc8]
jbe 0x401924
call fcn.00433461
cmp dword [esp + 0xcc], 8
mov eax, dword [esp + 0xb8]
jae 0x40193c
lea eax, [esp + 0xb8]
cmp word [eax + ebp*2], 0x20
je 0x401956
push ebp
lea ecx, [esp + 0xb8]
call fcn.0040d0b0
cmp word [eax], 9
jne 0x4019be
mov eax, dword [esp + 0xe4]
add esi, eax
push 2
push 0x48615c
mov edx, esi
lea eax, [esp + 0xbc]
call fcn.00404d30
cmp eax, 0xffffffff
jne 0x401980
mov eax, dword [esp + 0xc8]
sub eax, esi
test eax, eax
jbe 0x4019be
push eax
push esi
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0xc0]
call fcn.004043f0
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0x104], 5
call fcn.004075e0
lea ecx, [esp + 0x18]
mov byte [esp + 0xf8], 4
call fcn.00407dc0
mov ebp, dword [esp + 0x14]
push 3
push 0x486164
lea ecx, [esp + 0xd8]
call fcn.00405290
cmp dword [esp + 0xe8], 8
mov eax, dword [esp + 0xd4]
jae 0x4019ed
lea eax, [esp + 0xd4]
mov edx, dword [esp + 0xe4]
push edx
push 0
push eax
lea ecx, [esp + 0xc0]
call fcn.00404c60
mov esi, eax
cmp esi, 0xffffffff
je 0x401acf
mov ebx, dword [esp + 0xc8]
lea edi, [esi - 1]
cmp edi, ebx
jbe 0x401a29
call fcn.00433461
mov ebx, dword [esp + 0xc8]
cmp dword [esp + 0xcc], 8
mov eax, dword [esp + 0xb8]
jae 0x401a41
lea eax, [esp + 0xb8]
cmp word [eax + edi*2], 0x20
je 0x401a66
push edi
lea ecx, [esp + 0xb8]
call fcn.0040d0b0
cmp word [eax], 9
jne 0x401c7d
mov ebx, dword [esp + 0xc8]
mov eax, dword [esp + 0xe4]
add esi, eax
push 2
push 0x48615c
mov edx, esi
lea eax, [esp + 0xbc]
call fcn.00404d30
cmp eax, 0xffffffff
jne 0x401a8f
sub ebx, esi
mov eax, ebx
jmp 0x401a91
sub eax, esi
test eax, eax
jbe 0x401c7d
push eax
push esi
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0xc0]
call fcn.004043f0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp + 4]
mov byte [esp + 0x104], 6
call fcn.004075e0
lea ecx, [esp + 0x18]
call fcn.00407dc0
jmp 0x401c7d
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
mov ecx, eax
shr ax, 0xa
movzx esi, ax
mov eax, str.zh_CN
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
mov eax, str.zh_TW
and ecx, 0x3ff
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], eax
xor edx, edx
mov byte [esp + 0x34], 4
mov byte [esp + 0x35], 2
mov byte [esp + 0x3c], 4
mov byte [esp + 0x3d], 4
mov byte [esp + 0x44], 4
mov byte [esp + 0x45], bl
mov byte [esp + 0x4c], 4
mov byte [esp + 0x4d], 3
mov byte [esp + 0x54], 4
mov byte [esp + 0x55], 5
mov byte [esp + 0x5c], 9
mov byte [esp + 0x5d], bl
mov dword [esp + 0x60], str.en_US
mov byte [esp + 0x64], 0xc
mov byte [esp + 0x65], bl
mov dword [esp + 0x68], 0x486184
mov byte [esp + 0x6c], 0x10
mov byte [esp + 0x6d], bl
mov dword [esp + 0x70], 0x48618c
mov byte [esp + 0x74], 0x11
mov byte [esp + 0x75], bl
mov dword [esp + 0x78], 0x486194
mov byte [esp + 0x7c], 0x15
mov byte [esp + 0x7d], bl
mov dword [esp + 0x80], 0x48619c
mov byte [esp + 0x84], 0x16
mov byte [esp + 0x85], bl
mov dword [esp + 0x88], str.pt_BR
mov byte [esp + 0x8c], 0x19
mov byte [esp + 0x8d], bl
mov dword [esp + 0x90], 0x4861b0
mov byte [esp + 0x94], 0xa
mov byte [esp + 0x95], bl
mov dword [esp + 0x98], str.es_ES
mov byte [esp + 0x9c], 7
mov byte [esp + 0x9d], bl
mov dword [esp + 0xa0], 0x4861c4
mov byte [esp + 0xa4], 0x13
mov byte [esp + 0xa5], bl
mov dword [esp + 0xa8], 0x4861cc
mov byte [esp + 0xac], 2
mov byte [esp + 0xad], bl
mov dword [esp + 0xb0], 0x4861d4
xor eax, eax
mov edi, edi
movzx di, byte [esp + eax*8 + 0x34]
cmp cx, di
jne 0x401c4e
movzx di, byte [esp + eax*8 + 0x35]
cmp si, di
je 0x401c57
test edx, edx
jne 0x401c4e
mov edx, dword [esp + eax*8 + 0x38]
add eax, ebx
cmp eax, 0x10
jb 0x401c30
jmp 0x401c5b
mov edx, dword [esp + eax*8 + 0x38]
test edx, edx
je 0x401c7d
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401c64
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp + 4]
call fcn.00405290
mov esi, 8
cmp dword [esp + 0xe8], esi
jb 0x401c9b
mov edx, dword [esp + 0xd4]
push edx
call fcn.00433471
add esp, 4
xor eax, eax
cmp dword [esp + 0xcc], esi
mov dword [esp + 0xe8], 7
mov dword [esp + 0xe4], eax
mov word [esp + 0xd4], ax
jb 0x401cd0
mov eax, dword [esp + 0xb8]
push eax
call fcn.00433471
add esp, 4
mov eax, ebp
jmp 0x401789