Function at 0x541020
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x60
mov edi, ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [0x646040]
xor edx, ebp
mov dword [ebp - 0x10], edx
lea esi, [ebp - 0x1c]
push 3
push 0x19
push 0x630a34
push ecx
push eax
push esi
call fcn.0052ca00
add esp, 0x18
mov eax, dword [esi + 4]
test eax, eax
je 0x54132c
mov esi, dword [ebp - 0x1c]
mov dword [edi], esi
mov dword [ebp - 0x50], edi
mov dword [edi + 4], eax
xor eax, eax
mov dword [ebp - 0x44], eax
push 0x800
mov dword [ebp - 0x5c], 0
push eax
push 0x6311bc
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov dword [ebp - 0x68], eax
je 0x54185b
push 0x63120c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5410b3
mov ecx, eax
call dword [0x6401dc]
lea eax, [ebp - 0x44]
push eax
push esi
call ecx
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x44]
test ebx, ebx
je 0x541828
cmp ebx, 0x15555556
jae 0x541836
shl ebx, 2
lea eax, [ebx + ebx*2]
push eax
call fcn.00564055
add esp, 4
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x60], ebx
jmp 0x541114
cmp edx, esi
ja 0x54180b
test ecx, ecx
je 0x541102
add ecx, ecx
push ecx
push esi
push eax
mov esi, edx
call fcn.00568550
mov edx, esi
add esp, 0xc
mov word [edx], 0
add edi, 0xc
mov ecx, dword [ebp - 0x4c]
add ecx, 4
cmp ebx, ecx
je 0x541192
test edi, edi
je 0x541794
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ecx
mov esi, dword [eax + ecx]
test esi, esi
je 0x541797
push esi
call fcn.00565872
add esp, 4
cmp eax, 0x7ffffff8
jae 0x54179a
mov ecx, eax
cmp eax, 4
jbe 0x54118b
mov dword [ebp - 0x64], esi
mov ebx, ecx
or ebx, 3
inc ebx
js 0x5417cd
mov esi, ecx
lea eax, [ebx + ebx]
push eax
call fcn.00564055
add esp, 4
mov dword [edi], eax
or ebx, 0x80000000
mov dword [edi + 8], ebx
mov dword [edi + 4], esi
mov ebx, dword [ebp - 0x60]
mov ecx, esi
mov esi, dword [ebp - 0x64]
lea edx, [eax + ecx*2]
cmp eax, esi
ja 0x5410ed
jmp 0x5410e5
mov byte [edi + 0xb], cl
mov eax, edi
jmp 0x54117b
mov ebx, edi
push 0xc
call fcn.00564055
add esp, 4
test eax, eax
je 0x541839
xorps xmm0, xmm0
movsd qword [eax], xmm0
mov dword [eax + 8], 0
mov esi, dword [ebp - 0x50]
mov edi, dword [esi + 0xc]
test edi, edi
mov dword [ebp - 0x58], ebx
je 0x541209
mov dword [ebp - 0x4c], eax
mov ebx, dword [esi + 0x10]
mov eax, edi
cmp ebx, edi
je 0x5411f7
add ebx, 0xfffffff4
test ebx, ebx
je 0x541825
cmp byte [ebx + 0xb], 0
jns 0x5411e8
push dword [ebx]
call fcn.00564050
add esp, 4
lea eax, [ebx - 0xc]
cmp ebx, edi
mov ebx, eax
jne 0x5411d0
mov esi, dword [ebp - 0x50]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], edi
push eax
call fcn.00564050
add esp, 4
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
mov ecx, eax
add ecx, 0xc
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
lea ecx, [esi + 0x18]
lea edi, [esi + 0x1c]
push dword [esi + 0x1c]
call fcn.00517400
xor eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
mov dword [esi + 0x24], 1
mov ecx, dword [ebp - 0x54]
cmp ecx, ebx
je 0x54184b
movsx eax, byte [ecx + 0xb]
mov edx, ecx
test eax, eax
lea edi, [ebp - 0x1c]
jns 0x54125c
mov eax, dword [ecx + 4]
test eax, eax
js 0x541848
mov edx, dword [ecx]
test eax, eax
sete cl
test edx, edx
setne ch
or ch, cl
je 0x54183c
lea ecx, [ebp - 0x1c]
push eax
push edx
call fcn.00550a00
mov ecx, esi
push edi
call fcn.00412cb0
cmp byte [ebp - 0x11], 0
jns 0x541291
push dword [ebp - 0x1c]
call fcn.00564050
add esp, 4
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x54], eax
je 0x5412d3
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x54]
cmp eax, 0xc
jl 0x54183f
sar eax, 2
imul eax, eax, 0xaaaaaaab
dec eax
je 0x5412d3
mov ecx, dword [ebp - 0x54]
lea edx, [ecx + 0xc]
mov esi, dword [esi + 4]
mov dword [ebp - 0x6c], esi
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
add eax, 0xc
mov dword [ebp - 0x60], eax
mov bl, 1
jmp 0x5413d0
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x5412f1
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x54]
test esi, esi
mov edi, dword [ebp - 0x58]
je 0x54132c
cmp esi, edi
je 0x541323
add edi, 0xfffffff4
test edi, edi
je 0x54180e
cmp byte [edi + 0xb], 0
jns 0x54131a
push dword [edi]
call fcn.00564050
add esp, 4
lea eax, [edi - 0xc]
cmp edi, esi
mov edi, eax
jne 0x541302
push esi
call fcn.00564050
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00567335
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov byte [ebp - 0x1d], bl
lea eax, [ebp - 0x28]
jmp 0x541479
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
test eax, eax
js 0x5417c7
sete cl
test ebx, ebx
setne ch
or ch, cl
je 0x5417ca
mov ecx, dword [ebp - 0x50]
push esi
push edi
push eax
push ebx
call fcn.004125a0
cmp byte [ebp - 0x35], 0
jns 0x541386
push dword [ebp - 0x40]
call fcn.00564050
add esp, 4
mov bl, 1
mov esi, dword [ebp - 0x50]
lea edi, [ebp - 0x1c]
cmp byte [ebp - 0x29], 0
jns 0x54139f
push dword [ebp - 0x34]
call fcn.00564050
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x5413b0
push dword [ebp - 0x28]
call fcn.00564050
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x5413c1
push dword [ebp - 0x1c]
call fcn.00564050
add esp, 4
mov edx, dword [ebp - 0x64]
add edx, 0xc
cmp edx, dword [ebp - 0x60]
je 0x5412d3
xor eax, eax
dec eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
cmp byte [edx + 0xb], 0
mov dword [ebp - 0x64], edx
jns 0x541811
mov ecx, edi
push dword [edx + 4]
push dword [edx]
call fcn.005421d0
movsx eax, byte [ebp - 0x11]
test eax, eax
cmovs eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
cmovns ecx, edi
test eax, eax
js 0x5417a6
mov dword [ebp - 0x4c], ebx
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x54179d
push 3
push 0x19
push 0x630a34
push eax
push ecx
lea eax, [ebp - 0x34]
push eax
call fcn.0052ca00
add esp, 0x18
mov ebx, dword [ebp - 0x30]
cmp ebx, 0x7ffffff8
jae 0x5417a9
mov esi, dword [ebp - 0x34]
cmp ebx, 4
jbe 0x541340
mov edi, ebx
or edi, 3
inc edi
js 0x5417d0
lea eax, [edi + edi]
push eax
call fcn.00564055
add esp, 4
mov dword [ebp - 0x28], eax
or edi, 0x80000000
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], ebx
lea edi, [eax + ebx*2]
cmp eax, esi
seta cl
cmp edi, esi
setbe dl
or dl, cl
je 0x5417ac
test ebx, ebx
je 0x54149f
add ebx, ebx
push ebx
push esi
push eax
call fcn.00568550
add esp, 0xc
mov word [edi], 0
cmp byte [ebp - 0x11], 0
jns 0x5414b5
push dword [ebp - 0x1c]
call fcn.00564050
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
movsd xmm0, qword [ebp - 0x28]
movsd qword [ebp - 0x1c], xmm0
xor eax, eax
mov dword [ebp - 0x20], eax
xorps xmm0, xmm0
movsd qword [ebp - 0x28], xmm0
mov dword [ebp - 0x2c], eax
movsd qword [ebp - 0x34], xmm0
movsx edx, byte [ebp - 0x11]
test edx, edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov edi, edx
cmovs edi, ecx
lea esi, [ebp - 0x1c]
cmovs esi, eax
test edi, edi
js 0x5417af
sete bl
test esi, esi
setne bh
or bh, bl
je 0x5417a0
mov ebx, edx
cmp edi, 2
je 0x5417d3
test byte [ebp - 0x4c], 1
lea edi, [ebp - 0x1c]
je 0x5417fc
mov ecx, edi
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x34]
push eax
call fcn.0053bcf0
add esp, 4
test al, al
je 0x54174a
cmp dword [ebp - 0x6c], 0
je 0x5415cf
movsx edi, byte [ebp - 0x1d]
test edi, edi
cmovs edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
lea eax, [ebp - 0x28]
cmovns esi, eax
test edi, edi
js 0x5417b2
sete al
test esi, esi
setne cl
or cl, al
je 0x5417a3
mov ecx, esi
mov edx, edi
call fcn.00541a40
test eax, eax
je 0x5415cf
cmp edi, eax
je 0x5415cf
lea ecx, [esi + edi*2]
mov edx, ecx
test edi, edi
je 0x54159f
mov edx, esi
mov ebx, edi
cmp word [edx], 0x3d
je 0x541644
add edx, 2
dec ebx
jne 0x54158d
mov edx, ecx
sub edi, eax
jb 0x5417b5
mov ebx, edx
sub ebx, esi
sar ebx, 1
cmp edx, ecx
mov ecx, 0xffffffff
cmove ebx, ecx
sub ebx, eax
cmp edi, ebx
cmovb ebx, edi
test ebx, ebx
js 0x5417b8
cmp ebx, 0xf
je 0x541651
movsx esi, byte [ebp - 0x29]
test esi, esi
cmovs esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
lea eax, [ebp - 0x34]
cmovns edi, eax
test esi, esi
js 0x5417bb
sete al
test edi, edi
setne cl
or cl, al
je 0x5417be
movsx eax, byte [ebp - 0x1d]
test eax, eax
cmovs eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
lea edx, [ebp - 0x28]
cmovns ecx, edx
test eax, eax
js 0x5417c1
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x5417c4
push eax
push ecx
lea ebx, [ebp - 0x40]
push ebx
call fcn.005426d0
add esp, 0xc
movsx eax, byte [ebp - 0x35]
test eax, eax
jns 0x541351
jmp 0x54134b
test edx, edx
jne 0x54159f
jmp 0x54159d
cmp word [esi + eax*2], 0x73
jne 0x5415cf
cmp word [esi + eax*2 + 2], 0x69
jne 0x5415cf
cmp word [esi + eax*2 + 4], 0x6e
jne 0x5415cf
cmp word [esi + eax*2 + 6], 0x67
jne 0x5415cf
cmp word [esi + eax*2 + 8], 0x6c
jne 0x5415cf
cmp word [esi + eax*2 + 0xa], 0x65
jne 0x5415cf
cmp word [esi + eax*2 + 0xc], 0x2d
jne 0x5415cf
cmp word [esi + eax*2 + 0xe], 0x61
jne 0x5415cf
cmp word [esi + eax*2 + 0x10], 0x72
jne 0x5415cf
cmp word [esi + eax*2 + 0x12], 0x67
jne 0x5415cf
cmp word [esi + eax*2 + 0x14], 0x75
jne 0x5415cf
cmp word [esi + eax*2 + 0x16], 0x6d
jne 0x5415cf
cmp word [esi + eax*2 + 0x18], 0x65
jne 0x5415cf
cmp word [esi + eax*2 + 0x1a], 0x6e
jne 0x5415cf
cmp word [esi + eax*2 + 0x1c], 0x74
jne 0x5415cf
lea edx, [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
call fcn.005bc440
cmp byte [ebp - 0x29], 0
jns 0x541720
push dword [ebp - 0x34]
call fcn.00564050
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x541731
push dword [ebp - 0x28]
call fcn.00564050
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x541742
push dword [ebp - 0x1c]
call fcn.00564050
add esp, 4
mov esi, dword [ebp - 0x50]
jmp 0x5412d3
mov dl, byte [ebp - 0x11]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0x45], dl
movzx edx, dl
mov bl, 1
mov dword [ebp - 0x4c], ebx
cmp byte [ebp - 0x45], 0
cmovs edx, ecx
cmovns eax, edi
test edx, edx
mov esi, dword [ebp - 0x50]
js 0x541842
sete cl
test eax, eax
setne ch
or ch, cl
mov ebx, dword [ebp - 0x4c]
je 0x541845
mov ecx, esi
push edx
push eax
call fcn.00413000
jmp 0x54138e
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp word [esi], 0x2d
jne 0x541514
test bl, bl
lea esi, [ebp - 0x1c]
cmovs esi, eax
cmp word [esi + 2], 0x2d
jne 0x541514
mov dword [ebp - 0x4c], 0
lea edi, [ebp - 0x1c]
jmp 0x541803
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x45], bl
jmp 0x54175e
int3
int3
mov eax, dword [edx + 8]
mov dword [ebp - 0x14], eax
movsd xmm0, qword [edx]
movsd qword [ebp - 0x1c], xmm0
jmp 0x5413f5
int3
xor edi, edi
mov dword [ebp - 0x54], 0
jmp 0x541192
int3
int3
int3
int3
int3
int3
int3
lea ecx, [ebp - 0x1c]
call fcn.005618c0
lea edi, [ebp - 0x1c]
jmp 0x541278
lea eax, [ebp - 0x44]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x5410b0