Function at 0x409c60
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x446b6f
mov eax, dword fs:[0]
push eax
sub esp, 0x2f4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e508]
xor eax, esp
push eax
lea eax, [esp + 0x308]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 8
mov dword [esp + 0x2c], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, esi
call fcn.0041de31
push 0
call fcn.0041f085
add esp, 4
push 0x451ae8
mov ecx, esi
call fcn.0041f939
mov dword [0x462820], 0x409b60
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
lea ecx, [esp + 0x18]
call fcn.004014a0
mov dword [esp + 0x310], 0
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
or ebp, 0xffffffff
test eax, eax
jl 0x409d1e
push 0x451b08
push ecx
call fcn.00431e58
add esp, 8
test eax, eax
je 0x409d1e
mov edx, dword [esp + 0x14]
sub eax, edx
mov ecx, eax
cmp ecx, ebp
jne 0x409d55
lea ecx, [esp + 0x2c]
push ecx
call fcn.0040a250
lea edx, [esp + 0x2c]
mov byte [esp + 0x310], 1
mov ecx, edx
mov dword [esi + 0x20], edx
call fcn.0041c85e
lea eax, [esp + 0x2c]
push eax
mov byte [esp + 0x314], 0
call fcn.0040a000
jmp 0x409fc1
mov eax, dword [edx - 0xc]
sub eax, ecx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408bb0
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x314], 2
call fcn.00403b60
mov byte [esp + 0x310], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409da2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jl 0x409edb
push 0x451b0c
push ecx
call fcn.00431e58
mov ecx, dword [esp + 0x1c]
add esp, 8
cmp dword [ecx - 0xc], 0
jl 0x409edb
push 0x451b10
push ecx
call fcn.00431e58
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x409ed5
sub eax, ecx
cmp eax, ebp
je 0x409ed5
mov ecx, dword [ecx - 0xc]
sub ecx, eax
sub ecx, 3
push ecx
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00408bb0
lea edi, [esp + 0x18]
mov byte [esp + 0x310], 3
call fcn.0040a180
mov bl, 0x20
call fcn.0040a100
mov bl, 0x2f
call fcn.0040a100
mov bl, 0x5c
call fcn.0040a100
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str..unpack.avd
call fcn.004014a0
push ecx
mov byte [esp + 0x318], 4
mov ecx, esp
mov dword [esp + 0x28], esp
push str..VUnpackSDK.dll
call fcn.004014a0
mov byte [esp + 0x318], 3
call fcn.00401ec0
xor bl, bl
add esp, 8
cmp al, bl
jne 0x409e9c
mov byte [esp + 0x310], bl
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x409fc1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x409fc1
mov esi, dword [esp + 0x18]
add esi, 0xfffffff0
push esi
call fcn.004018a0
add esp, 4
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409ec4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00402040
mov byte [esp + 0x310], bl
jmp 0x409fa9
cmp dword [ecx - 0xc], 0
jg 0x409edf
mov eax, ebp
jmp 0x409ef8
push 0x3a
push ecx
call fcn.00431f66
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
jne 0x409ef6
mov eax, ebp
jmp 0x409ef8
sub eax, ecx
mov ecx, dword [ecx - 0xc]
sub ecx, eax
add ecx, 1
push ecx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
call fcn.00408bb0
push ecx
mov bl, 5
mov byte [esp + 0x314], bl
mov ecx, esp
mov dword [esp + 0x24], esp
push str..unpack.avd
call fcn.004014a0
push ecx
mov byte [esp + 0x318], 6
mov ecx, esp
mov dword [esp + 0x24], esp
push str..VUnpackSDK.dll
call fcn.004014a0
mov byte [esp + 0x318], bl
call fcn.00401ec0
add esp, 8
test al, al
jne 0x409f74
mov byte [esp + 0x310], al
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x409e87
mov esi, dword [esp + 0x18]
add esi, 0xfffffff0
push esi
call fcn.004018a0
add esp, 4
lea ecx, [eax + 0xc]
mov edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409f9c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00402040
mov byte [esp + 0x310], 0
mov edx, ebp
lea ecx, [esi + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x409fc1
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [esp + 0x310], ebp
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jg 0x409fe5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x308]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret