Function at 0x10058a41
Capabilities:
Accept command line arguments

Disassembly:
mov eax, 0x1007bfe5
call fcn.1007a5d0
sub esp, 0xc8
push ebx
mov eax, ecx
push esi
push edi
mov dword [ebp - 0x10], esp
cmp dword [eax], 0
mov dword [ebp - 0x40], eax
je 0x100590cb
push dword [eax]
xor ebx, ebx
push ebx
push dword [eax + 4]
call fcn.10039a86
add esp, 0xc
lea ecx, [ebp - 0x90]
push 3
pop esi
push esi
call fcn.1001ba30
mov dword [ebp - 4], ebx
mov eax, 0x8ade19d2
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
jmp 0x10058ab0
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x90]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], esi
jl 0x10058aa0
mov dword [ebp - 0x68], ebx
jmp 0x10058acd
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x90]
mov dword [eax + ecx*4], 5
inc dword [ebp - 0x68]
cmp dword [ebp - 0x68], esi
jl 0x10058aba
xor eax, eax
mov dword [ebp - 0x1c], ebx
inc eax
cmp dword [ebp - 0x1c], ebx
jle 0x10058bce
mov dword [ebp - 0x3c], 0x3d11
cmp dword [ebp - 0x3c], 0x40ed
jle 0x10058b60
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
add eax, ecx
mov dword [ebp - 0x34], ebx
add eax, edi
mov dword [ebp - 0x24], eax
mov edi, eax
mov ecx, ebx
mov eax, edi
sar eax, cl
mov ecx, 0x106232b8
cdq
push edx
push eax
call fcn.1001b658
inc ebx
cmp ebx, 0x2599
jl 0x10058b0c
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x38]
inc eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], eax
push 0
pop ebx
cmp eax, 0x243d
jl 0x10058b00
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0xb32
jl 0x10058afb
inc edi
mov dword [ebp - 0x38], edi
cmp edi, 0x56b7
jl 0x10058af6
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor eax, eax
inc eax
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x10058b84
push 0x1d1b
push ebx
push 0x9d5
push ebx
push ebx
push 0x1db8
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor eax, eax
inc eax
mov byte [ebp - 4], al
cmp dword [ebp - 0x3c], 0x3c0f
jge 0x10058bc3
mov edx, 0x1000cce8
mov ecx, 0x106232b8
call fcn.100201ca
jmp 0x10058bc0
xor eax, eax
inc eax
mov dword [ebp - 4], ebx
inc dword [ebp - 0x1c]
jmp 0x10058ad8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
call fcn.1001bab2
mov eax, dword [ebp - 0x40]
push dword [eax + 4]
call fcn.10062709
mov dword [ebp - 0x60], 0xffffffff
mov eax, 0x9f65
mov dword [ebp - 0x5c], 0xffffffff
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x28], 0x53d8da8e
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
pop ecx
mov dword [ebp - 0x18], ebx
jmp 0x10058c46
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x84], 0x9bca7b5c
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x10058c35
xor ecx, ecx
mov dword [ebp - 0x18], ebx
inc ecx
jmp 0x10058c62
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x44], 0xed1d25bb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10058c54
mov dword [ebp - 0x28], ebx
jmp 0x10058ed1
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], 9
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x10058ec9
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x60], ebx
jne 0x10058ca6
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0x60], ebx
jne 0x10058ca6
mov ecx, ebx
mov dword [ebp - 0x38], ecx
xor ecx, ecx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x28]
dec dword [ebp - 0x84]
mov dword [ebp - 0x20], 0x37defb99
mov eax, dword [ebp - 0x20]
cmp eax, 0xfffffffd
mov dword [ebp - 0x44], eax
sete cl
xor eax, eax
cmp ecx, 0x639e6a41
setg al
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x60]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0xffffffe9
cmp dword [ebp - 0x24], 0xb
jl 0x10058ebd
xor edi, edi
inc edi
mov dword [ebp - 0x34], 0x54ab1007
xor edx, edx
mov dword [ebp - 0x30], 4
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x34]
dec eax
cmp eax, 0x6ae20245
mov eax, dword [ebp - 0x24]
setle dl
imul ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x34]
setne dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x30], ecx
or ecx, 0xffffffff
mov eax, dword [ebp - 0x60]
sub ecx, eax
mov eax, dword [ebp - 0x34]
sub ecx, 0x53b7
neg ecx
sbb ecx, ecx
inc ecx
sub eax, ecx
neg eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x18]
sub eax, 0xa3418eb0
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x3c]
jle 0x10058d9b
mov dword [ebp - 0x30], 0x953
cmp dword [ebp - 0x30], ebx
jne 0x10058ebd
cmp dword [ebp - 0x18], ebx
jne 0x10058ebd
jmp 0x10058eb0
push dword [ebp - 0x40]
movdqa xmm0, xmmword [0x1000cdf0]
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xc4]
mov dword [ebp - 0x7c], ebx
push eax
push ebx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x78], ebx
movdqu xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x74], ebx
call fcn.10020cef
push esi
lea ecx, [ebp - 0x9c]
mov dword [ebp - 4], esi
call fcn.1001ba30
mov dword [ebp - 0x1c], 0xae8c
mov dword [ebp - 0x1c], ebx
jmp 0x10058dfc
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10058de9
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x30]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
setl dl
sub edx, dword [ebp + eax*4 - 0x60]
mov eax, dword [ebp - 0x34]
neg edx
sbb edx, edx
add edx, 0x21cb4f51
mov dword [ebp - 0x1c], edx
xor edx, edx
cmp eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
setl dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x9c]
setle cl
mov dword [eax + 8], ecx
cmp dword [ebp - 0x38], edi
jg 0x10058e4d
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x44], ebx
jne 0x10058e50
mov dword [ebp - 0x1c], ebx
mov edx, dword [ebp - 0x44]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
neg edx
cmp eax, edx
mov eax, dword [ebp - 0x44]
setg cl
cmp edi, ecx
sbb edx, edx
add eax, dword [ebp - 0x1c]
inc edx
xor ecx, ecx
imul edx, eax
mov eax, dword [ebp - 0xa0]
cmp edx, eax
setne cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x7c]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ecx + 0xc]
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x1c], eax
call fcn.1001bab2
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x7c]
call fcn.1001bab2
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0xb
jge 0x10058d10
dec dword [ebp - 0x18]
push 1
pop ecx
jns 0x10058c8f
cmp dword [ebp - 0x20], ebx
jne 0x10058eda
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], esi
jle 0x10058c6f
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x50]
push dword [ebp - 0x40]
movdqa xmm0, xmmword [0x1000cde0]
movdqu xmmword [ebp - 0xd4], xmm0
mov dword [eax + 4], ebx
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xd4]
mov dword [ebp - 0x28], 0xfffffff8
push eax
mov dword [ebp - 0x18], 0x1f13b01d
push ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
call fcn.10020cef
mov dword [ebp - 0x1c], ebx
jmp 0x10058f37
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xb4], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x10058f26
xor edi, edi
inc edi
cmp dword [ebp - 0x28], ebx
jne 0x10058f55
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
inc eax
cmp eax, edi
mov eax, ebx
jge 0x10058f57
mov eax, edi
cmp eax, dword [ebp - 0x18]
jle 0x100590a9
mov dword [ebp - 0x24], 0xfffffff7
mov dword [ebp - 0x20], 0xede5c489
mov dword [ebp - 0x1c], 0xfffffffa
mov dword [ebp - 0x30], 0xfffffffc
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x1005903a
mov esi, dword [ebp - 0x50]
mov dword [ebp - 0x38], esi
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + ecx*4]
cmp eax, dword [esi + 0xc]
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x50]
sete cl
xor edx, edx
sub ecx, 0xffff
cmp ecx, dword [eax + esi*4]
mov eax, dword [ebp - 0x28]
setg dl
imul eax, edx
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
cmp eax, 3
jne 0x10058fd7
mov eax, ebx
cmp dword [ebp - 0x20], ebx
je 0x10058fd9
mov eax, edi
xor ecx, ecx
cmp eax, 0x4e401d93
mov eax, dword [ebp - 0x50]
setge cl
imul ecx, dword [eax]
neg ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x24], 0xb891
jg 0x10059004
mov eax, ebx
cmp dword [ebp - 0x24], ebx
je 0x10059006
mov eax, edi
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x18]
cmp dword [ebp - 0x1c], edi
mov edx, dword [ebp - 0x50]
sbb eax, eax
xor ecx, ecx
inc eax
cmp dword [edx + esi*4], eax
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x38]
sete cl
imul eax, ecx
xor ecx, ecx
cmp eax, dword [esi + 8]
setle cl
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x18]
jns 0x10058f8e
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x18]
dec edx
cmp edx, eax
setge cl
cmp ecx, dword [ebp - 0x1c]
jg 0x10059054
mov edx, edi
cmp dword [ebp - 0x20], ebx
jne 0x10059056
mov edx, ebx
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, dword [ebp - 0x18]
mov dword [ebp - 0x28], ecx
jne 0x1005906f
cmp dword [ebp - 0x28], ebx
jne 0x1005906f
mov edi, ebx
mov eax, dword [ebp - 0x50]
xor edx, edx
cmp dword [eax + 4], edi
mov eax, dword [ebp - 0x24]
setne dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0x24]
setge cl
xor edx, edx
cmp ecx, eax
setne dl
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0x30], edx
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
setg dl
mov dword [ebp - 0x1c], edx
jmp 0x100590be
mov byte [ebp - 0x29], bl
cmp byte [ebp - 0x29], 0
je 0x100590be
push ebx
push 0x392
call dword [sym.imp.GDI32.dll_SelectClipRgn]
lea ecx, [ebp - 0x50]
call fcn.1001bab2
mov eax, dword [ebp - 0x40]
mov dword [eax], ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret