Function at 0x54b260
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 0x62f7c4
push ecx
push eax
push esi
call fcn.0052bee0
add esp, 0x18
mov eax, dword [esi + 4]
test eax, eax
je 0x54b566
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 0x62fed8
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov dword [ebp - 0x68], eax
je 0x54ba67
push 0x62ff28
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x54b2f3
mov ecx, eax
call dword [0x63e64c]
lea eax, [ebp - 0x44]
push eax
push esi
call ecx
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x44]
test ebx, ebx
je 0x54ba34
cmp ebx, 0x15555556
jae 0x54ba42
shl ebx, 2
lea eax, [ebx + ebx*2]
push eax
call fcn.00564ea5
add esp, 4
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x60], ebx
jmp 0x54b354
cmp edx, esi
ja 0x54ba02
test ecx, ecx
je 0x54b342
add ecx, ecx
push ecx
push esi
push eax
mov esi, edx
call fcn.00569390
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 0x54b3d2
test edi, edi
je 0x54b9a0
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x4c], ecx
mov esi, dword [eax + ecx]
test esi, esi
je 0x54b9a3
push esi
call fcn.005666c2
add esp, 4
cmp eax, 0x7ffffff8
jae 0x54b9a6
mov ecx, eax
cmp eax, 4
jbe 0x54b3cb
mov dword [ebp - 0x64], esi
mov ebx, ecx
or ebx, 3
inc ebx
js 0x54b9c7
mov esi, ecx
lea eax, [ebx + ebx]
push eax
call fcn.00564ea5
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 0x54b32d
jmp 0x54b325
mov byte [edi + 0xb], cl
mov eax, edi
jmp 0x54b3bb
mov ebx, edi
push 0xc
call fcn.00564ea5
add esp, 4
test eax, eax
je 0x54ba45
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 0x54b449
mov dword [ebp - 0x4c], eax
mov ebx, dword [esi + 0x10]
mov eax, edi
cmp ebx, edi
je 0x54b437
add ebx, 0xfffffff4
test ebx, ebx
je 0x54ba31
cmp byte [ebx + 0xb], 0
jns 0x54b428
push dword [ebx]
call fcn.00564ea0
add esp, 4
lea eax, [ebx - 0xc]
cmp ebx, edi
mov ebx, eax
jne 0x54b410
mov esi, dword [ebp - 0x50]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], edi
push eax
call fcn.00564ea0
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.005182b0
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 0x54ba54
movsx eax, byte [ecx + 0xb]
mov edx, ecx
test eax, eax
lea edi, [ebp - 0x1c]
jns 0x54b49c
mov eax, dword [ecx + 4]
test eax, eax
js 0x54ba48
mov edx, dword [ecx]
test edx, edx
jne 0x54b4a8
test eax, eax
jne 0x54ba64
lea ecx, [ebp - 0x1c]
push eax
push edx
call fcn.0054e8c0
mov ecx, esi
push edi
call fcn.00424c90
cmp byte [ebp - 0x11], 0
jns 0x54b4cb
push dword [ebp - 0x1c]
call fcn.00564ea0
add esp, 4
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x54], eax
je 0x54b50d
mov eax, dword [ebp - 0x58]
sub eax, dword [ebp - 0x54]
cmp eax, 0xc
jl 0x54ba4b
sar eax, 2
imul eax, eax, 0xaaaaaaab
dec eax
je 0x54b50d
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 0x54b5ec
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 0x54b52b
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 0x54]
test esi, esi
mov edi, dword [ebp - 0x58]
je 0x54b566
cmp esi, edi
je 0x54b55d
add edi, 0xfffffff4
test edi, edi
je 0x54ba2e
cmp byte [edi + 0xb], 0
jns 0x54b554
push dword [edi]
call fcn.00564ea0
add esp, 4
lea eax, [edi - 0xc]
cmp edi, esi
mov edi, eax
jne 0x54b53c
push esi
call fcn.00564ea0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00568175
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov byte [ebp - 0x1d], bl
lea eax, [ebp - 0x28]
jmp 0x54b68f
mov ecx, dword [ebp - 0x50]
push esi
push edi
push eax
push ebx
call fcn.00424590
cmp byte [ebp - 0x35], 0
jns 0x54b5a2
push dword [ebp - 0x40]
call fcn.00564ea0
add esp, 4
mov bl, 1
mov esi, dword [ebp - 0x50]
lea edi, [ebp - 0x1c]
cmp byte [ebp - 0x29], 0
jns 0x54b5bb
push dword [ebp - 0x34]
call fcn.00564ea0
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x54b5cc
push dword [ebp - 0x28]
call fcn.00564ea0
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x54b5dd
push dword [ebp - 0x1c]
call fcn.00564ea0
add esp, 4
mov edx, dword [ebp - 0x64]
add edx, 0xc
cmp edx, dword [ebp - 0x60]
je 0x54b50d
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 0x54ba1a
mov ecx, edi
push dword [edx + 4]
push dword [edx]
call fcn.00506680
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 0x54b9a9
mov dword [ebp - 0x4c], ebx
je 0x54b636
test ecx, ecx
je 0x54ba05
push 3
push 0x19
push 0x62f7c4
push eax
push ecx
lea eax, [ebp - 0x34]
push eax
call fcn.0052bee0
add esp, 0x18
mov ebx, dword [ebp - 0x30]
cmp ebx, 0x7ffffff8
jae 0x54b9ac
mov esi, dword [ebp - 0x34]
cmp ebx, 4
jbe 0x54b57a
mov edi, ebx
or edi, 3
inc edi
js 0x54b9c4
lea eax, [edi + edi]
push eax
call fcn.00564ea5
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
ja 0x54b69e
cmp edi, esi
ja 0x54ba08
test ebx, ebx
je 0x54b6af
add ebx, ebx
push ebx
push esi
push eax
call fcn.00569390
add esp, 0xc
mov word [edi], 0
cmp byte [ebp - 0x11], 0
jns 0x54b6c5
push dword [ebp - 0x1c]
call fcn.00564ea0
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 eax, byte [ebp - 0x11]
test eax, eax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov edi, eax
cmovs edi, ecx
lea esi, [ebp - 0x1c]
cmovs esi, edx
test edi, edi
js 0x54b9af
je 0x54b713
test esi, esi
je 0x54ba0b
mov ebx, eax
cmp edi, 2
je 0x54b9ca
test byte [ebp - 0x4c], 1
lea edi, [ebp - 0x1c]
je 0x54b9f3
mov ecx, edi
lea edx, [ebp - 0x28]
lea eax, [ebp - 0x34]
push eax
call fcn.00539cb0
add esp, 4
test al, al
je 0x54b95a
cmp dword [ebp - 0x6c], 0
je 0x54b7d3
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 0x54b9b2
je 0x54b773
test esi, esi
je 0x54ba0e
mov ecx, esi
mov edx, edi
call fcn.0054bc70
test eax, eax
je 0x54b7d3
cmp edi, eax
je 0x54b7d3
lea ecx, [esi + edi*2]
mov edx, ecx
test edi, edi
je 0x54b7a3
mov edx, esi
mov ebx, edi
cmp word [edx], 0x3d
je 0x54b854
add edx, 2
dec ebx
jne 0x54b791
mov edx, ecx
sub edi, eax
jb 0x54b9b5
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 0x54b9b8
cmp ebx, 0xf
je 0x54b861
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 0x54b9bb
je 0x54b7f8
test edi, edi
je 0x54ba11
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 0x54b9be
je 0x54b81d
test ecx, ecx
je 0x54ba14
push eax
push ecx
lea ebx, [ebp - 0x40]
push ebx
call fcn.00530a10
add esp, 0xc
movsx eax, byte [ebp - 0x35]
test eax, eax
jns 0x54b839
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
test eax, eax
js 0x54b9c1
je 0x54b585
test ebx, ebx
jne 0x54b585
jmp 0x54ba17
test edx, edx
jne 0x54b7a3
jmp 0x54b7a1
cmp word [esi + eax*2], 0x73
jne 0x54b7d3
cmp word [esi + eax*2 + 2], 0x69
jne 0x54b7d3
cmp word [esi + eax*2 + 4], 0x6e
jne 0x54b7d3
cmp word [esi + eax*2 + 6], 0x67
jne 0x54b7d3
cmp word [esi + eax*2 + 8], 0x6c
jne 0x54b7d3
cmp word [esi + eax*2 + 0xa], 0x65
jne 0x54b7d3
cmp word [esi + eax*2 + 0xc], 0x2d
jne 0x54b7d3
cmp word [esi + eax*2 + 0xe], 0x61
jne 0x54b7d3
cmp word [esi + eax*2 + 0x10], 0x72
jne 0x54b7d3
cmp word [esi + eax*2 + 0x12], 0x67
jne 0x54b7d3
cmp word [esi + eax*2 + 0x14], 0x75
jne 0x54b7d3
cmp word [esi + eax*2 + 0x16], 0x6d
jne 0x54b7d3
cmp word [esi + eax*2 + 0x18], 0x65
jne 0x54b7d3
cmp word [esi + eax*2 + 0x1a], 0x6e
jne 0x54b7d3
cmp word [esi + eax*2 + 0x1c], 0x74
jne 0x54b7d3
lea edx, [ebp - 0x28]
mov ecx, dword [ebp - 0x50]
call fcn.005bd8b0
cmp byte [ebp - 0x29], 0
jns 0x54b930
push dword [ebp - 0x34]
call fcn.00564ea0
add esp, 4
cmp byte [ebp - 0x1d], 0
jns 0x54b941
push dword [ebp - 0x28]
call fcn.00564ea0
add esp, 4
cmp byte [ebp - 0x11], 0
jns 0x54b952
push dword [ebp - 0x1c]
call fcn.00564ea0
add esp, 4
mov esi, dword [ebp - 0x50]
jmp 0x54b50d
mov al, byte [ebp - 0x11]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 0x45], al
movzx eax, al
mov bl, 1
mov dword [ebp - 0x4c], ebx
cmp byte [ebp - 0x45], 0
cmovs eax, ecx
cmovns edx, edi
test eax, eax
mov esi, dword [ebp - 0x50]
js 0x54ba4e
mov ebx, dword [ebp - 0x4c]
je 0x54b990
test edx, edx
je 0x54ba51
mov ecx, esi
push eax
call fcn.00427c90
add esp, 4
jmp 0x54b5aa
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp word [esi], 0x2d
jne 0x54b71e
test bl, bl
lea esi, [ebp - 0x1c]
cmovs esi, edx
cmp word [esi + 2], 0x2d
jne 0x54b71e
mov dword [ebp - 0x4c], 0
lea edi, [ebp - 0x1c]
jmp 0x54b9fa
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x45], bl
jmp 0x54b96e
int3
int3
int3
int3
int3
int3
int3
int3
mov eax, dword [edx + 8]
mov dword [ebp - 0x14], eax
movsd xmm0, qword [edx]
movsd qword [ebp - 0x1c], xmm0
jmp 0x54b611
int3
int3
xor edi, edi
mov dword [ebp - 0x54], 0
jmp 0x54b3d2
int3
int3
int3
int3
int3
int3
lea ecx, [ebp - 0x1c]
call fcn.00563150
lea edi, [ebp - 0x1c]
jmp 0x54b4b2
int3
lea eax, [ebp - 0x44]
push eax
push esi
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
jmp 0x54b2f0