Function at 0x401000
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov al, byte [ebp + 8]
mov byte [ebp - 0x11], al
mov ecx, 0x319
mov word [ebp - 0x30], cx
mov dx, word [section..data]
mov word [ebp - 0x3c], dx
lea eax, [ebp - 0x11]
mov dword [ebp - 8], eax
movsx ecx, word [ebp - 0x30]
cmp ecx, 0x5c0
jge 0x4010a9
movzx edx, byte [ebp + 8]
movzx eax, byte [ebp - 0x11]
add edx, eax
mov ecx, dword [ebp - 8]
movzx eax, byte [ecx]
cmp edx, eax
jl 0x40109e
mov dword [ebp - 0x18], 0x6e45
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x2c], ecx
lea edx, [ebp - 0x18]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x2c]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x3c]
and ecx, edx
movzx eax, word [section..data]
cmp ecx, eax
jge 0x40109e
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
shl edx, 0x1e
mov dword [ebp - 0x18], edx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 8]
push ecx
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x2c]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x3c]
sar eax, cl
mov ecx, dword [ebp - 0x2c]
mov word [ecx], ax
mov dl, byte [0x416c60]
mov byte [ebp - 0x19], dl
jmp 0x4010ff
mov eax, dword [ebp - 8]
movzx ecx, byte [eax]
movzx edx, byte [ebp + 8]
sub ecx, edx
movzx eax, byte [ebp - 0x11]
cmp ecx, eax
je 0x4010ff
movsx ecx, word [ebp - 0x30]
cmp ecx, 0x2c4
jg 0x4010f2
movzx edx, word [ebp - 0x3c]
movzx eax, word [section..data]
xor edx, eax
mov ecx, dword [ebp - 0x2c]
mov word [ecx], dx
call fcn.00401860
movzx edx, byte [ebp + 8]
mov eax, dword [ebp - 8]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x11], dl
jmp 0x4010ff
movsx edx, byte [0x416c60]
add edx, 2
mov byte [ebp - 0x19], dl
movsx eax, byte [ebp - 0x19]
imul eax, eax, 0x4d
movsx ecx, byte [0x416c60]
cmp eax, ecx
jge 0x4011a9
mov edx, dword [ebp - 8]
mov al, byte [edx]
mov byte [ebp + 8], al
call fcn.00401860
mov ecx, dword [ebp - 0x18]
and ecx, 0x1bed
mov edx, dword [ebp - 0x38]
mov dword [edx], ecx
movsx eax, byte [ebp - 0x19]
sub eax, 0x30
movsx ecx, byte [0x416c60]
cmp eax, ecx
jg 0x4011a9
movsx edx, byte [0x416c60]
add edx, 0x29
mov byte [ebp - 0x19], dl
mov eax, dword [ebp - 8]
movzx ecx, byte [eax]
movzx edx, byte [ebp + 8]
sub ecx, edx
mov byte [ebp - 0x11], cl
movzx eax, word [ebp - 0x3c]
movzx ecx, word [section..data]
add eax, ecx
mov edx, dword [ebp - 0x2c]
mov word [edx], ax
mov eax, dword [ebp - 8]
movzx ecx, byte [eax]
push ecx
call section..text
add esp, 4
mov dl, byte [ebp - 0x11]
mov byte [ebp + 8], dl
mov dl, byte [ebp - 0x19]
mov cl, byte [ebp - 0x11]
call fcn.00401630
movsx eax, byte [0x416c60]
or eax, 0x60
mov byte [ebp - 0x19], al
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
sar edx, 9
mov dword [ebp - 0x18], edx
mov al, byte [ebp - 0x19]
mov byte [ebp - 0x31], al
mov dword [ebp - 0x20], 0xca15
movsx eax, byte [ebp - 0x31]
movsx ecx, byte [ebp - 0x19]
cdq
idiv ecx
movsx edx, byte [0x416c60]
cmp eax, edx
jl 0x401253
mov eax, dword [ebp - 0x10]
push eax
call sub.WINSPOOL.DRV_AbortPrinter
mov dword [ebp - 4], eax
movzx edx, byte [ebp + 8]
movzx ecx, byte [ebp - 0x11]
shl edx, cl
mov eax, dword [ebp - 8]
mov byte [eax], dl
mov ecx, dword [ebp - 0x2c]
movzx edx, word [ecx]
movzx eax, word [section..data]
xor edx, eax
mov word [ebp - 0x3c], dx
mov ecx, dword [ebp - 0x20]
and ecx, 0x54ae
mov dword [ebp - 0x20], ecx
call fcn.00401860
movzx edx, word [ebp - 0x3c]
movzx eax, word [section..data]
add edx, eax
mov ecx, dword [ebp - 0x2c]
movzx eax, word [ecx]
cmp edx, eax
jl 0x401244
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x38]
mov dword [eax], edx
mov dl, byte [ebp - 0x31]
mov ecx, dword [ebp - 0x20]
call fcn.004012d0
mov cl, byte [ebp - 0x11]
mov byte [ebp + 8], cl
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
mov dword [ecx], eax
jmp 0x4012ac
mov dx, word [ebp - 0x3c]
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 8]
mov cl, byte [eax]
mov byte [ebp - 0x41], cl
movsx edx, word [ebp - 0x30]
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x48], 0x55b
je 0x40129e
cmp dword [ebp - 0x48], 0x733
je 0x40127e
jmp 0x4012ac
mov eax, dword [ebp - 0x20]
sub eax, 0x8012
mov dword [ebp - 0x20], eax
mov cl, byte [ebp - 0x11]
mov byte [ebp + 8], cl
mov edx, dword [ebp - 0x38]
mov eax, dword [edx]
and eax, 0x1530
mov dword [ebp - 0x18], eax
jmp 0x4012ac
mov ecx, dword [ebp - 0x18]
sub ecx, 0x29df
mov edx, dword [ebp - 0x38]
mov dword [edx], ecx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 8]
mov al, byte [edx]
mov byte [ebp - 0x21], al
movsx eax, byte [0x416c60]
mov esp, ebp
pop ebp
ret