Function at 0x472ce0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x672189
mov eax, dword fs:[0]
push eax
sub esp, 0x258
mov eax, dword [0x74b738]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x264], ebx
xor eax, eax
mov dword [ebp - 0x228], eax
mov dword [ebp - 4], eax
lea ecx, [ebx + 4]
mov esi, dword [ebx + 4]
push dword [esi + 4]
call fcn.00474ad0
mov eax, dword [ebx + 4]
mov dword [eax + 4], esi
mov eax, dword [ebx + 4]
mov dword [eax], esi
mov eax, dword [ebx + 4]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 8], esi
lea eax, [ebp - 0x110]
mov dword [ebx + 8], 0
mov edi, dword [ebx + 0x1c]
mov dword [ebp - 0x114], eax
test edi, edi
jne 0x472d6b
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x472db8
mov esi, edi
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x472d70
sub esi, ecx
lea eax, [ebp - 0x110]
push 0x80
push eax
sar esi, 1
lea eax, [ebp - 0x114]
inc esi
push esi
push eax
call fcn.0045ecf0
mov ecx, dword [ebp - 0x114]
lea edx, [esi + esi]
push edx
push edi
call fcn.00470940
push eax
call fcn.00441660
mov eax, dword [ebp - 0x114]
add esp, 0x1c
push eax
lea ecx, [ebp - 0x25c]
mov dword [ebp - 4], 1
call fcn.00441f70
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x114]
cmp eax, ecx
je 0x472de9
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea eax, [ebp - 0x254]
push eax
push dword [ebp - 0x25c]
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, eax
or ecx, 0xffffffff
mov dword [ebp - 0x258], ebx
test ebx, ebx
je 0x473949
call fcn.004225c0
mov ecx, eax
test ecx, ecx
je 0x473993
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x220], edi
mov byte [ebp - 4], 4
call fcn.004225c0
mov ecx, eax
test ecx, ecx
je 0x47399d
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x21c], esi
xor ecx, ecx
mov byte [ebp - 4], 5
mov dword [ebp - 0x250], ecx
cmp dword [ebp - 0x254], ecx
jle 0x4738fe
nop word [eax + eax]
mov eax, dword [ebx + ecx*4]
lea ecx, [ebp - 0x214]
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x218], ecx
test eax, eax
jne 0x472e93
xor ebx, ebx
mov dword [ebp - 0x218], ebx
jmp 0x472eed
mov ebx, eax
lea ecx, [ebx + 2]
nop dword [eax + eax]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x472ea0
sub ebx, ecx
lea eax, [ebp - 0x214]
push 0x80
push eax
sar ebx, 1
lea eax, [ebp - 0x218]
inc ebx
push ebx
push eax
call fcn.0045ecf0
mov ecx, dword [ebp - 0x218]
lea edx, [ebx + ebx]
push edx
push dword [ebp - 0x22c]
call fcn.00470940
push eax
call fcn.00441660
mov ebx, dword [ebp - 0x218]
add esp, 0x1c
mov byte [ebp - 4], 6
call fcn.004225c0
test eax, eax
je 0x473993
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 7
test ebx, ebx
je 0x472f45
test ebx, 0xffff0000
jne 0x472f2f
movzx eax, bx
lea ecx, [ebp - 0x230]
push eax
call fcn.00441820
jmp 0x472f54
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x472f34
sub ecx, edx
sar ecx, 1
jmp 0x472f47
xor ecx, ecx
push ecx
push ebx
lea ecx, [ebp - 0x230]
call fcn.00441d80
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x214]
mov eax, dword [ebp - 0x218]
cmp eax, ecx
je 0x472f72
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push 0x6ec260
push dword [ebp - 0x230]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcspbrk]
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x230]
test ecx, ecx
je 0x473719
sub ecx, eax
sar ecx, 1
mov dword [ebp - 0x224], ecx
cmp ecx, 0xffffffff
je 0x473719
xor ebx, ebx
test ecx, ecx
cmovns ebx, ecx
cmp ebx, dword [eax - 0xc]
jl 0x472fd2
add eax, 0xfffffff0
push eax
mov dword [ebp - 0x238], eax
call fcn.00441300
add esp, 4
add eax, 0x10
mov dword [ebp - 0x240], eax
jmp 0x473010
mov ecx, dword [eax - 0x10]
add eax, 0xfffffff0
mov dword [ebp - 0x238], eax
test ecx, ecx
je 0x472feb
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x472ff7
call fcn.004225c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push ebx
push dword [ebp - 0x230]
lea ecx, [ebp - 0x240]
call fcn.00422010
mov eax, dword [ebp - 0x240]
lea edx, [edi - 0x10]
mov byte [ebp - 4], 0xa
lea ebx, [eax - 0x10]
mov dword [ebp - 0x22c], edx
cmp ebx, edx
je 0x473082
cmp dword [edx + 0xc], 0
lea edi, [edx + 0xc]
jl 0x47306d
mov ecx, dword [ebx]
cmp ecx, dword [edx]
jne 0x47306d
push ebx
call fcn.00441300
add esp, 4
mov dword [ebp - 0x234], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x473062
mov edi, dword [ebp - 0x22c]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x234]
lea edi, [eax + 0x10]
mov dword [ebp - 0x220], edi
jmp 0x473082
push dword [eax - 0xc]
lea ecx, [ebp - 0x220]
push eax
call fcn.00441d80
mov edi, dword [ebp - 0x220]
mov byte [ebp - 4], 9
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x47309b
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
movzx eax, word [edi]
mov ebx, edi
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
je 0x473147
movzx eax, word [ebx + 2]
add ebx, 2
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
jne 0x4730b2
cmp ebx, edi
je 0x473147
mov edx, dword [edi - 0xc]
sub ebx, edi
sar ebx, 1
test edx, edx
js 0x473989
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, edx
or eax, ecx
jge 0x4730fd
push edx
lea ecx, [ebp - 0x220]
call fcn.00441ae0
mov edi, dword [ebp - 0x220]
mov ecx, dword [edi - 0xc]
lea edx, [edi + ebx*2]
mov eax, ecx
sub eax, ebx
mov dword [ebp - 0x234], eax
lea eax, [eax*2 + 2]
push eax
push edx
lea eax, [ecx*2 + 2]
push eax
push edi
call fcn.0043fa00
mov eax, dword [ebp - 0x234]
add esp, 0x10
test eax, eax
js 0x473989
cmp eax, dword [edi - 8]
jg 0x473989
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
movzx eax, word [edi]
xor ebx, ebx
mov dword [ebp - 0x234], edi
test ax, ax
je 0x4731d2
mov ecx, eax
nop dword [eax]
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
je 0x473179
test ebx, ebx
mov eax, edi
cmovne eax, ebx
mov ebx, eax
jmp 0x47317b
xor ebx, ebx
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
test ax, ax
jne 0x473160
mov edi, dword [ebp - 0x220]
test ebx, ebx
je 0x4731d2
sub ebx, edi
sar ebx, 1
js 0x473989
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, ebx
or eax, ecx
jge 0x4731c0
push ebx
lea ecx, [ebp - 0x220]
call fcn.00441ae0
mov edi, dword [ebp - 0x220]
cmp ebx, dword [edi - 8]
jg 0x473989
xor eax, eax
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], ax
mov eax, dword [ebp - 0x230]
xor ecx, ecx
mov ebx, dword [eax - 0xc]
mov eax, ebx
sub eax, dword [ebp - 0x224]
add eax, 0xffffffff
cmovns ecx, eax
mov dword [ebp - 0x224], ecx
cmp ecx, ebx
mov ecx, dword [ebp - 0x238]
jl 0x47320f
push ecx
call fcn.00441300
add esp, 4
add eax, 0x10
mov dword [ebp - 0x244], eax
jmp 0x47324f
mov ecx, dword [ecx]
test ecx, ecx
je 0x47321e
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x47322a
call fcn.004225c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x244]
push eax
sub ebx, eax
mov eax, dword [ebp - 0x230]
lea eax, [eax + ebx*2]
push eax
call fcn.00422010
mov eax, dword [ebp - 0x244]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xb
lea ebx, [eax - 0x10]
mov dword [ebp - 0x224], edx
cmp ebx, edx
je 0x4732c1
cmp dword [edx + 0xc], 0
lea esi, [edx + 0xc]
jl 0x4732ac
mov ecx, dword [ebx]
cmp ecx, dword [edx]
jne 0x4732ac
push ebx
call fcn.00441300
add esp, 4
mov dword [ebp - 0x234], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4732a1
mov esi, dword [ebp - 0x224]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x234]
lea esi, [eax + 0x10]
mov dword [ebp - 0x21c], esi
jmp 0x4732c1
push dword [eax - 0xc]
lea ecx, [ebp - 0x21c]
push eax
call fcn.00441d80
mov esi, dword [ebp - 0x21c]
mov byte [ebp - 4], 9
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x4732da
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
movzx eax, word [esi]
mov ebx, esi
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
je 0x473386
movzx eax, word [ebx + 2]
add ebx, 2
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
jne 0x4732f1
cmp ebx, esi
je 0x473386
mov edx, dword [esi - 0xc]
sub ebx, esi
sar ebx, 1
test edx, edx
js 0x473989
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x47333c
push edx
lea ecx, [ebp - 0x21c]
call fcn.00441ae0
mov esi, dword [ebp - 0x21c]
mov ecx, dword [esi - 0xc]
lea edx, [esi + ebx*2]
mov eax, ecx
sub eax, ebx
mov dword [ebp - 0x224], eax
lea eax, [eax*2 + 2]
push eax
push edx
lea eax, [ecx*2 + 2]
push eax
push esi
call fcn.0043fa00
mov eax, dword [ebp - 0x224]
add esp, 0x10
test eax, eax
js 0x473989
cmp eax, dword [esi - 8]
jg 0x473989
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
movzx eax, word [esi]
xor ebx, ebx
mov dword [ebp - 0x224], esi
test ax, ax
je 0x473412
mov ecx, eax
mov edi, esi
nop word [eax + eax]
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
je 0x4733b9
test ebx, ebx
mov eax, edi
cmovne eax, ebx
mov ebx, eax
jmp 0x4733bb
xor ebx, ebx
movzx eax, word [edi + 2]
add edi, 2
mov ecx, eax
test ax, ax
jne 0x4733a0
mov edi, dword [ebp - 0x220]
test ebx, ebx
je 0x473412
sub ebx, esi
sar ebx, 1
js 0x473989
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x473400
push ebx
lea ecx, [ebp - 0x21c]
call fcn.00441ae0
mov esi, dword [ebp - 0x21c]
cmp ebx, dword [esi - 8]
jg 0x473989
xor eax, eax
mov dword [esi - 0xc], ebx
mov word [esi + ebx*2], ax
cmp dword [esi - 0xc], 1
lea ebx, [esi - 0x10]
jg 0x47342f
push ebx
call fcn.00441300
add esp, 4
add eax, 0x10
mov dword [ebp - 0x248], eax
jmp 0x47345f
mov ecx, dword [ebx]
test ecx, ecx
je 0x47343e
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x47344a
call fcn.004225c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push 1
push esi
lea ecx, [ebp - 0x248]
call fcn.00422010
mov eax, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x228]
or ecx, 0xe
cmp dword [eax - 0xc], 1
mov dword [ebp - 0x228], ecx
jne 0x473484
cmp word [eax], 0x22
mov dword [ebp - 0x22c], 1
je 0x47348e
mov dword [ebp - 0x22c], 0
lea edx, [eax - 0x10]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4734a6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x22c], 0
je 0x4735cf
mov eax, dword [esi - 0xc]
lea ecx, [ebp - 0x21c]
dec eax
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00474950
mov byte [ebp - 4], 0xc
mov ecx, dword [eax]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x47352f
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x47351a
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x47351a
push edx
call fcn.00441300
add esp, 4
mov dword [ebp - 0x224], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x47350f
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x224]
lea esi, [eax + 0x10]
mov dword [ebp - 0x21c], esi
jmp 0x47352f
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x21c]
call fcn.00441d80
mov esi, dword [ebp - 0x21c]
mov byte [ebp - 4], 9
or eax, 0xffffffff
mov edx, dword [ebp - 0x260]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x473551
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x22c], 0
je 0x4735cf
mov ebx, dword [esi - 0xc]
cmp ebx, 1
jg 0x473579
lea eax, [esi - 0x10]
push eax
call fcn.00441300
add esp, 4
add eax, 0x10
mov dword [ebp - 0x23c], eax
jmp 0x4735b0
mov ecx, dword [esi - 0x10]
test ecx, ecx
je 0x473589
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x473595
call fcn.004225c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
lea eax, [ebx - 1]
push 1
lea eax, [esi + eax*2]
push eax
lea ecx, [ebp - 0x23c]
call fcn.00422010
mov eax, dword [ebp - 0x23c]
mov edx, dword [ebp - 0x228]
or edx, 0x11
cmp dword [eax - 0xc], 1
mov dword [ebp - 0x228], edx
jne 0x4735db
cmp word [eax], 0x22
jne 0x4735db
mov bl, 1
jmp 0x4735dd
mov eax, dword [ebp - 0x23c]
mov edx, dword [ebp - 0x228]
xor bl, bl
test dl, 1
je 0x473603
and edx, 0xfffffffe
mov dword [ebp - 0x228], edx
lea edx, [eax - 0x10]
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x473603
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test bl, bl
je 0x4738a7
mov ecx, dword [esi - 0xc]
lea ebx, [esi - 0x10]
xor edx, edx
lea eax, [ecx - 1]
test eax, eax
cmovns edx, eax
mov dword [ebp - 0x224], edx
cmp edx, ecx
jl 0x473639
push ebx
call fcn.00441300
add esp, 4
add eax, 0x10
mov dword [ebp - 0x24c], eax
jmp 0x47366d
mov ecx, dword [ebx]
test ecx, ecx
je 0x473648
mov eax, dword [ecx]
call dword [eax + 0x10]
test eax, eax
jne 0x473654
call fcn.004225c0
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x10]
push eax
push dword [ebp - 0x224]
lea ecx, [ebp - 0x24c]
push esi
call fcn.00422010
mov eax, dword [ebp - 0x24c]
mov ecx, dword [ebp - 0x228]
lea edx, [eax - 0x10]
or ecx, 0x20
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x22c], edx
cmp edx, ebx
je 0x4736eb
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x4736d0
mov ecx, dword [edx]
cmp ecx, dword [ebx]
jne 0x4736d0
push edx
call fcn.00441300
add esp, 4
mov dword [ebp - 0x224], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4736c5
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x224]
lea esi, [eax + 0x10]
mov dword [ebp - 0x21c], esi
jmp 0x4736e5
push dword [eax - 0xc]
lea ecx, [ebp - 0x21c]
push eax
call fcn.00441d80
mov esi, dword [ebp - 0x21c]
mov edx, dword [ebp - 0x22c]
mov byte [ebp - 4], 9
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4738a7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x228], eax
jmp 0x4738a7
lea edx, [eax - 0x10]
lea esi, [edi - 0x10]
mov dword [ebp - 0x238], edx
cmp edx, esi
je 0x473777
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x473762
mov ecx, dword [edx]
cmp ecx, dword [esi]
jne 0x473762
push edx
call fcn.00441300
add esp, 4
mov ebx, eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x473757
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
lea edi, [ebx + 0x10]
mov dword [ebp - 0x220], edi
jmp 0x473777
push dword [eax - 0xc]
lea ecx, [ebp - 0x220]
push eax
call fcn.00441d80
mov edi, dword [ebp - 0x220]
movzx eax, word [edi]
mov esi, edi
mov ebx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
push eax
call ebx
add esp, 4
test eax, eax
je 0x473815
movzx eax, word [esi + 2]
add esi, 2
push eax
call ebx
add esp, 4
test eax, eax
jne 0x473790
cmp esi, edi
je 0x473815
mov edx, dword [edi - 0xc]
sub esi, edi
sar esi, 1
test edx, edx
js 0x473989
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, edx
or eax, ecx
jge 0x4737d7
push edx
lea ecx, [ebp - 0x220]
call fcn.00441ae0
mov edi, dword [ebp - 0x220]
mov ecx, dword [edi - 0xc]
lea edx, [edi + esi*2]
mov ebx, ecx
sub ebx, esi
lea eax, [ebx*2 + 2]
push eax
push edx
lea eax, [ecx*2 + 2]
push eax
push edi
call fcn.0043fa00
add esp, 0x10
test ebx, ebx
js 0x473989
cmp ebx, dword [edi - 8]
jg 0x473989
xor eax, eax
mov dword [edi - 0xc], ebx
mov word [edi + ebx*2], ax
movzx eax, word [edi]
xor esi, esi
mov ebx, edi
test ax, ax
je 0x47388f
mov ecx, eax
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswspace]
add esp, 4
test eax, eax
je 0x47383c
test esi, esi
mov eax, ebx
cmovne eax, esi
mov esi, eax
jmp 0x47383e
xor esi, esi
movzx eax, word [ebx + 2]
add ebx, 2
mov ecx, eax
test ax, ax
jne 0x473823
test esi, esi
je 0x47388f
sub esi, edi
sar esi, 1
js 0x473989
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x47387d
push esi
lea ecx, [ebp - 0x220]
call fcn.00441ae0
mov edi, dword [ebp - 0x220]
cmp esi, dword [edi - 8]
jg 0x473989
xor eax, eax
mov dword [edi - 0xc], esi
mov word [edi + esi*2], ax
push 0
push 0x6d1800
lea ecx, [ebp - 0x21c]
call fcn.00441d80
mov esi, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x264]
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00473df0
mov edx, dword [ebp - 0x238]
or eax, 0xffffffff
mov byte [ebp - 4], 5
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4738df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x250]
mov ebx, dword [ebp - 0x258]
inc ecx
mov dword [ebp - 0x250], ecx
cmp ecx, dword [ebp - 0x254]
jl 0x472e70
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
or ecx, 0xffffffff
mov byte [ebp - 4], 4
mov ebx, 1
add esi, 0xfffffff0
mov eax, ecx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x47392b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
mov byte [ebp - 4], 3
add edi, 0xfffffff0
mov eax, ecx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x473949
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x25c]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x47396b
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00669a1e
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00422220
push 0x80004005
call fcn.00422220
push 0x80004005
call fcn.00422220
int3