Function at 0x4045c2
Capabilities:
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov eax, ecx
mov dword [0x40cf18], 0xfff
mov dword [ebp - 8], eax
mov ebx, edx
mov dword [0x40a6d4], 0xaa
push esi
push edi
test eax, eax
je 0x4049f9
xor ecx, ecx
mov esi, ecx
test eax, eax
jle 0x4049f9
mov edi, dword [ebx + esi*4]
mov eax, 0x40d774
push 0x23
pop edx
mov byte [ebp - 1], cl
mov dword [ebp - 0xc], eax
mov eax, dword [eax]
push edx
push edi
mov dword [ebp - 0x14], eax
call dword [sym.imp.msvcrt.dll_wcschr]
mov dword [ebp - 0x10], eax
pop ecx
pop ecx
test eax, eax
je 0x40462e
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 1]
push eax
add edx, 0xffffffee
mov ecx, edi
call fcn.00404aa5
test al, al
jne 0x4049a2
mov eax, dword [ebp - 0x10]
push 0x23
pop edx
test eax, eax
je 0x404655
mov word [eax - 2], dx
mov eax, dword [ebp - 0xc]
add eax, 0x58
mov dword [ebp - 0xc], eax
cmp eax, 0x40dd4c
jl 0x40460d
lea eax, [ebp - 1]
mov edx, 0x40239c
push eax
mov ecx, edi
call fcn.00404aa5
test al, al
je 0x404686
mov al, byte [ebp - 1]
mov byte [0x40cf38], al
jmp 0x4049da
mov edx, 0x4023ac
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x40498d
mov edx, 0x4023b4
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x40498d
mov edx, 0x4023bc
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x404949
mov edx, 0x4023c4
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x404949
mov edx, 0x402418
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x404904
mov edx, 0x402420
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x404904
mov edx, 0x4024c0
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x4048e5
mov edx, 0x4024cc
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x4048e5
mov edx, 0x4024d8
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x404a7f
mov edx, 0x4024e8
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x404a7f
lea eax, [ebp - 1]
mov edx, 0x4024f8
push eax
mov ecx, edi
call fcn.00404aa5
test al, al
jne 0x4047e8
lea eax, [ebp - 1]
mov edx, 0x402500
push eax
mov ecx, edi
call fcn.00404aa5
test al, al
jne 0x4047e8
mov edx, 0x402588
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x4047be
mov edx, 0x402594
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x4047be
mov edx, 0x4025a0
mov ecx, edi
call fcn.00404ad0
test al, al
jne 0x4047be
mov edx, 0x4025a8
mov ecx, edi
call fcn.00404ad0
test al, al
je 0x4049da
inc esi
cmp esi, dword [ebp - 8]
jge 0x404982
push 0x4025b0
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x404a00
xor ecx, ecx
inc ecx
jmp 0x404984
xor eax, eax
mov edx, 0x4024f8
mov dword [ebp - 0x10], eax
mov ecx, edi
mov byte [ebp - 2], al
lea eax, [ebp - 1]
push eax
call fcn.00404aa5
test al, al
je 0x40480b
mov al, 1
mov byte [ebp - 2], al
jmp 0x40480e
mov al, byte [ebp - 2]
inc esi
cmp esi, dword [ebp - 8]
jge 0x404a6e
push 0x402508
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x404832
or dword [ebp - 0xc], 0xffffffff
jmp 0x404858
xor edi, edi
lea eax, [ebp - 0x10]
push edi
push eax
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll_wcstol]
mov ecx, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0xc], eax
test ecx, ecx
je 0x404858
cmp word [ecx], di
jne 0x404a38
mov eax, dword [0x40cf20]
mov dword [ebp - 0x14], eax
test eax, eax
jne 0x404890
push 0x14
call dword [sym.imp.msvcrt.dll_malloc]
mov edi, eax
mov dword [ebp - 0x14], edi
pop ecx
test edi, edi
je 0x404a5e
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [0x40cf20], edi
mov dword [edi + 4], edi
mov dword [edi], edi
push 0x14
call dword [sym.imp.msvcrt.dll_malloc]
mov edx, eax
pop ecx
test edx, edx
je 0x404a5e
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov edi, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov al, byte [ebp - 1]
mov byte [edx + 8], al
movzx eax, byte [ebp - 2]
neg eax
sbb eax, eax
and eax, dword [ebp - 0xc]
mov dword [edx + 0xc], eax
movzx eax, byte [ebp - 2]
neg eax
sbb eax, eax
not eax
and eax, dword [ebp - 0xc]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov dword [eax], edx
mov dword [ecx + 4], edx
jmp 0x4049da
inc esi
mov edx, 0x104
mov ecx, 0x40cae8
push dword [ebx + esi*4]
call fcn.00404080
mov byte [0x40ccf9], 1
jmp 0x4049da
xor eax, eax
inc esi
mov dword [ebp - 0x14], eax
cmp esi, dword [ebp - 8]
jge 0x404a96
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll_wcstol]
mov dword [0x40a6d4], eax
add esp, 0xc
mov eax, dword [ebp - 0x14]
xor ecx, ecx
test eax, eax
je 0x4049dc
cmp word [eax], cx
je 0x4049dc
push dword [ebx + esi*4]
push 0x402478
jmp 0x40497b
xor eax, eax
inc esi
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll_wcstol]
mov dword [0x40cf18], eax
add esp, 0xc
mov eax, dword [ebp - 0x14]
xor ecx, ecx
test eax, eax
je 0x4049dc
cmp word [eax], cx
je 0x4049dc
push dword [ebx + esi*4]
push 0x4023d0
call fcn.00405909
pop ecx
pop ecx
xor ecx, ecx
call fcn.00405461
xor al, al
jmp 0x4049fb
inc esi
mov edx, 0x104
mov ecx, 0x40cd00
push dword [ebx + esi*4]
call fcn.00404080
jmp 0x4049da
mov dl, byte [ebp - 1]
cmp dl, 1
jne 0x4049b4
mov eax, dword [0x40cf18]
or eax, dword [ebp - 0x14]
jmp 0x4049bf
mov eax, dword [ebp - 0x14]
not eax
and eax, dword [0x40cf18]
mov dword [0x40cf18], eax
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4049da
push 0x23
pop ecx
mov word [eax - 2], cx
lea ecx, [edi + 2]
call fcn.004055f1
xor ecx, ecx
inc esi
cmp esi, dword [ebp - 8]
jl 0x4045fc
cmp dword [0x40cf18], 0
jne 0x4049f9
mov dword [0x40cf18], 0xfff
mov al, 1
pop edi
pop esi
pop ebx
leave
ret
push 0x4025c0
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x404a18
push 2
jmp 0x404a32
push 0x4025d0
push dword [ebx + esi*4]
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x404989
push 3
pop ecx
jmp 0x404984
cmp byte [ebp - 2], 0
mov eax, 0x40250c
jne 0x404a48
mov eax, 0x402514
push dword [ebx + esi*4]
push eax
push 0x40251c
call fcn.00405909
add esp, 0xc
jmp 0x404982
push 0x402554
call fcn.00405909
pop ecx
jmp 0x404989
test al, al
mov eax, 0x4024f8
jne 0x404a7c
mov eax, 0x402500
push eax
jmp 0x404a9b
mov ecx, dword [ebx + esi*4 + 4]
call fcn.0040568c
xor ecx, ecx
test al, al
sete cl
push ecx
call dword [sym.imp.msvcrt.dll_exit]
push 0x402418
push 0x402428
jmp 0x40497b