Function at 0x401490
Capabilities:
Terminate process

Disassembly:
mov eax, dword [0x439198]
test eax, eax
je 0x40149e
jmp 0x4015d0
jmp 0x401880
sub esp, 0x284
mov al, byte [0x439128]
push ebx
mov ebx, dword [0x4391a0]
push esi
mov byte [esp + 0x88], al
push edi
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0x8d]
rep stosd dword es:[edi], eax
mov eax, dword [0x439190]
mov ecx, dword [0x439194]
mov edx, eax
or edx, ecx
jne 0x401622
mov eax, 4
mov dword [0x439190], eax
mov dword [0x439194], 0
jmp 0x401653
test ecx, ecx
ja 0x401653
jb 0x40162d
cmp eax, 4
jae 0x401653
push 0x423a88
mov dword [0x439190], 4
mov dword [0x439194], 0
call fcn.00401010
mov eax, dword [0x439190]
add esp, 4
mov esi, dword [esp + 0x294]
mov dword [esp + 0xc], eax
mov ax, word [0x43919c]
or ecx, 0xffffffff
mov word [esp + 0x10], ax
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov eax, ecx
mov edx, ecx
shr ecx, 2
mov dword [esp + 0x12], 0
lea edi, [esp + 0x16]
rep movsd dword es:[edi], dword [esi]
push 1
add eax, 0xa
push eax
mov ecx, edx
and ecx, 3
lea eax, [esp + 0x14]
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x4391a0]
push 0x12
push ecx
call fcn.00404d00
add esp, 0x14
test eax, eax
je 0x4016c0
push 0x423a64
call fcn.00401160
add esp, 4
mov edi, edi
mov edx, dword [0x4391a0]
push edx
call fcn.00404c20
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
jne 0x4016f1
mov eax, dword [0x4391a0]
push eax
call fcn.00406970
push eax
push 0x423a3c
call fcn.00401160
add esp, 8
jmp 0x4016fe
cmp esi, 1
jne 0x4016fe
mov ecx, dword [ebx + 0x18]
cmp byte [ecx], 0xfe
je 0x401761
mov edx, dword [ebx + 0x18]
dec esi
inc edx
push esi
push edx
call fcn.00401e60
mov esi, eax
add esp, 8
test esi, esi
je 0x401757
mov edx, dword [0x439180]
mov eax, dword [esi]
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [0x439130]
push edx
push ecx
mov ecx, esi
call dword [eax + 0x10]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
cmp eax, 6
jne 0x401749
mov eax, dword [esi + 0x40]
push eax
push ebx
call fcn.00401770
add esp, 8
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 8]
jmp 0x4016c0
push 0x423a14
jmp 0x4016b6
pop edi
pop esi
pop ebx
add esp, 0x284
ret
mov eax, 0x1280
call fcn.00412d50
mov al, byte [0x439128]
push ebx
push ebp
push esi
mov byte [esp + 0x88], al
push edi
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0x8d]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1294]
test eax, eax
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
je 0x40191e
cmp byte [eax], 0x2d
je 0x40191e
push 0x10
push 0x8000
push eax
call fcn.00407d20
add esp, 0xc
test eax, eax
mov dword [esp + 0x18], eax
jge 0x4018eb
push 1
call fcn.00412999
mov ecx, dword [0x439194]
mov edx, dword [0x439190]
push 0x14
push 0
push ecx
push edx
push 0
push 0
push eax
lea eax, [esp + 0x40]
push eax
call fcn.00407760
add esp, 0x20
test eax, eax
je 0x401a28
push 1
call fcn.00412999
mov ecx, dword [0x439130]
push 0x94
push 0
push 0
push 0
push 0
push 0
push ecx
call fcn.0041e746
add esp, 4
push eax
lea edx, [esp + 0x40]
push edx
call fcn.00407760
add esp, 0x20
test eax, eax
je 0x401955
push 1
call fcn.00412999
mov eax, dword [0x439190]
mov edi, dword [0x439194]
mov ecx, eax
or ecx, edi
je 0x401a0f
test edi, edi
mov esi, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
ja 0x401994
test eax, eax
jbe 0x401a0f
test edi, edi
ja 0x401994
jb 0x40198e
cmp esi, 0x1000
jae 0x401994
mov ebx, esi
mov ebp, edi
jmp 0x40199b
mov ebx, 0x1000
xor ebp, ebp
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
lea eax, [edx + ebx]
cmp eax, ecx
ja 0x4019d1
mov ecx, ebx
mov esi, edx
mov edx, ecx
shr ecx, 2
lea edi, [esp + 0x290]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x34], eax
jmp 0x4019ea
push ebx
lea eax, [esp + 0x294]
push eax
lea ecx, [esp + 0x2c]
push ecx
call dword [esp + 0x50]
add esp, 0xc
test eax, eax
jne 0x401a21
mov eax, dword [0x439190]
sub esi, ebx
sbb edi, ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
jne 0x401980
test esi, esi
ja 0x401980
mov ebp, dword [esp + 0x1c]
mov edi, dword [0x439194]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x58], 0
jmp 0x401a2d
push 1
call fcn.00412999
mov eax, dword [0x439190]
or eax, dword [0x439194]
jne 0x401a90
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
lea eax, [ecx + 4]
cmp eax, edx
ja 0x401a50
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], eax
jmp 0x401a74
push 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x2c]
push ecx
call dword [esp + 0x50]
add esp, 0xc
test eax, eax
je 0x401a74
push 0x423bfc
call fcn.00401160
add esp, 4
lea eax, [esp + 0x10]
mov ecx, dword [eax]
mov edx, 0x423bf4
cmp ecx, dword [edx]
je 0x401a90
push 0x423bb4
call fcn.00401160
add esp, 4
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
sub eax, edx
cdq
mov esi, eax
mov eax, dword [esp + 0x28]
mov edi, edx
lea edx, [esp + 0x24]
add esi, ecx
push edx
adc edi, eax
call fcn.00401bc0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x401b6a
mov eax, dword [esp + 0x20]
cmp eax, dword [0x43918c]
jb 0x401b1f
ja 0x401ad8
cmp ebp, dword [0x439188]
jb 0x401b1f
mov eax, dword [0x439180]
test eax, eax
jne 0x401b02
lea ecx, [esp + 0x74]
push ecx
push edi
push esi
call fcn.00407f30
mov edx, dword [0x439130]
push eax
push 0x423ba8
push edx
call fcn.004126f5
add esp, 0x18
mov edx, dword [0x439180]
mov eax, dword [ebx]
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [0x439130]
push edx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov ecx, dword [esp + 0x20]
add ebp, 1
adc ecx, 0
test ebx, ebx
mov dword [esp + 0x20], ecx
je 0x401b3a
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx + 8]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
sub eax, ecx
cdq
mov esi, eax
add esi, dword [esp + 0x24]
lea eax, [esp + 0x24]
mov edi, edx
push eax
adc edi, ebx
call fcn.00401bc0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x401ac2
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x401b8c
lea ecx, [esp + 0x74]
push ecx
push edi
push esi
call fcn.00407f30
push eax
push 0x423b60
call fcn.00401160
add esp, 0x14
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x401b9f
push 0x10
push eax
call fcn.00407d70
add esp, 8
lea edx, [esp + 0x24]
push edx
call fcn.00407ce0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1280
ret