Function at 0x541fd0
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 [0x644040]
xor edx, ebp
mov dword [ebp - 0x10], edx
lea esi, [ebp - 0x1c]
push 3
push 0x19
push 0x62ea34
push ecx
push eax
push esi
call fcn.0052dab0
add esp, 0x18
mov eax, dword [esi + 4]
test eax, eax
je 0x5422dc
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 0x62f1bc
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov dword [ebp - 0x68], eax
je 0x54280b
push 0x62f20c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x542063
mov ecx, eax
call dword [0x63e19c]
lea eax, [ebp - 0x44]
push eax
push esi
call ecx
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x44]
test ebx, ebx
je 0x5427d8
cmp ebx, 0x15555556
jae 0x5427e6
shl ebx, 2
lea eax, [ebx + ebx*2]
push eax
call fcn.00562f65
add esp, 4
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x60], ebx
jmp 0x5420c4
cmp edx, esi
ja 0x5427bb
test ecx, ecx
je 0x5420b2
add ecx, ecx
push ecx
push esi
push eax
mov esi, edx
call fcn.00567460
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 0x542142
test edi, edi
je 0x542744
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ecx
mov esi, dword [eax + ecx]
test esi, esi
je 0x542747
push esi
call fcn.00564782
add esp, 4
cmp eax, 0x7ffffff8
jae 0x54274a
mov ecx, eax
cmp eax, 4
jbe 0x54213b
mov dword [ebp - 0x64], esi
mov ebx, ecx
or ebx, 3
inc ebx
js 0x542780
mov esi, ecx
lea eax, [ebx + ebx]
push eax
call fcn.00562f65
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 0x54209d
jmp 0x542095
mov byte [edi + 0xb], cl
mov eax, edi
jmp 0x54212b
mov ebx, edi
push 0xc
call fcn.00562f65
add esp, 4
test eax, eax
je 0x5427e9
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 0x5421b9
mov dword [ebp - 0x4c], eax
mov ebx, dword [esi + 0x10]
mov eax, edi
cmp ebx, edi
je 0x5421a7
add ebx, 0xfffffff4
test ebx, ebx
je 0x5427d5
cmp byte [ebx + 0xb], 0
jns 0x542198
push dword [ebx]
call fcn.00562f60
add esp, 4
lea eax, [ebx - 0xc]
cmp ebx, edi
mov ebx, eax
jne 0x542180
mov esi, dword [ebp - 0x50]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], edi
push eax
call fcn.00562f60
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.00518ca0
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 0x5427fb
movsx eax, byte [ecx + 0xb]
mov edx, ecx
test eax, eax
lea edi, [ebp - 0x1c]
jns 0x54220c
mov eax, dword [ecx + 4]
test eax, eax
js 0x5427f8
mov edx, dword [ecx]
test eax, eax
sete cl
test edx, edx
setne ch
or ch, cl
je 0x5427ec
lea ecx, [ebp - 0x1c]
push eax
push edx
call fcn.00550e10
mov ecx, esi
push edi
call fcn.00413ff0
cmp byte [ebp - 0x11], 0
jns 0x542241
push dword [ebp - 0x1c]
call fcn.00562f60
add esp, 4
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x54], eax
je 0x542283
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x54]
cmp eax, 0xc
jl 0x5427ef
sar eax, 2
imul eax, eax, 0xaaaaaaab
dec eax
je 0x542283
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 0x542380
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 0x5422a1
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x54]
test esi, esi
mov edi, dword [ebp - 0x58]
je 0x5422dc
cmp esi, edi
je 0x5422d3
add edi, 0xfffffff4
test edi, edi
je 0x5427be
cmp byte [edi + 0xb], 0
jns 0x5422ca
push dword [edi]
call fcn.00562f60
add esp, 4
lea eax, [edi - 0xc]
cmp edi, esi
mov edi, eax
jne 0x5422b2
push esi
call fcn.00562f60
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00566245
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov byte [ebp - 0x1d], bl
lea eax, [ebp - 0x28]
jmp 0x542429
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
test eax, eax
js 0x542777
sete cl
test ebx, ebx
setne ch
or ch, cl
je 0x54277a
mov ecx, dword [ebp - 0x50]
push esi
push edi
push eax
push ebx
call fcn.004138e0
cmp byte [ebp - 0x35], 0
jns 0x542336
push dword [ebp - 0x40]
call fcn.00562f60
add esp, 4
mov bl, 1
mov esi, dword [ebp - 0x50]
lea edi, [ebp - 0x1c]
cmp byte [ebp - 0x29], 0
jns 0x54234f
push dword [ebp - 0x34]
call fcn.00562f60
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x542360
push dword [ebp - 0x28]
call fcn.00562f60
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x542371
push dword [ebp - 0x1c]
call fcn.00562f60
add esp, 4
mov edx, dword [ebp - 0x64]
add edx, 0xc
cmp edx, dword [ebp - 0x60]
je 0x542283
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 0x5427c1
mov ecx, edi
push dword [edx + 4]
push dword [edx]
call fcn.00543180
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 0x542756
mov dword [ebp - 0x4c], ebx
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x54274d
push 3
push 0x19
push 0x62ea34
push eax
push ecx
lea eax, [ebp - 0x34]
push eax
call fcn.0052dab0
add esp, 0x18
mov ebx, dword [ebp - 0x30]
cmp ebx, 0x7ffffff8
jae 0x542759
mov esi, dword [ebp - 0x34]
cmp ebx, 4
jbe 0x5422f0
mov edi, ebx
or edi, 3
inc edi
js 0x54277d
lea eax, [edi + edi]
push eax
call fcn.00562f65
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 0x54275c
test ebx, ebx
je 0x54244f
add ebx, ebx
push ebx
push esi
push eax
call fcn.00567460
add esp, 0xc
mov word [edi], 0
cmp byte [ebp - 0x11], 0
jns 0x542465
push dword [ebp - 0x1c]
call fcn.00562f60
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 0x54275f
sete bl
test esi, esi
setne bh
or bh, bl
je 0x542750
mov ebx, edx
cmp edi, 2
je 0x542783
test byte [ebp - 0x4c], 1
lea edi, [ebp - 0x1c]
je 0x5427ac
mov ecx, edi
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x34]
push eax
call fcn.0053d3c0
add esp, 4
test al, al
je 0x5426fa
cmp dword [ebp - 0x6c], 0
je 0x54257f
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 0x542762
sete al
test esi, esi
setne cl
or cl, al
je 0x542753
mov ecx, esi
mov edx, edi
call fcn.005429f0
test eax, eax
je 0x54257f
cmp edi, eax
je 0x54257f
lea ecx, [esi + edi*2]
mov edx, ecx
test edi, edi
je 0x54254f
mov edx, esi
mov ebx, edi
cmp word [edx], 0x3d
je 0x5425f4
add edx, 2
dec ebx
jne 0x54253d
mov edx, ecx
sub edi, eax
jb 0x542765
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 0x542768
cmp ebx, 0xf
je 0x542601
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 0x54276b
sete al
test edi, edi
setne cl
or cl, al
je 0x54276e
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 0x542771
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x542774
push eax
push ecx
lea ebx, [ebp - 0x40]
push ebx
call fcn.00543680
add esp, 0xc
movsx eax, byte [ebp - 0x35]
test eax, eax
jns 0x542301
jmp 0x5422fb
test edx, edx
jne 0x54254f
jmp 0x54254d
cmp word [esi + eax*2], 0x73
jne 0x54257f
cmp word [esi + eax*2 + 2], 0x69
jne 0x54257f
cmp word [esi + eax*2 + 4], 0x6e
jne 0x54257f
cmp word [esi + eax*2 + 6], 0x67
jne 0x54257f
cmp word [esi + eax*2 + 8], 0x6c
jne 0x54257f
cmp word [esi + eax*2 + 0xa], 0x65
jne 0x54257f
cmp word [esi + eax*2 + 0xc], 0x2d
jne 0x54257f
cmp word [esi + eax*2 + 0xe], 0x61
jne 0x54257f
cmp word [esi + eax*2 + 0x10], 0x72
jne 0x54257f
cmp word [esi + eax*2 + 0x12], 0x67
jne 0x54257f
cmp word [esi + eax*2 + 0x14], 0x75
jne 0x54257f
cmp word [esi + eax*2 + 0x16], 0x6d
jne 0x54257f
cmp word [esi + eax*2 + 0x18], 0x65
jne 0x54257f
cmp word [esi + eax*2 + 0x1a], 0x6e
jne 0x54257f
cmp word [esi + eax*2 + 0x1c], 0x74
jne 0x54257f
lea edx, [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
call fcn.005bb040
cmp byte [ebp - 0x29], 0
jns 0x5426d0
push dword [ebp - 0x34]
call fcn.00562f60
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x5426e1
push dword [ebp - 0x28]
call fcn.00562f60
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x5426f2
push dword [ebp - 0x1c]
call fcn.00562f60
add esp, 4
mov esi, dword [ebp - 0x50]
jmp 0x542283
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 0x5427f2
sete cl
test eax, eax
setne ch
or ch, cl
mov ebx, dword [ebp - 0x4c]
je 0x5427f5
mov ecx, esi
push edx
push eax
call fcn.004141b0
jmp 0x54233e
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 0x5424c4
test bl, bl
lea esi, [ebp - 0x1c]
cmovs esi, eax
cmp word [esi + 2], 0x2d
jne 0x5424c4
mov dword [ebp - 0x4c], 0
lea edi, [ebp - 0x1c]
jmp 0x5427b3
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x45], bl
jmp 0x54270e
int3
int3
mov eax, dword [edx + 8]
mov dword [ebp - 0x14], eax
movsd xmm0, qword [edx]
movsd qword [ebp - 0x1c], xmm0
jmp 0x5423a5
int3
xor edi, edi
mov dword [ebp - 0x54], 0
jmp 0x542142
int3
int3
int3
int3
int3
int3
int3
lea ecx, [ebp - 0x1c]
call fcn.005609d0
lea edi, [ebp - 0x1c]
jmp 0x542228
lea eax, [ebp - 0x44]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x542060