Function at 0x544090
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.0052d7d0
add esp, 0x18
mov eax, dword [esi + 4]
test eax, eax
je 0x54439c
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 0x5448cb
push 0x62f20c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x544123
mov ecx, eax
call dword [0x63e1cc]
lea eax, [ebp - 0x44]
push eax
push esi
call ecx
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x44]
test ebx, ebx
je 0x544898
cmp ebx, 0x15555556
jae 0x5448a6
shl ebx, 2
lea eax, [ebx + ebx*2]
push eax
call fcn.00562bc5
add esp, 4
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x60], ebx
jmp 0x544184
cmp edx, esi
ja 0x54487b
test ecx, ecx
je 0x544172
add ecx, ecx
push ecx
push esi
push eax
mov esi, edx
call fcn.005670c0
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 0x544202
test edi, edi
je 0x544804
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ecx
mov esi, dword [eax + ecx]
test esi, esi
je 0x544807
push esi
call fcn.005643e2
add esp, 4
cmp eax, 0x7ffffff8
jae 0x54480a
mov ecx, eax
cmp eax, 4
jbe 0x5441fb
mov dword [ebp - 0x64], esi
mov ebx, ecx
or ebx, 3
inc ebx
js 0x544840
mov esi, ecx
lea eax, [ebx + ebx]
push eax
call fcn.00562bc5
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 0x54415d
jmp 0x544155
mov byte [edi + 0xb], cl
mov eax, edi
jmp 0x5441eb
mov ebx, edi
push 0xc
call fcn.00562bc5
add esp, 4
test eax, eax
je 0x5448a9
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 0x544279
mov dword [ebp - 0x4c], eax
mov ebx, dword [esi + 0x10]
mov eax, edi
cmp ebx, edi
je 0x544267
add ebx, 0xfffffff4
test ebx, ebx
je 0x544895
cmp byte [ebx + 0xb], 0
jns 0x544258
push dword [ebx]
call fcn.00562bc0
add esp, 4
lea eax, [ebx - 0xc]
cmp ebx, edi
mov ebx, eax
jne 0x544240
mov esi, dword [ebp - 0x50]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], edi
push eax
call fcn.00562bc0
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.005189c0
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 0x5448bb
movsx eax, byte [ecx + 0xb]
mov edx, ecx
test eax, eax
lea edi, [ebp - 0x1c]
jns 0x5442cc
mov eax, dword [ecx + 4]
test eax, eax
js 0x5448b8
mov edx, dword [ecx]
test eax, eax
sete cl
test edx, edx
setne ch
or ch, cl
je 0x5448ac
lea ecx, [ebp - 0x1c]
push eax
push edx
call fcn.00550450
mov ecx, esi
push edi
call fcn.00417de0
cmp byte [ebp - 0x11], 0
jns 0x544301
push dword [ebp - 0x1c]
call fcn.00562bc0
add esp, 4
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x54], eax
je 0x544343
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x54]
cmp eax, 0xc
jl 0x5448af
sar eax, 2
imul eax, eax, 0xaaaaaaab
dec eax
je 0x544343
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 0x544440
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 0x544361
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x54]
test esi, esi
mov edi, dword [ebp - 0x58]
je 0x54439c
cmp esi, edi
je 0x544393
add edi, 0xfffffff4
test edi, edi
je 0x54487e
cmp byte [edi + 0xb], 0
jns 0x54438a
push dword [edi]
call fcn.00562bc0
add esp, 4
lea eax, [edi - 0xc]
cmp edi, esi
mov edi, eax
jne 0x544372
push esi
call fcn.00562bc0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00565ea5
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov byte [ebp - 0x1d], bl
lea eax, [ebp - 0x28]
jmp 0x5444e9
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
test eax, eax
js 0x544837
sete cl
test ebx, ebx
setne ch
or ch, cl
je 0x54483a
mov ecx, dword [ebp - 0x50]
push esi
push edi
push eax
push ebx
call fcn.004176d0
cmp byte [ebp - 0x35], 0
jns 0x5443f6
push dword [ebp - 0x40]
call fcn.00562bc0
add esp, 4
mov bl, 1
mov esi, dword [ebp - 0x50]
lea edi, [ebp - 0x1c]
cmp byte [ebp - 0x29], 0
jns 0x54440f
push dword [ebp - 0x34]
call fcn.00562bc0
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x544420
push dword [ebp - 0x28]
call fcn.00562bc0
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x544431
push dword [ebp - 0x1c]
call fcn.00562bc0
add esp, 4
mov edx, dword [ebp - 0x64]
add edx, 0xc
cmp edx, dword [ebp - 0x60]
je 0x544343
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 0x544881
mov ecx, edi
push dword [edx + 4]
push dword [edx]
call fcn.0050b0a0
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 0x544816
mov dword [ebp - 0x4c], ebx
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x54480d
push 3
push 0x19
push 0x62ea34
push eax
push ecx
lea eax, [ebp - 0x34]
push eax
call fcn.0052d7d0
add esp, 0x18
mov ebx, dword [ebp - 0x30]
cmp ebx, 0x7ffffff8
jae 0x544819
mov esi, dword [ebp - 0x34]
cmp ebx, 4
jbe 0x5443b0
mov edi, ebx
or edi, 3
inc edi
js 0x54483d
lea eax, [edi + edi]
push eax
call fcn.00562bc5
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 0x54481c
test ebx, ebx
je 0x54450f
add ebx, ebx
push ebx
push esi
push eax
call fcn.005670c0
add esp, 0xc
mov word [edi], 0
cmp byte [ebp - 0x11], 0
jns 0x544525
push dword [ebp - 0x1c]
call fcn.00562bc0
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 0x54481f
sete bl
test esi, esi
setne bh
or bh, bl
je 0x544810
mov ebx, edx
cmp edi, 2
je 0x544843
test byte [ebp - 0x4c], 1
lea edi, [ebp - 0x1c]
je 0x54486c
mov ecx, edi
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x34]
push eax
call fcn.0053db80
add esp, 4
test al, al
je 0x5447ba
cmp dword [ebp - 0x6c], 0
je 0x54463f
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 0x544822
sete al
test esi, esi
setne cl
or cl, al
je 0x544813
mov ecx, esi
mov edx, edi
call fcn.00544ab0
test eax, eax
je 0x54463f
cmp edi, eax
je 0x54463f
lea ecx, [esi + edi*2]
mov edx, ecx
test edi, edi
je 0x54460f
mov edx, esi
mov ebx, edi
cmp word [edx], 0x3d
je 0x5446b4
add edx, 2
dec ebx
jne 0x5445fd
mov edx, ecx
sub edi, eax
jb 0x544825
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 0x544828
cmp ebx, 0xf
je 0x5446c1
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 0x54482b
sete al
test edi, edi
setne cl
or cl, al
je 0x54482e
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 0x544831
sete dl
test ecx, ecx
setne dh
or dh, dl
je 0x544834
push eax
push ecx
lea ebx, [ebp - 0x40]
push ebx
call fcn.00530880
add esp, 0xc
movsx eax, byte [ebp - 0x35]
test eax, eax
jns 0x5443c1
jmp 0x5443bb
test edx, edx
jne 0x54460f
jmp 0x54460d
cmp word [esi + eax*2], 0x73
jne 0x54463f
cmp word [esi + eax*2 + 2], 0x69
jne 0x54463f
cmp word [esi + eax*2 + 4], 0x6e
jne 0x54463f
cmp word [esi + eax*2 + 6], 0x67
jne 0x54463f
cmp word [esi + eax*2 + 8], 0x6c
jne 0x54463f
cmp word [esi + eax*2 + 0xa], 0x65
jne 0x54463f
cmp word [esi + eax*2 + 0xc], 0x2d
jne 0x54463f
cmp word [esi + eax*2 + 0xe], 0x61
jne 0x54463f
cmp word [esi + eax*2 + 0x10], 0x72
jne 0x54463f
cmp word [esi + eax*2 + 0x12], 0x67
jne 0x54463f
cmp word [esi + eax*2 + 0x14], 0x75
jne 0x54463f
cmp word [esi + eax*2 + 0x16], 0x6d
jne 0x54463f
cmp word [esi + eax*2 + 0x18], 0x65
jne 0x54463f
cmp word [esi + eax*2 + 0x1a], 0x6e
jne 0x54463f
cmp word [esi + eax*2 + 0x1c], 0x74
jne 0x54463f
lea edx, [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
call fcn.005bacc0
cmp byte [ebp - 0x29], 0
jns 0x544790
push dword [ebp - 0x34]
call fcn.00562bc0
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x5447a1
push dword [ebp - 0x28]
call fcn.00562bc0
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x5447b2
push dword [ebp - 0x1c]
call fcn.00562bc0
add esp, 4
mov esi, dword [ebp - 0x50]
jmp 0x544343
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 0x5448b2
sete cl
test eax, eax
setne ch
or ch, cl
mov ebx, dword [ebp - 0x4c]
je 0x5448b5
mov ecx, esi
push edx
push eax
call fcn.004184f0
jmp 0x5443fe
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 0x544584
test bl, bl
lea esi, [ebp - 0x1c]
cmovs esi, eax
cmp word [esi + 2], 0x2d
jne 0x544584
mov dword [ebp - 0x4c], 0
lea edi, [ebp - 0x1c]
jmp 0x544873
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x45], bl
jmp 0x5447ce
int3
int3
mov eax, dword [edx + 8]
mov dword [ebp - 0x14], eax
movsd xmm0, qword [edx]
movsd qword [ebp - 0x1c], xmm0
jmp 0x544465
int3
xor edi, edi
mov dword [ebp - 0x54], 0
jmp 0x544202
int3
int3
int3
int3
int3
int3
int3
lea ecx, [ebp - 0x1c]
call fcn.00560630
lea edi, [ebp - 0x1c]
jmp 0x5442e8
lea eax, [ebp - 0x44]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x544120