Function at 0x40dcf0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x70
mov edi, edx
mov dword [esp + 8], ecx
mov esi, dword [ebp + 8]
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esp + 0x68], eax
mov eax, 0x19
mov ecx, 0x5de852
push 0
push eax
push ecx
push esi
push edx
call fcn.00501b70
add esp, 0x14
mov ebx, eax
push 0xffffffffffffffff
mov eax, 0x19
push eax
mov eax, 0x5de852
push eax
push esi
push edi
call fcn.00501bc0
add esp, 0x14
sub eax, ebx
inc eax
cmp ebx, esi
cmovae ebx, esi
sub esi, ebx
cmp esi, eax
cmovae esi, eax
test esi, esi
je 0x40e410
lea edi, [edi + ebx*2]
mov eax, dword [esp + 8]
mov dword [eax], edi
mov dword [eax + 4], esi
xor eax, eax
mov dword [esp + 0x2c], eax
push 0x800
mov dword [esp + 0x18], 0
push eax
push str.api_ms_win_downlevel_shell32_l1_1_0.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov dword [esp + 0x20], eax
je 0x40e527
push 0x5dded6
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40ddb4
mov ecx, eax
call dword [section..00cfg]
lea eax, [esp + 0x2c]
push eax
push edi
call ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
test ecx, ecx
je 0x40de1d
mov eax, ecx
shl ecx, 2
mov eax, ecx
mov dword [esp + 4], ecx
cmp ecx, 0x55555555
jae 0x40e469
mov eax, dword [esp + 4]
lea eax, [eax + eax*2]
xor ebx, ebx
push eax
call fcn.00510d64
add esp, 4
mov edi, eax
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x14]
mov ecx, edi
push dword [esi + ebx]
call fcn.005477d0
add edi, 0xc
add ebx, 4
cmp dword [esp + 4], ebx
jne 0x40de01
mov dword [esp + 0x18], edi
xor esi, esi
push 0xc
call fcn.00510d64
add esp, 4
mov ebx, eax
add eax, 0xc
mov dword [ebx + 4], esi
mov dword [ebx], esi
mov dword [ebx + 8], esi
mov edi, dword [esp + 8]
mov esi, dword [edi + 0xc]
test esi, esi
je 0x40de76
mov dword [esp + 4], eax
mov eax, dword [edi + 0x10]
mov ecx, esi
cmp eax, esi
je 0x40de66
lea edi, [eax - 0xc]
cmp byte [eax - 1], 0
js 0x40e538
mov eax, edi
cmp edi, esi
jne 0x40de4c
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0xc]
mov dword [edi + 0x10], esi
push ecx
call fcn.0050fc7c
add esp, 4
mov eax, dword [esp + 4]
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
lea ecx, [edi + 0x18]
lea esi, [edi + 0x1c]
push dword [edi + 0x1c]
call fcn.00547860
xor eax, eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x18], esi
mov dword [edi + 0x1c], eax
mov dword [edi + 0x24], 1
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x18]
je 0x40e548
movzx eax, byte [ecx + 0xb]
test al, al
jns 0x40debc
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
jmp 0x40dec1
and eax, 0x7f
mov edx, ecx
lea ecx, [esp + 0x5c]
push eax
push edx
call fcn.0040e620
lea esi, [esp + 0x5c]
mov ecx, dword [esp + 8]
push esi
call fcn.0040f2f0
cmp byte [esi + 0xb], 0
js 0x40e2da
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0xc]
sar eax, 2
imul eax, eax, 0xaaaaaaab
mov dword [esp + 0x1c], eax
cmp eax, 2
jb 0x40e3e4
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x60]
mov ecx, 0x5ddeea
lea esi, [esp + 0x5c]
cmp esi, ecx
seta dl
cmp eax, ecx
setbe al
or al, dl
mov byte [esp + 0x13], al
mov eax, 0x5ddef0
cmp esi, eax
seta cl
lea edx, [esp + 0x5e]
cmp edx, eax
setbe al
or al, cl
mov byte [esp + 0x12], al
dec dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
lea edx, [eax + 0xc]
mov al, 1
mov dword [esp + 4], eax
xor eax, eax
dec eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
cmp byte [edx + 0xb], 0
mov dword [esp + 0x28], edx
jns 0x40e471
lea ecx, [esp + 0x50]
push dword [edx + 4]
push dword [edx]
call fcn.0040ccc0
movzx ebx, byte [esp + 0x5b]
test bl, bl
jns 0x40df92
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
jmp 0x40df99
and ebx, 0x7f
lea esi, [esp + 0x50]
push 0
mov eax, 0x19
push eax
mov eax, 0x5de852
push eax
push ebx
push esi
call fcn.00501b70
add esp, 0x14
mov edi, eax
push 0xffffffffffffffff
mov eax, 0x19
push eax
mov eax, 0x5de852
push eax
push ebx
push esi
call fcn.00501bc0
add esp, 0x14
sub eax, edi
inc eax
cmp edi, ebx
cmovae edi, ebx
sub ebx, edi
cmp ebx, eax
cmovae ebx, eax
add edi, edi
add edi, esi
jne 0x40dfe8
test ebx, ebx
jne 0x40e4ec
cmp ebx, 0x7ffffff0
jae 0x40e469
cmp ebx, 4
ja 0x40e232
mov byte [esp + 0x67], bl
lea eax, [esp + 0x5c]
lea esi, [eax + ebx*2]
cmp eax, edi
ja 0x40e014
cmp esi, edi
ja 0x40e4f4
test ebx, ebx
je 0x40e025
add ebx, ebx
push ebx
push edi
push eax
call fcn.00518c30
add esp, 0xc
mov word [esi], 0
cmp byte [esp + 0x5b], 0
jns 0x40e03d
push dword [esp + 0x50]
call fcn.0050fc7c
add esp, 4
mov eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 0x50], xmm0
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
movzx ecx, byte [esp + 0x5b]
mov eax, ecx
and eax, 0x7f
test cl, cl
mov edx, dword [esp + 0x54]
mov esi, eax
cmovs esi, edx
cmp esi, 2
je 0x40e487
test byte [esp + 4], 1
je 0x40e4ae
lea ecx, [esp + 0x50]
lea edx, [esp + 0x40]
lea eax, [esp + 0x30]
push eax
call fcn.00501cf0
add esp, 4
test al, al
je 0x40e4b8
cmp dword [esp + 0x24], 0
je 0x40e162
movzx eax, byte [esp + 0x4b]
mov ecx, dword [esp + 0x40]
test al, al
jns 0x40e0d1
mov edi, dword [esp + 0x44]
mov ebx, ecx
jmp 0x40e0da
mov edi, eax
and edi, 0x7f
lea ebx, [esp + 0x40]
xor edx, edx
dec edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], 0x2ffffff
cmp byte [esp + 0x13], 0
je 0x40e524
mov dword [esp + 0x5c], 0x2d002d
mov word [esp + 0x60], 0
cmp edi, 2
jb 0x40e261
cmp word [ebx], 0x2d
jne 0x40e261
test al, al
lea eax, [esp + 0x40]
cmovns ecx, eax
cmp word [ecx + 2], 0x2d
jne 0x40e261
mov esi, 2
cmp edi, esi
je 0x40e162
push 0
push 1
push 0x5dde7e
push edi
push ebx
call fcn.00501c20
add esp, 0x14
sub edi, esi
jb 0x40e46e
sub eax, esi
cmp edi, eax
cmovb eax, edi
cmp eax, 0xf
je 0x40e2eb
movzx ebx, byte [esp + 0x3b]
test bl, bl
jns 0x40e175
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp 0x40e17c
and ebx, 0x7f
lea esi, [esp + 0x30]
movzx eax, byte [esp + 0x4b]
test al, al
jns 0x40e18f
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
jmp 0x40e196
and eax, 0x7f
lea ecx, [esp + 0x40]
push eax
push ecx
lea edi, [esp + 0x64]
push edi
call fcn.00501f70
add esp, 0xc
movzx eax, byte [esp + 0x67]
test al, al
jns 0x40e1b8
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
jmp 0x40e1bd
and eax, 0x7f
mov edx, edi
mov ecx, dword [esp + 8]
push ebx
push esi
push eax
push edx
call fcn.0040e820
cmp byte [esp + 0x67], 0
jns 0x40e1dd
push dword [esp + 0x5c]
call fcn.0050fc7c
add esp, 4
mov al, 1
mov dword [esp + 4], eax
cmp byte [esp + 0x3b], 0
jns 0x40e1f6
push dword [esp + 0x30]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x4b], 0
jns 0x40e209
push dword [esp + 0x40]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x5b], 0
jns 0x40e21c
push dword [esp + 0x50]
call fcn.0050fc7c
add esp, 4
mov edx, dword [esp + 0x28]
add edx, 0xc
dec dword [esp + 0x1c]
jne 0x40df54
jmp 0x40e3e4
mov esi, ebx
or esi, 7
inc esi
js 0x40e4ef
lea eax, [esi + esi]
push eax
call fcn.00510d64
add esp, 4
mov dword [esp + 0x5c], eax
or esi, 0x80000000
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], ebx
jmp 0x40e005
xor eax, eax
dec eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0x1ffffff
cmp byte [esp + 0x12], 0
je 0x40e524
mov dword [esp + 0x5c], 0x2d
test edi, edi
je 0x40e4f7
cmp word [ebx], 0x2d
mov esi, 1
je 0x40e133
xor eax, eax
dec eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0x1ffffff
lea eax, [esp + 0x5c]
cmp eax, 0x5ddef4
jbe 0x40e455
mov dword [esp + 0x5c], 0x2f
cmp word [ebx], 0x2f
jne 0x40e162
xor esi, esi
inc esi
jmp 0x40e133
push dword [esp + 0x5c]
call fcn.0050fc7c
add esp, 4
jmp 0x40dee4
cmp word [ebx + esi*2], 0x73
jne 0x40e162
cmp word [ebx + esi*2 + 2], 0x69
jne 0x40e162
cmp word [ebx + esi*2 + 4], 0x6e
jne 0x40e162
cmp word [ebx + esi*2 + 6], 0x67
jne 0x40e162
cmp word [ebx + esi*2 + 8], 0x6c
jne 0x40e162
cmp word [ebx + esi*2 + 0xa], 0x65
jne 0x40e162
cmp word [ebx + esi*2 + 0xc], 0x2d
jne 0x40e162
cmp word [ebx + esi*2 + 0xe], 0x61
jne 0x40e162
cmp word [ebx + esi*2 + 0x10], 0x72
jne 0x40e162
cmp word [ebx + esi*2 + 0x12], 0x67
jne 0x40e162
cmp word [ebx + esi*2 + 0x14], 0x75
jne 0x40e162
cmp word [ebx + esi*2 + 0x16], 0x6d
jne 0x40e162
cmp word [ebx + esi*2 + 0x18], 0x65
jne 0x40e162
cmp word [ebx + esi*2 + 0x1a], 0x6e
jne 0x40e162
cmp word [ebx + esi*2 + 0x1c], 0x74
jne 0x40e162
lea edx, [esp + 0x40]
mov ecx, dword [esp + 8]
call fcn.00564670
cmp byte [esp + 0x3b], 0
jns 0x40e3be
push dword [esp + 0x30]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x4b], 0
jns 0x40e3d1
push dword [esp + 0x40]
call fcn.0050fc7c
add esp, 4
cmp byte [esp + 0x5b], 0
jns 0x40e3e4
push dword [esp + 0x50]
call fcn.0050fc7c
add esp, 4
xor eax, eax
mov ecx, dword [esp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], eax
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40e408
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x40e423
mov ecx, dword [esp + 0x68]
xor ecx, ebp
call fcn.00512ee3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x18]
cmp eax, ecx
je 0x40e447
lea esi, [ecx - 0xc]
cmp byte [ecx - 1], 0
jns 0x40e43f
push dword [ecx - 0xc]
call fcn.0050fc7c
add esp, 4
mov ecx, esi
cmp esi, dword [esp + 0xc]
jne 0x40e42b
push dword [esp + 0xc]
call fcn.0050fc7c
add esp, 4
jmp 0x40e410
lea eax, [esp + 0x5e]
cmp eax, 0x5ddef4
jbe 0x40e2c0
jmp 0x40e524
call fcn.0052ce30
int3
mov eax, dword [edx + 8]
mov dword [esp + 0x58], eax
movsd xmm0, qword [edx]
movsd qword [esp + 0x50], xmm0
jmp 0x40df7f
test cl, cl
lea esi, [esp + 0x50]
mov edi, dword [esi]
mov ebx, esi
cmovs ebx, edi
cmp word [ebx], 0x2d
jne 0x40e089
test cl, cl
cmovs esi, edi
cmp word [esi + 2], 0x2d
jne 0x40e089
mov dword [esp + 4], 0
jmp 0x40e4cc
movzx ecx, byte [esp + 0x5b]
mov edx, dword [esp + 0x54]
mov eax, ecx
and eax, 0x7f
mov bl, 1
mov dword [esp + 4], ebx
test cl, cl
jns 0x40e4d8
mov esi, dword [esp + 0x50]
mov eax, edx
jmp 0x40e4dc
lea esi, [esp + 0x50]
mov ecx, dword [esp + 8]
push eax
push esi
call fcn.005645f0
jmp 0x40e1e3
int3
call fcn.00549f00
int3
lea eax, [esp + 0x5c]
xor ecx, ecx
dec ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], 0x1ffffff
cmp eax, 0x5ddef4
ja 0x40e162
lea eax, [esp + 0x5e]
cmp eax, 0x5ddef4
jbe 0x40e162
int3
lea eax, [esp + 0x2c]
push eax
push edi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x40ddb0
push dword [eax - 0xc]
call fcn.0050fc7c
add esp, 4
jmp 0x40de59
lea ecx, [esp + 0x5c]
call fcn.004d1c20
jmp 0x40decc