Function at 0x401790
Capabilities:
Terminate process

Disassembly:
sub esp, 0x62c
push ebx
push ebp
push esi
push edi
xor edx, edx
mov ecx, 0x1f
xor eax, eax
lea edi, [esp + 0xbd]
mov byte [esp + 0xbc], dl
mov byte [esp + 0x23c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x23d]
mov esi, dword [esp + 0x640]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
cmp esi, 2
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 2
mov dword [esp + 0x28], 0xffffffff
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], 0xa
stosb byte es:[edi], al
jge 0x401809
push 0x41bb50
call fcn.00401140
add esp, 4
cmp esi, 1
mov dword [esp + 0x10], 1
jle 0x4019b6
mov eax, dword [esp + 0x644]
lea ebx, [eax + 4]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40184d
push 0x4205a0
push 0x41bb28
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.00401140
add esp, 0x10
mov ecx, dword [ebx]
push ecx
call fcn.004010d0
add esp, 4
cmp eax, 0xffffffff
je 0x401971
lea ebp, [eax*8]
sub ebp, eax
shl ebp, 2
mov eax, dword [ebp + 0x41b0c0]
test eax, eax
je 0x401965
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x41b0cc]
inc edx
add ebx, 4
test eax, eax
mov dword [esp + 0x10], edx
je 0x401937
mov edi, dword [ebp + 0x41b0bc]
test edi, edi
jne 0x4018a7
mov edx, dword [ebx]
push edx
jmp 0x401957
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x4201a0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x41bb24
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x4201a0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebx]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, 0x4201a0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x41b0bc]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.0040fa2d
push 0x4201a0
call fcn.004101be
add esp, 8
jmp 0x40195f
mov eax, dword [ebp + 0x41b0bc]
test eax, eax
je 0x401954
push eax
call fcn.0040fa2d
add esp, 4
mov dword [ebp + 0x41b0bc], 0
mov eax, dword [ebx]
push eax
call fcn.004101be
add esp, 4
mov dword [ebp + 0x41b0bc], eax
mov dword [ebp + 0x41b0c4], 1
jmp 0x40199b
mov edi, dword [ebx]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], 1
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x4205a0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x640]
inc eax
add ebx, 4
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x401824
mov al, byte [0x4205a0]
test al, al
jne 0x4019cc
push 0x41bb0c
call fcn.00401140
add esp, 4
call fcn.004011e0
push 0x41b6bc
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
jne 0x401a03
push 0x41baf0
call fcn.00401140
add esp, 4
jmp 0x401a29
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, 0x48d4e0
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x41b70c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
jne 0x401a5b
push 0x41bad8
call fcn.00401140
add esp, 4
jmp 0x401a6f
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.0040f63d
add esp, 4
mov dword [0x48d4c8], eax
push 0x41b5c4
call fcn.004010d0
lea esi, [eax*8]
add esp, 4
sub esi, eax
shl esi, 2
mov eax, dword [esi + 0x41b0c4]
test eax, eax
jne 0x401aaf
push 0x41bac4
call fcn.004101be
mov dword [esi + 0x41b0bc], eax
add esp, 4
mov dword [esi + 0x41b0c4], 1
mov edx, dword [0x48d4c8]
mov eax, dword [0x48d560]
push 0x78
push edx
push 0x48d4e0
push eax
call fcn.00402fd0
add esp, 0x10
test eax, eax
jne 0x401af8
call fcn.00404130
push eax
push 0x41bab8
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0x10
push 1
call fcn.0040f817
push 0x41baa8
call fcn.00404140
add esp, 4
test eax, eax
jne 0x401b37
push 0x41ba88
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0xc
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
lea ecx, [esp + 0x24]
push 1
push ecx
call fcn.004037f0
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x14], ebx
jne 0x401b7e
push 0x41ba74
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0xc
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
push 0x41b6fc
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
jne 0x401bcf
push 0x41ba54
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0xc
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x13c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x41b5c4
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
jne 0x401c4a
push 0x41ba34
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0xc
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1bc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
xor edx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x10], edx
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
jle 0x401d30
mov ebp, dword [esp + 0x24]
mov edi, ebp
mov eax, dword [edi]
lea esi, [esp + 0x13c]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401cb5
test cl, cl
je 0x401cb1
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401cb5
add eax, 2
add esi, 2
test cl, cl
jne 0x401c91
xor eax, eax
jmp 0x401cba
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401cd0
mov eax, dword [esp + 0x14]
inc edx
add edi, 0x24
cmp edx, eax
jl 0x401c88
mov dword [esp + 0x10], edx
jmp 0x401d30
lea ecx, [edx + edx*8]
xor edi, edi
mov dword [esp + 0x10], edx
lea eax, [ebp + ecx*4]
mov ebp, dword [ebp + ecx*4 + 0x1c]
test ebp, ebp
jle 0x401d2a
mov edx, dword [eax + 0x20]
mov eax, dword [edx]
lea esi, [esp + 0x1bc]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x401d15
test cl, cl
je 0x401d11
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x401d15
add eax, 2
add esi, 2
test cl, cl
jne 0x401cf1
xor eax, eax
jmp 0x401d1a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401d26
inc edi
add edx, 4
cmp edi, ebp
jl 0x401ce8
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x14]
jl 0x401d66
lea edx, [esp + 0x13c]
push edx
push 0x41ba14
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0x10
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
cmp edi, ebp
jl 0x401da8
lea eax, [esp + 0x13c]
lea ecx, [esp + 0x1bc]
push eax
push ecx
push 0x41b9e4
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0x14
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
mov edx, dword [0x48d4c8]
lea eax, [esp + 0x1bc]
push edx
push 0x48d4e0
lea ecx, [esp + 0x144]
push eax
push ecx
call fcn.00409820
add esp, 0x10
test eax, eax
jne 0x401dfe
push 0x41b9b8
push 0x4201a0
call fcn.0040f560
push 0x4201a0
call fcn.004010a0
add esp, 0xc
call fcn.00403720
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x62c
ret
push eax
call fcn.00409bb0
mov ebp, eax
push 0x41b9ac
push ebp
call fcn.00405af0
push 0x41b724
call fcn.004010d0
lea ecx, [eax*8]
add esp, 0x10
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x401e47
mov edx, dword [ecx + 0x41b0bc]
push edx
call fcn.0040f63d
add esp, 4
test eax, eax
jg 0x401e4c
mov eax, 1
mov dword [ebp + 0x38], eax
push 0x41b60c
mov byte [esp + 0x40], 0
call fcn.004010d0
lea ebx, [eax*8]
add esp, 4
sub ebx, eax
shl ebx, 2
mov eax, dword [ebx + 0x41b0c4]
test eax, eax
je 0x401ee4
lea eax, [esp + 0x3c]
push eax
push 0x4205a0
call fcn.00402b20
mov edi, 0x41b9a8
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x3c]
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x3c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebx + 0x41b0bc]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x41b59c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x401f31
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x23c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x41b57c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x401f7b
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x3c]
test al, al
jne 0x401fa0
mov ecx, dword [0x41b99c]
mov edx, dword [0x41b9a0]
mov eax, dword [0x41b9a4]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
push 0x41b800
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x401ffb
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x94]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x94]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x94], edi
push 0x41b87c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x402056
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x9c]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x9c]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x9c], edi
push 0x41b7e8
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x4020b1
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x90]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x90]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x90], edi
push 0x41b7d4
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x40210c
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x9c]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x9c]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x9c], edi
push 0x41b75c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x402167
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x98]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x98]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x98], edi
push 0x41b688
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x4021c2
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x9c]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x9c]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x9c], edi
push 0x41b6e8
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x40221d
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.00405470
mov edx, dword [ebp + 0x90]
mov esi, eax
push esi
push edx
call fcn.00405690
push esi
mov edi, eax
call fcn.00405420
mov eax, dword [ebp + 0x90]
push eax
call fcn.00405420
add esp, 0x14
mov dword [ebp + 0x90], edi
push 0x41b748
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
mov eax, dword [ecx*4 + 0x41b0c4]
test eax, eax
je 0x402246
mov dword [esp + 0x18], 0
push 0x41b868
call fcn.004010d0
lea edx, [eax*8]
add esp, 4
sub edx, eax
mov eax, dword [edx*4 + 0x41b0c4]
test eax, eax
je 0x40226f
mov dword [esp + 0x18], 1
push 0x41b85c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x4022a5
mov eax, dword [ecx + 0x41b0bc]
push eax
call fcn.0040f63d
add esp, 4
mov ebx, eax
jmp 0x4022a9
mov ebx, dword [esp + 0x28]
push 0x41b63c
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x4022f6
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xbc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x41b654
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x402343
mov edi, dword [ecx + 0x41b0bc]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xbc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x41b5d4
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x40237c
mov ecx, dword [ecx + 0x41b0bc]
push ecx
call fcn.0040f63d
mov edi, eax
add esp, 4
add edi, 5
jmp 0x402380
mov edi, dword [esp + 0x20]
push 0x41b7c0
call fcn.004010d0
lea edx, [eax*8]
add esp, 4
sub edx, eax
mov eax, dword [edx*4 + 0x41b0c4]
test eax, eax
je 0x4023b8
mov eax, dword [ebp + 0x98]
push 0x41b994
mov ecx, dword [eax]
push ecx
push eax
call fcn.00405850
add esp, 0xc
push 0x41b664
call fcn.004010d0
lea edx, [eax*8]
add esp, 4
sub edx, eax
mov eax, dword [edx*4 + 0x41b0c4]
test eax, eax
je 0x4023f0
mov eax, dword [ebp + 0x98]
push 0x41b988
mov ecx, dword [eax]
push ecx
push eax
call fcn.00405850
add esp, 0xc
push 0x41b6ac
call fcn.004010d0
lea edx, [eax*8]
add esp, 4
sub edx, eax
mov eax, dword [edx*4 + 0x41b0c4]
test eax, eax
je 0x402428
mov eax, dword [ebp + 0x98]
push 0x41b984
mov ecx, dword [eax]
push ecx
push eax
call fcn.00405850
add esp, 0xc
push 0x41b8a4
call fcn.004010d0
lea ecx, [eax*8]
add esp, 4
sub ecx, eax
shl ecx, 2
mov eax, dword [ecx + 0x41b0c4]
test eax, eax
je 0x402488
mov eax, dword [ecx + 0x41b0bc]
mov esi, 0x41b978
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40247a
test cl, cl
je 0x402476
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40247a
add eax, 2
add esi, 2
test cl, cl
jne 0x402456
xor eax, eax
jmp 0x40247f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov esi, 1
je 0x40248c
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ebx
push eax
push ebp
call fcn.00401610
mov al, byte [esp + 0xc8]
add esp, 0xc
test al, al
je 0x4024b6
lea ecx, [esp + 0xbc]
push ecx
call fcn.004053f0
add esp, 4
lea edx, [esp + 0x2c]
push edx
call fcn.00401040
add esp, 4
lea eax, [esp + 0x3c]
mov edx, dword [esp + 0x2c]
push eax
push edi
mov eax, dword [esp + 0x38]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x4c]
mov dword [ecx + 4], eax
mov ax, word [esp + 0x50]
mov dword [ecx + 8], edx
mov dl, byte [esp + 0x52]
mov word [ecx + 0xc], ax
xor eax, eax
test esi, esi
mov byte [ecx + 0xe], dl
mov cl, byte [esp + 0x254]
setne al
neg cl
sbb ecx, ecx
push eax
and ecx, 2
lea edx, [esp + 0x258]
push ecx
push edx
push ebp
push 0x4205a0
call fcn.004042d0
add esp, 0x2c
cmp eax, 0xffffffff
jne 0x402530
push 0x41b960
call fcn.004010a0
jmp 0x402541
mov cl, byte [esp + 0x23c]
test cl, cl
je 0x402544
push eax
call fcn.00404b40
add esp, 4
call fcn.00403720
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x62c
ret