Function at 0x40a0b0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ebba0
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x533014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0
push ecx
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor esi, esi
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x48], esi
jle 0x40a1b7
mov edx, dword [eax + esi*4]
xor eax, eax
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x30], 0
mov word [ebp - 0x40], ax
cmp word [edx], ax
je 0x40a133
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40a124
sub eax, edi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0x40]
call fcn.00407340
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0
push eax
mov ecx, ebx
call fcn.0040a510
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x40a1a9
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x7fffffff
ja 0x40a31d
add eax, eax
cmp eax, 0x1000
jb 0x40a1a0
test cl, 0x1f
jne 0x40a31d
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x40a31d
sub ecx, eax
cmp ecx, 4
jb 0x40a31d
cmp ecx, 0x23
ja 0x40a31d
mov ecx, eax
push ecx
call fcn.00463708
add esp, 4
inc esi
cmp esi, dword [ebp - 0x48]
jge 0x40a1b7
mov eax, dword [ebp - 0x44]
jmp 0x40a103
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x58], edi
cmp esi, edi
je 0x40a2d9
nop word [eax + eax]
xor eax, eax
mov dword [ebp - 0x14], 7
push 0xffffffffffffffff
push eax
push esi
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
call fcn.00406dc0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea ebx, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmovae ecx, edx
cmovae ebx, edx
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x54], 0
lea eax, [ecx + eax*2]
lea ecx, [ebp - 0x28]
cmovae ecx, edx
mov edx, eax
sub edx, ecx
inc edx
shr edx, 1
cmp ecx, eax
cmova edx, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], edx
test edx, edx
je 0x40a25f
mov edi, dword [ebp - 0x54]
mov esi, ecx
sub esi, ebx
nop
movzx eax, word [esi + ebx]
push eax
call fcn.004a8b54
inc edi
mov word [ebx], ax
add esp, 4
lea ebx, [ebx + 2]
cmp edi, dword [ebp - 0x4c]
jne 0x40a240
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
push str._regall
call fcn.0040b0c0
test eax, eax
je 0x40a2fb
push str._unregall
lea ecx, [ebp - 0x28]
call fcn.0040b0c0
test eax, eax
je 0x40a2f7
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40a2cb
inc eax
cmp eax, 0x7fffffff
ja 0x40a31d
add eax, eax
cmp eax, 0x1000
jb 0x40a2c2
test bl, 0x1f
jne 0x40a31d
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x40a31d
sub ebx, eax
cmp ebx, 4
jb 0x40a31d
cmp ebx, 0x23
ja 0x40a31d
mov ebx, eax
push ebx
call fcn.00463708
add esp, 4
add esi, 0x18
mov dword [ebp - 0x44], esi
cmp esi, edi
jne 0x40a1d0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046370d
mov esp, ebp
pop ebp
ret
xor ecx, ecx
jmp 0x40a300
mov ecx, 1
push 1
call fcn.00412bc0
mov eax, dword [ebp - 0x14]
add esp, 4
cmp eax, 8
jb 0x40a363
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x7fffffff
jbe 0x40a322
call fcn.004a8769
add eax, eax
cmp eax, 0x1000
jb 0x40a35a
test byte [ebp - 0x28], 0x1f
je 0x40a336
call fcn.004a8769
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x40a342
call fcn.004a8769
sub ecx, eax
cmp ecx, 4
jae 0x40a34e
call fcn.004a8769
cmp ecx, 0x23
jbe 0x40a358
call fcn.004a8769
mov ecx, eax
push ecx
call fcn.00463708
add esp, 4
mov eax, 1
jmp 0x40a2db