Function at 0x40f320
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push esi
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0x3c64
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x14]
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x4c]
imul ecx, dword [ebp - 4]
add eax, ecx
sub eax, dword [ebp - 4]
and eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x38]
lea edx, [ecx + edx + 0x29a8]
add edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x10]
movzx ecx, byte [ebp - 0x20]
sub edx, ecx
add edx, dword [ebp - 0x20]
and eax, edx
movzx edx, word [ebp - 0x38]
xor eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x40]
add eax, dword [ebp - 4]
xor ecx, ecx
sub ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 8]
movzx edx, byte [ebp - 0x1c]
mov esi, dword [ebp - 4]
sub esi, edx
add esi, dword [ebp - 4]
sub esi, dword [ebp - 0x18]
and ecx, esi
xor eax, ecx
movzx ecx, word [ebp - 0x38]
add ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x4c]
or eax, ecx
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0xab
ja 0x40f3e4
cmp dword [ebp - 0x44], 0xab
je 0x40f52c
cmp dword [ebp - 0x44], 0x53
je 0x40f4df
cmp dword [ebp - 0x44], 0x7d
je 0x40f3ff
jmp 0x40f57e
cmp dword [ebp - 0x44], 0x10f
je 0x40f44a
cmp dword [ebp - 0x44], 0x163
je 0x40f48e
jmp 0x40f57e
movzx eax, word [ebp - 0x34]
add eax, 0x28b9
movzx ecx, byte [ebp - 0x48]
sub ecx, dword [ebp - 0x48]
and eax, ecx
movzx edx, word [ebp - 0x2c]
add edx, dword [ebp - 4]
movzx ecx, word [ebp - 0x34]
lea edx, [edx + ecx - 0x2c0f]
movzx ecx, word [ebp - 0x28]
sub edx, ecx
or eax, edx
movzx edx, byte [ebp - 0x1c]
and edx, 0x44e
and edx, dword [ebp - 0x10]
or eax, edx
mov ecx, dword [ebp - 0x18]
and ecx, dword [ebp - 4]
or eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x40f5c7
mov edx, dword [ebp - 0x20]
sub edx, 0x2264
sub edx, dword [ebp - 0x14]
add edx, dword [ebp - 4]
sub edx, dword [ebp - 0x3c]
and edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x4c]
and edx, eax
movzx ecx, word [ebp - 0x24]
or edx, ecx
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x30]
mov ecx, 0xffffcb7e
sub ecx, eax
mov eax, dword [ebp - 0x4c]
imul eax, dword [ebp - 0x1c]
and ecx, eax
or edx, ecx
mov dword [ebp - 0x28], edx
jmp 0x40f5c7
movzx ecx, byte [ebp - 0xc]
or ecx, 0x3a2e
mov edx, dword [ebp - 8]
sub edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x48]
lea edx, [edx + eax - 0x6f8]
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 8]
and edx, eax
or ecx, edx
movzx edx, byte [ebp - 0x14]
add edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x40]
sub eax, 0x2f20
movzx esi, byte [ebp - 8]
sub eax, esi
movzx esi, byte [ebp - 0x28]
add eax, esi
xor edx, eax
or ecx, edx
mov dword [ebp - 4], ecx
jmp 0x40f5c7
xor ecx, ecx
sub ecx, dword [ebp - 0x48]
sub ecx, dword [ebp - 0x14]
movzx edx, byte [ebp - 0x10]
sub ecx, edx
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x2c]
movzx edx, byte [ebp - 0xc]
sub eax, edx
and ecx, eax
movzx eax, byte [ebp - 0x38]
movzx edx, word [ebp - 0x24]
sub eax, edx
sub eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x30]
sub eax, 0x286b
sub eax, dword [ebp - 0xc]
movzx edx, byte [ebp - 0x30]
add eax, edx
movzx edx, word [ebp - 0x20]
sub eax, edx
and ecx, eax
and ecx, dword [ebp - 4]
mov dword [ebp - 0x18], ecx
jmp 0x40f5c7
movzx eax, byte [ebp - 4]
imul ecx, eax, 0
mov edx, dword [ebp - 8]
sub edx, ecx
movzx eax, word [ebp - 0xc]
and edx, eax
and edx, dword [ebp - 0x2c]
or edx, dword [ebp - 0x40]
movzx ecx, word [ebp - 0x34]
or edx, ecx
movzx eax, word [ebp - 0x1c]
add eax, 0x301e
and eax, 0x3a58
or edx, eax
movzx ecx, word [ebp - 0x2c]
or edx, ecx
imul eax, dword [ebp - 0x28], 0x2cc6
imul eax, dword [ebp - 0xc]
movzx ecx, word [ebp - 8]
add eax, ecx
sub eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x2c]
or edx, eax
mov dword [ebp - 0x38], edx
jmp 0x40f5c7
movzx edx, byte [ebp - 0x48]
imul edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
sub eax, edx
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x24]
shl eax, cl
mov ecx, dword [ebp - 0x14]
sub ecx, 0x6e1
or eax, ecx
movzx edx, byte [ebp - 0x1c]
movzx ecx, byte [ebp - 0x14]
sub edx, ecx
add edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x14]
lea ecx, [esi + ecx + 0x1a75]
shl edx, cl
xor ecx, ecx
sub ecx, dword [ebp - 8]
and edx, ecx
or eax, edx
mov word [ebp - 0xc], ax
movzx edx, word [ebp - 0x40]
imul edx, dword [ebp - 0x20]
mov eax, 0x37a
sub eax, edx
mov ecx, dword [ebp - 0x18]
lea edx, [eax + ecx + 0x39ac]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x10]
movzx ecx, word [ebp - 8]
add eax, dword [ebp - 0x40]
add ecx, eax
and edx, ecx
movzx eax, byte [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
movzx eax, byte [ebp - 0x40]
add ecx, eax
or edx, ecx
or edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
add ecx, 0x18c1
sub ecx, dword [ebp - 0x14]
or edx, ecx
mov byte [ebp - 0x4c], dl
call fcn.0040f750
mov edx, dword [ebp - 0x3c]
cmp edx, dword [ebp - 0x14]
jb 0x40f672
mov eax, dword [ebp - 0x2c]
or eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 4]
sub ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 8]
or eax, ecx
mov edx, dword [ebp - 0x10]
add edx, 0x32fc
movzx ecx, word [ebp - 8]
sub edx, ecx
add edx, 0x192
sub edx, dword [ebp - 0x10]
add edx, dword [ebp - 4]
sub edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0xc]
movzx ecx, byte [ebp - 0x24]
sub edx, ecx
and edx, dword [ebp - 0x28]
or eax, edx
or eax, dword [ebp - 0x3c]
mov dword [ebp - 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0x18]
or edx, dword [ebp - 0x20]
or edx, dword [ebp - 0xc]
or edx, dword [ebp - 0x48]
movzx eax, word [ebp - 0x34]
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x38]
imul ecx, dword [ebp - 0x34]
sub eax, ecx
add eax, dword [ebp - 8]
sub eax, dword [ebp - 0x18]
movzx ecx, byte [ebp - 0x1c]
shr eax, cl
movzx ecx, word [ebp - 0x34]
and eax, ecx
or edx, eax
or edx, dword [ebp - 0xc]
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x24]
movzx eax, byte [ebp - 8]
add eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x14]
movzx ecx, byte [ebp - 8]
sub eax, ecx
sub eax, 0x1a73
sub eax, dword [ebp - 4]
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x3c]
mov esi, 0x185f
sub esi, ecx
and eax, esi
or edx, eax
movzx eax, byte [ebp - 0x1c]
sub eax, dword [ebp - 0x18]
and eax, dword [ebp - 0x30]
or edx, eax
movzx ecx, word [ebp - 0x40]
mov eax, dword [ebp - 0x10]
sub eax, ecx
add eax, dword [ebp - 4]
or edx, eax
mov word [ebp - 0x2c], dx
movzx ecx, word [ebp - 0x20]
xor edx, edx
sub edx, ecx
movzx eax, word [ebp - 0x18]
sub eax, dword [ebp - 0x18]
or edx, eax
or edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 8]
xor ecx, dword [ebp - 0x10]
or edx, ecx
or edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x10]
or edx, eax
mov ecx, dword [ebp - 4]
add ecx, 0x81
or edx, ecx
imul eax, dword [ebp - 0x18], 0
add eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0xc]
or edx, eax
mov dword [ebp - 0x30], edx
pop esi
mov esp, ebp
pop ebp
ret