Function at 0x4572e0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49d380
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x4c3c64]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
call fcn.0047727e
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x45732f
push 0x80004005
call fcn.00420000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
cmp esi, ebx
je 0x45741d
test esi, 0xffff0000
jne 0x457421
movzx esi, si
push esi
call fcn.0047f19d
mov edi, eax
cmp edi, ebx
je 0x457434
mov ecx, esi
shr ecx, 4
inc ecx
movzx edx, cx
push 6
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
cmp eax, ebx
je 0x457434
push esi
push eax
push edi
call fcn.004206df
mov esi, eax
add esp, 0xc
cmp esi, ebx
je 0x457434
mov edx, dword [ebp - 0x10]
movzx edi, word [esi]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, edi
or eax, ecx
jge 0x4573bb
push edi
lea ecx, [ebp - 0x10]
call fcn.0042051d
mov edx, dword [ebp - 0x10]
movzx eax, word [esi]
add esi, 2
mov dword [ebp - 0x14], edx
cmp eax, 0xffffffff
jne 0x4573d3
push esi
call fcn.0048550b
add esp, 4
inc eax
mov ecx, dword [ebp - 0x14]
add eax, eax
push eax
push esi
lea ebx, [edi + edi]
push ebx
push ecx
call fcn.00485242
add esp, 0x10
cmp eax, 0x50
ja case.0x457528.1
movzx edx, byte [eax + 0x4575bc]
jmp dword [edx*4 + 0x4575ac]
call fcn.004777e6
test edi, edi
jl 0x457457
mov eax, dword [ebp - 0x10]
cmp edi, dword [eax - 8]
jg 0x457457
mov dword [eax - 0xc], edi
mov ecx, dword [ebp - 0x10]
xor eax, eax
mov word [ebx + ecx], ax
jmp 0x457434
xor eax, eax
jmp 0x45742a
push esi
call fcn.0048550b
add esp, 4
push eax
push esi
lea ecx, [ebp - 0x10]
call fcn.004214bc
push 1
lea edx, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 1
call fcn.00423a58
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
cmp ecx, 1
jne 0x45746e
test ecx, ecx
jge 0x457461
push 0x80070057
call fcn.00420000
movzx eax, word [eax]
cmp ax, 0x22
jne 0x45746e
mov bl, 1
jmp 0x457470
xor bl, bl
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x45748f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x10]
test bl, bl
je 0x4574a0
cmp dword [ecx - 0xc], 1
jle 0x4574c0
push 0x22
jmp 0x4574ad
cmp dword [ecx - 0xc], 1
jg 0x4574ab
or eax, 0xffffffff
jmp 0x4574c9
push 0x20
add ecx, 2
push ecx
call fcn.00486605
mov ecx, dword [ebp - 0x10]
add esp, 8
test eax, eax
jne 0x4574c5
or eax, 0xffffffff
jmp 0x4574c9
sub eax, ecx
sar eax, 1
lea esi, [eax + 1]
test esi, esi
jge 0x4574d2
xor esi, esi
mov edi, dword [ecx - 0xc]
mov edx, 0x7fffffff
sub edx, esi
jns 0x4574e8
push 0x80070057
call fcn.00420000
cmp esi, edi
jle 0x4574ee
mov esi, edi
test esi, esi
jle 0x457554
sub edi, esi
cmp dword [ecx - 4], 1
jle 0x457509
mov eax, dword [ecx - 0xc]
push eax
lea ecx, [ebp - 0x10]
call fcn.00420593
mov ecx, dword [ebp - 0x10]
lea eax, [edi + edi + 2]
push eax
lea edx, [ecx + esi*2]
push edx
push eax
push ecx
call fcn.00485310
add esp, 0x10
cmp eax, 0x50
ja case.0x457528.1
movzx eax, byte [eax + 0x457620]
jmp dword [eax*4 + 0x457610]
call fcn.0047781e
test edi, edi
jl 0x457457
mov eax, dword [ebp - 0x10]
cmp edi, dword [eax - 8]
jg 0x457457
mov dword [eax - 0xc], edi
mov edx, dword [ebp - 0x10]
xor ecx, ecx
mov word [edx + edi*2], cx
lea eax, [ebp - 0x10]
call fcn.00422516
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.0042152d
mov esi, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x457598
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret