Function at 0x300052d8
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 8]
mov esi, ecx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
test eax, eax
mov dword [ebp - 0x14], eax
je 0x3005e528
mov eax, dword [eax]
push edi
push eax
lea edi, [esi + 0x19c]
push edi
call fcn.30005426
mov ebx, eax
test ebx, ebx
jl 0x300053f6
mov edi, dword [edi]
test edi, edi
mov ecx, edi
je 0x3005e545
lea eax, [esi + 0x11c]
mov dword [eax], ecx
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x14]
xor edi, edi
push 0xffffffffffffffff
inc edi
mov dword [esi + 0x34], edi
mov eax, dword [eax]
push 0x3000540c
push eax
call fcn.300054d7
test eax, eax
je 0x300053f6
cmp dword [ebp - 0x10], edi
mov dword [ebp - 8], edi
jle 0x300053ed
mov eax, dword [ebp - 0x14]
add eax, 4
mov dword [ebp - 4], 2
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
movzx eax, word [ebx]
cmp ax, 0x2f
mov dword [ebp - 0x1c], ebx
jne 0x300055cb
push 7
pop edi
mov ebx, 0x3002b140
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebx]
inc eax
inc eax
push ecx
push eax
call fcn.30005632
test eax, eax
jne 0x300053a1
inc edi
add ebx, 0x10
cmp edi, 0x20
jl 0x30005384
cmp edi, 0x20
jae 0x3005e62e
mov eax, edi
shl eax, 4
mov eax, dword [eax + 0x3002b0d4]
dec eax
jne 0x3005e5be
lea eax, [esi + edi*8]
cmp dword [eax + 0xc], 0
jne 0x300053d7
xor ecx, ecx
lea edi, [esi + edi*4 + 0x108]
inc ecx
mov dword [edi], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
inc dword [ebp - 8]
inc dword [ebp - 4]
add dword [ebp + 8], 4
mov eax, dword [ebp - 0x10]
cmp dword [ebp - 8], eax
jl 0x30005367
mov ecx, esi
call fcn.3000555f
mov ebx, eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret 4
cmp ax, 0x2d
je 0x3000537c
xor edi, edi
cmp dword [esi + 0x3c], edi
jne 0x300053d7
cmp word [ebx], di
je 0x3005e54f
push ebx
call dword [sym.imp.MSO.dll_Ordinal_1464]
test eax, eax
je 0x3005e560
push ebx
lea edi, [esi + 0x1a0]
push edi
call fcn.30005426
mov ebx, eax
test ebx, ebx
jl 0x300053f6
mov edi, dword [edi]
test edi, edi
mov ecx, edi
je 0x3005e5b4
lea eax, [esi + 0x120]
mov dword [eax], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 1
jmp 0x300053d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x3005e539
mov ebx, eax
jmp 0x30005400
and eax, 0xffff
or eax, 0x80070000
jmp 0x3005e532
mov ecx, 0x301190cc
jmp 0x30005320
lea edi, [esi + 0x1a0]
push edi
call fcn.3000bd07
jmp 0x3000560f
push edi
push edi
push edi
mov dword [ebp - 0xc], edi
mov edi, dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
push ebx
call edi
mov dword [ebp - 0x18], eax
inc eax
push eax
lea ecx, [ebp - 0xc]
call fcn.300a9e21
mov ebx, eax
test ebx, ebx
jl 0x3005e653
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call edi
push dword [ebp - 0xc]
lea edi, [esi + 0x1a0]
push edi
call fcn.30005426
push dword [ebp - 0xc]
mov ebx, eax
call fcn.3009e387
pop ecx
jmp 0x30005607
mov ecx, 0x301190cc
jmp 0x3000561b
dec eax
jne 0x300053e1
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x10]
jge 0x3005e62e
lea eax, [esi + edi*8]
cmp dword [eax + 0xc], 0
mov dword [ebp - 0x1c], eax
jne 0x3005e61d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
lea ecx, [esi + edi*4 + 0x188]
push eax
push ecx
call fcn.30005426
mov ebx, eax
test ebx, ebx
jl 0x300053f6
mov ecx, dword [esi + edi*4 + 0x188]
test ecx, ecx
jne 0x3005e607
mov ecx, 0x301190cc
lea eax, [esi + edi*4 + 0x108]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 1
add dword [ebp - 8], 2
add dword [ebp - 4], 2
add dword [ebp + 8], 8
jmp 0x300053e1
xor eax, eax
push eax
push 0xffffffffffffffff
push eax
push 3
push eax
push 0x200
push 0x10089
call fcn.3009e0b1
add esp, 0x1c
mov ebx, 0x80070057
jmp 0x300053f6
push dword [ebp - 0xc]
call fcn.3009e387
pop ecx
jmp 0x300053f6