Function at 0x401000
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push esi
push edi
mov dword [ebp - 0x2c], 0x36d4
mov dword [ebp - 0x28], 0x16b68
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x24], 0
movzx eax, word [0x431e44]
imul eax, dword [0x431e40]
sub eax, dword [ebp + 8]
mov word [0x431e44], ax
mov cl, byte [0x431e23]
mov byte [ebp - 0x30], cl
cmp byte [ebp - 0x30], 3
je 0x401058
cmp byte [ebp - 0x30], 0x1e
je 0x40106e
cmp byte [ebp - 0x30], 0xcc
je 0x401084
jmp 0x401096
movzx edx, byte [0x431e26]
imul edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x2c]
mov byte [0x431e26], dl
jmp 0x4010ac
movzx eax, byte [0x431e26]
imul eax, eax, 0x100be
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x4010ac
movzx ecx, byte [0x431e26]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
jmp 0x4010ac
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
lea ecx, [eax + edx + 5]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
add edx, 0x41
mov dword [ebp - 0x2c], edx
cmp dword [0x431e48], 0x73c55ce7
jne 0x4010c7
cmp dword [0x431e4c], 0
jne 0x4010c7
cld
jl 0x401142
fnop
mov dword [0x445b08], 0x434f98
movzx eax, word [0x431e44]
imul eax, dword [0x431e40]
sub eax, dword [ebp - 0x2c]
mov word [0x431e44], ax
mov ecx, dword [0x431e40]
push ecx
call fcn.00421230
add esp, 4
mov dword [ebp - 0x28], eax
movzx edx, byte [0x431e13]
cmp edx, 0x1476
jne 0x401139
movzx eax, byte [0x431e17]
movzx ecx, byte [0x431e26]
add ecx, eax
mov byte [0x431e26], cl
movzx edx, byte [0x431e26]
imul edx, dword [ebp - 0x2c]
movzx eax, byte [0x431e26]
sub edx, eax
mov byte [0x431e26], dl
mov ecx, dword [ebp - 0x2c]
add ecx, 0x41
movzx edx, byte [0x431e26]
sub ecx, edx
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], 0x429888
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x100be
movzx ecx, word [0x431e44]
imul eax, ecx
mov word [0x431e44], ax
movzx edx, byte [0x431e1f]
movzx eax, byte [0x431e26]
cmp edx, eax
jl 0x4011bd
push ds
inc ebx
add byte [ebx], ch
retf 0x4d03
mov ecx, dword [ebp - 0x28]
imul ecx, ecx, 0x100be
movzx edx, byte [0x431e26]
imul ecx, edx
mov byte [0x431e26], cl
movzx eax, byte [0x431e1a]
add eax, dword [ebp - 0x28]
mov byte [0x431e1a], al
mov ecx, dword [ebp - 0x28]
sub ecx, 0x5d
movzx edx, byte [0x431e26]
sub ecx, edx
mov dword [0x431e40], ecx
push 0x3405
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [0x445b08]
push ecx
call fcn.00423e40
add esp, 0xc
movzx edx, word [0x431e44]
mov eax, dword [ebp - 0x2c]
lea ecx, [edx + eax + 5]
mov dword [0x431e40], ecx
mov edx, dword [0x431e40]
push edx
call fcn.00421570
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], 2
jmp 0x40120d
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 7
jge 0x40124d
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x431e10]
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, 2
xor ecx, ecx
sub eax, dword [0x431e48]
sbb ecx, dword [0x431e4c]
mov byte [0x431e26], al
movzx edx, byte [0x431e11]
cmp dword [ebp - 0x2c], edx
jne 0x40124b
jmp 0x40124d
jmp 0x401204
movzx eax, byte [0x431e26]
mov ecx, dword [ebp - 0x2c]
lea edx, [ecx + eax + 5]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], 0x879a2f
movzx eax, byte [0x431e1f]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jl 0x4012b5
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x100be
movzx eax, byte [0x431e26]
imul edx, eax
mov byte [0x431e26], dl
movzx ecx, byte [0x431e1a]
add ecx, dword [ebp - 0x28]
mov byte [0x431e1a], cl
mov edx, dword [ebp - 0x28]
sub edx, 0x5d
movzx eax, byte [0x431e26]
sub edx, eax
mov dword [0x431e40], edx
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x100be
movzx edx, word [0x431e44]
imul ecx, edx
mov word [0x431e44], cx
movzx eax, byte [0x431e1f]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jl 0x40134e
push 0
push 0x100be
mov edx, dword [0x431e4c]
push edx
mov eax, dword [0x431e48]
push eax
call fcn.00410d30
mov ecx, eax
mov esi, edx
movzx eax, byte [0x431e26]
cdq
push edx
push eax
push esi
push ecx
call fcn.00410d30
mov byte [0x431e26], al
movzx eax, byte [0x431e1a]
cdq
add eax, dword [0x431e48]
adc edx, dword [0x431e4c]
mov byte [0x431e1a], al
mov ecx, dword [0x431e48]
sub ecx, 0x5d
mov esi, dword [0x431e4c]
sbb esi, 0
movzx eax, byte [0x431e26]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x2c], ecx
mov edx, dword [0x431e40]
push edx
call fcn.00421570
add esp, 4
mov dword [ebp - 0x28], eax
movzx eax, byte [0x431e26]
imul eax, eax, 0x100be
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xc], 0x4aa
mov ecx, dword [0x431e48]
sub ecx, 0x3b
mov edx, dword [0x431e4c]
sbb edx, 0
mov eax, dword [ebp - 0xc]
xor esi, esi
add ecx, eax
adc edx, esi
mov word [0x431e44], cx
mov eax, 0x32c8
xor edx, edx
div dword [ebp - 0xc]
mov dword [ebp - 8], eax
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx + 5]
mov dword [0x431e40], eax
mov ecx, dword [0x431e40]
add ecx, 2
sub ecx, dword [ebp - 0x2c]
mov word [0x431e44], cx
movzx edx, byte [0x431e11]
movzx eax, byte [0x431e13]
add edx, eax
cmp edx, 0x217
jne 0x401419
movzx ecx, byte [0x431e26]
movzx edx, byte [0x431e26]
lea eax, [ecx + edx + 5]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 2
xor edx, edx
sub ecx, dword [0x431e48]
sbb edx, dword [0x431e4c]
mov byte [0x431e26], cl
jmp 0x40146d
mov ecx, dword [0x431e48]
sub ecx, 0x2111
mov esi, dword [0x431e4c]
sbb esi, 0
movzx eax, byte [0x431e26]
cdq
sub ecx, eax
sbb esi, edx
movzx eax, byte [0x431e17]
cdq
add ecx, eax
adc esi, edx
movzx eax, byte [0x431e17]
cdq
add eax, ecx
adc edx, esi
mov byte [0x431e17], al
movzx edx, byte [0x431e26]
sub edx, 0x5d
movzx eax, byte [0x431e26]
sub edx, eax
mov dword [ebp - 0x2c], edx
movzx ecx, byte [0x431e26]
sub ecx, 0x2111
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x18], 0xf
movzx edx, word [0x431e44]
mov eax, dword [ebp - 0x2c]
lea ecx, [edx + eax + 5]
xor edx, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], edx
mov dword [ebp - 0x20], 0x8e
mov eax, dword [ebp - 0x2c]
sub eax, 0x2111
movzx ecx, word [0x431e44]
sub eax, ecx
xor edx, edx
add eax, dword [0x431e48]
adc edx, dword [0x431e4c]
add eax, dword [0x431e48]
mov ecx, dword [0x431e4c]
adc ecx, edx
mov dword [0x431e48], eax
mov dword [0x431e4c], ecx
mov dl, byte [0x431e23]
mov byte [ebp - 0x34], dl
cmp byte [ebp - 0x34], 3
je 0x401502
cmp byte [ebp - 0x34], 0x1e
je 0x40153d
cmp byte [ebp - 0x34], 0xcc
je 0x401569
jmp 0x40158b
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov edx, dword [0x431e4c]
push edx
mov edx, dword [0x431e48]
push edx
push ecx
push eax
call fcn.00410d30
mov ecx, eax
mov esi, edx
movzx eax, byte [0x431e26]
cdq
sub ecx, eax
sbb esi, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], esi
jmp 0x4015bd
push 0
push 0x100be
mov edx, dword [0x431e4c]
push edx
mov eax, dword [0x431e48]
push eax
call fcn.00410d30
mov ecx, dword [ebp - 0x2c]
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.00410d30
mov dword [ebp - 0x2c], eax
jmp 0x4015bd
mov edx, dword [0x431e48]
sub edx, 0x5d
mov eax, dword [0x431e4c]
sbb eax, 0
mov ecx, dword [ebp - 0x2c]
xor esi, esi
sub edx, ecx
sbb eax, esi
mov byte [0x431e26], dl
jmp 0x4015bd
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x2c]
lea ecx, [edx + eax + 5]
mov byte [0x431e26], cl
mov edx, dword [ebp - 0x2c]
add edx, 0x41
movzx eax, byte [0x431e26]
sub edx, eax
movzx ecx, byte [0x431e26]
add ecx, edx
mov byte [0x431e26], cl
mov edx, dword [ebp - 0x2c]
add edx, 0x41
movzx eax, byte [0x431e26]
sub edx, eax
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x10], 0x8c
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x100be
imul ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
movzx edx, byte [0x431e1f]
movzx eax, byte [0x431e26]
cmp edx, eax
jl 0x40163d
mov ecx, dword [ebp - 0x28]
imul ecx, ecx, 0x100be
movzx edx, byte [0x431e26]
imul ecx, edx
mov byte [0x431e26], cl
movzx eax, byte [0x431e1a]
add eax, dword [ebp - 0x28]
mov byte [0x431e1a], al
mov ecx, dword [ebp - 0x28]
sub ecx, 0x5d
movzx edx, byte [0x431e26]
sub ecx, edx
mov word [0x431e44], cx
mov eax, 1
test eax, eax
je 0x401f11
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x2111
movzx edx, word [0x431e44]
sub ecx, edx
add ecx, dword [0x431e40]
add ecx, dword [0x431e40]
mov dword [0x431e40], ecx
movzx eax, byte [0x431e1f]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jl 0x4016ed
push 0
push 0x100be
mov edx, dword [0x431e4c]
push edx
mov eax, dword [0x431e48]
push eax
call fcn.00410d30
mov ecx, eax
mov esi, edx
movzx eax, byte [0x431e26]
cdq
push edx
push eax
push esi
push ecx
call fcn.00410d30
mov byte [0x431e26], al
movzx eax, byte [0x431e1a]
cdq
add eax, dword [0x431e48]
adc edx, dword [0x431e4c]
mov byte [0x431e1a], al
mov ecx, dword [0x431e48]
sub ecx, 0x5d
mov esi, dword [0x431e4c]
sbb esi, 0
movzx eax, byte [0x431e26]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x2c], ecx
movzx edx, byte [0x431e26]
sub edx, 0x2111
sub edx, dword [ebp - 0x2c]
add edx, dword [0x431e40]
add edx, dword [0x431e40]
mov dword [0x431e40], edx
movzx eax, byte [0x431e1d]
cmp eax, dword [ebp - 0x28]
ja 0x401770
mov cl, byte [0x431e26]
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x28]
sub edx, 0x5d
movzx eax, byte [0x431e26]
sub edx, eax
mov word [0x431e44], dx
mov ecx, dword [ebp - 0x28]
sub ecx, 0x5d
movzx edx, byte [0x431e26]
sub ecx, edx
mov word [0x431e44], cx
movzx eax, byte [0x431e26]
imul eax, eax, 0x54
add eax, dword [ebp - 0x28]
movzx ecx, word [0x431e44]
sub ecx, eax
mov word [0x431e44], cx
xor edx, edx
cmp dword [ebp - 0x28], 0
sete dl
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0
je 0x401858
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x100be
movzx ecx, word [0x431e44]
imul eax, ecx
mov word [0x431e44], ax
movzx edx, byte [0x431e11]
movzx eax, byte [0x431e13]
add edx, eax
cmp edx, 0x217
jne 0x4017fb
mov ecx, dword [0x431e48]
add ecx, 5
mov edx, dword [0x431e4c]
adc edx, 0
add ecx, dword [0x431e48]
adc edx, dword [0x431e4c]
mov dword [0x431e40], ecx
mov eax, dword [0x431e40]
add eax, 2
movzx ecx, byte [0x431e26]
sub eax, ecx
xor edx, edx
mov dword [0x431e48], eax
mov dword [0x431e4c], edx
jmp 0x401858
movzx eax, byte [0x431e26]
sub eax, 0x2111
cdq
mov ecx, eax
mov esi, edx
sub ecx, dword [0x431e48]
sbb esi, dword [0x431e4c]
movzx eax, byte [0x431e17]
cdq
add ecx, eax
adc esi, edx
movzx eax, byte [0x431e17]
cdq
add eax, ecx
adc edx, esi
mov byte [0x431e17], al
mov edx, dword [0x431e48]
sub edx, 0x5d
mov eax, dword [0x431e4c]
sbb eax, 0
sub edx, dword [0x431e48]
sbb eax, dword [0x431e4c]
mov dword [0x431e40], edx
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx - 0x3b]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 0x41
movzx edx, byte [0x431e26]
sub ecx, edx
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
movzx eax, byte [0x431e11]
movzx ecx, byte [0x431e13]
add eax, ecx
cmp eax, 0x217
jne 0x4018c2
movzx edx, word [0x431e44]
movzx eax, word [0x431e44]
lea ecx, [edx + eax + 5]
mov dword [0x431e40], ecx
mov edx, dword [0x431e40]
add edx, 2
sub edx, dword [ebp - 0x2c]
mov word [0x431e44], dx
jmp 0x401904
mov eax, dword [ebp - 0x2c]
sub eax, 0x2111
movzx ecx, word [0x431e44]
sub eax, ecx
movzx edx, byte [0x431e17]
add eax, edx
movzx ecx, byte [0x431e17]
add ecx, eax
mov byte [0x431e17], cl
movzx edx, word [0x431e44]
sub edx, 0x5d
movzx eax, word [0x431e44]
sub edx, eax
mov dword [0x431e40], edx
xor ecx, ecx
cmp dword [ebp - 0x2c], 0
sete cl
mov dword [0x431e40], ecx
cmp dword [0x431e40], 0
je 0x4019da
movzx edx, word [0x431e44]
imul edx, edx, 0x54
add edx, dword [ebp - 0x2c]
mov eax, dword [0x431e40]
sub eax, edx
mov dword [0x431e40], eax
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx + 5]
mov dword [ebp - 0x2c], eax
movzx ecx, byte [0x431e1d]
movzx edx, byte [0x431e26]
cmp ecx, edx
jg 0x4019d5
mov al, byte [0x431e48]
mov byte [0x431e17], al
movzx eax, byte [0x431e26]
sub eax, 0x5d
cdq
sub eax, dword [0x431e48]
sbb edx, dword [0x431e4c]
mov dword [0x431e40], eax
movzx eax, byte [0x431e26]
sub eax, 0x5d
cdq
sub eax, dword [0x431e48]
sbb edx, dword [0x431e4c]
mov dword [0x431e40], eax
movzx eax, byte [0x431e26]
cdq
mov esi, eax
mov edi, edx
push 0
push 0x54
mov ecx, dword [0x431e4c]
push ecx
mov edx, dword [0x431e48]
push edx
call fcn.00410d30
add esi, eax
adc edi, edx
mov eax, dword [0x431e40]
xor ecx, ecx
sub eax, esi
sbb ecx, edi
mov dword [0x431e40], eax
jmp 0x401a6f
mov dl, byte [0x431e23]
mov byte [ebp - 0x38], dl
cmp byte [ebp - 0x38], 3
je 0x4019f7
cmp byte [ebp - 0x38], 0x1e
je 0x401a0e
cmp byte [ebp - 0x38], 0xcc
je 0x401a26
jmp 0x401a39
mov eax, dword [0x431e40]
imul eax, dword [ebp - 0x28]
movzx ecx, byte [0x431e26]
sub eax, ecx
mov dword [ebp - 0x28], eax
jmp 0x401a6f
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x100be
imul edx, dword [0x431e40]
mov dword [0x431e40], edx
jmp 0x401a6f
mov eax, dword [ebp - 0x28]
sub eax, 0x5d
sub eax, dword [0x431e40]
mov byte [0x431e26], al
jmp 0x401a6f
movzx ecx, byte [0x431e26]
mov edx, dword [0x431e40]
lea eax, [ecx + edx + 5]
mov byte [0x431e26], al
mov ecx, dword [0x431e40]
add ecx, 0x41
movzx edx, byte [0x431e26]
sub ecx, edx
movzx eax, byte [0x431e26]
add eax, ecx
mov byte [0x431e26], al
movzx ecx, byte [0x431e11]
movzx edx, byte [0x431e13]
add ecx, edx
cmp ecx, 0x217
jne 0x401aad
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
lea edx, [ecx + eax + 5]
mov dword [0x431e40], edx
mov eax, dword [0x431e40]
add eax, 2
movzx ecx, byte [0x431e26]
sub eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x401ae4
movzx edx, byte [0x431e26]
sub edx, 0x2111
sub edx, dword [ebp - 0x2c]
movzx eax, byte [0x431e17]
add edx, eax
movzx ecx, byte [0x431e17]
add ecx, edx
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x2c]
sub edx, 0x5d
sub edx, dword [ebp - 0x2c]
mov dword [0x431e40], edx
cmp dword [ebp - 0x24], 1
jae 0x401c54
movzx eax, byte [0x431e1d]
cmp eax, dword [ebp - 0x2c]
ja 0x401b4b
mov cl, byte [0x431e44]
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x2c]
sub edx, 0x5d
movzx eax, word [0x431e44]
sub edx, eax
mov dword [0x431e40], edx
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x5d
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [0x431e40], ecx
movzx eax, word [0x431e44]
imul eax, eax, 0x54
add eax, dword [ebp - 0x2c]
mov ecx, dword [0x431e40]
sub ecx, eax
mov dword [0x431e40], ecx
movzx edx, word [0x431e44]
imul edx, edx, 0x54
add edx, dword [ebp - 0x2c]
mov eax, dword [0x431e40]
sub eax, edx
mov dword [0x431e40], eax
mov cl, byte [0x431e23]
mov byte [ebp - 0x3c], cl
cmp byte [ebp - 0x3c], 3
je 0x401b84
cmp byte [ebp - 0x3c], 0x1e
je 0x401bbf
cmp byte [ebp - 0x3c], 0xcc
je 0x401beb
jmp 0x401c0d
mov edx, dword [ebp - 0x2c]
xor eax, eax
mov ecx, dword [0x431e4c]
push ecx
mov ecx, dword [0x431e48]
push ecx
push eax
push edx
call fcn.00410d30
mov ecx, eax
mov esi, edx
movzx eax, byte [0x431e26]
cdq
sub ecx, eax
sbb esi, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], esi
jmp 0x401c3f
push 0
push 0x100be
mov edx, dword [0x431e4c]
push edx
mov eax, dword [0x431e48]
push eax
call fcn.00410d30
mov ecx, dword [ebp - 0x2c]
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.00410d30
mov dword [ebp - 0x2c], eax
jmp 0x401c3f
mov edx, dword [0x431e48]
sub edx, 0x5d
mov eax, dword [0x431e4c]
sbb eax, 0
mov ecx, dword [ebp - 0x2c]
xor esi, esi
sub edx, ecx
sbb eax, esi
mov byte [0x431e26], dl
jmp 0x401c3f
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x2c]
lea ecx, [edx + eax + 5]
mov byte [0x431e26], cl
mov edx, dword [ebp - 0x2c]
add edx, 0x41
movzx eax, byte [0x431e26]
sub edx, eax
movzx ecx, byte [0x431e26]
add ecx, edx
mov byte [0x431e26], cl
movzx edx, byte [0x431e26]
sub edx, 0x5d
sub edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
jmp 0x401f11
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x28]
jbe 0x401ccf
mov ecx, dword [ebp - 0x2c]
xor edx, edx
mov eax, dword [0x431e4c]
push eax
mov eax, dword [0x431e48]
push eax
push edx
push ecx
call fcn.00410d30
mov ecx, eax
mov esi, edx
movzx eax, byte [0x431e26]
cdq
sub ecx, eax
sbb esi, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], esi
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x54
add edx, eax
mov ecx, dword [ebp - 0x2c]
sub ecx, edx
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x54
xor eax, eax
add edx, dword [0x431e48]
mov ecx, dword [0x431e4c]
adc ecx, eax
mov eax, dword [0x431e40]
xor esi, esi
sub eax, edx
sbb esi, ecx
mov dword [0x431e40], eax
jmp 0x401cf4
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x54
add ecx, dword [ebp - 0x18]
xor edx, edx
mov eax, dword [0x431e48]
sub eax, ecx
mov ecx, dword [0x431e4c]
sbb ecx, edx
mov dword [0x431e48], eax
mov dword [0x431e4c], ecx
call fcn.00421690
movzx edx, byte [0x431e1f]
movzx eax, word [0x431e44]
cmp edx, eax
jl 0x401d49
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x100be
movzx edx, word [0x431e44]
imul ecx, edx
mov word [0x431e44], cx
movzx eax, byte [0x431e1a]
add eax, dword [ebp - 0x2c]
mov byte [0x431e1a], al
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x5d
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [0x431e40], ecx
cmp dword [0x431e40], 0x15194
jbe 0x401d77
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00421230
add esp, 4
mov byte [0x431e26], al
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx - 0x3b]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x54
xor eax, eax
add edx, dword [0x431e48]
mov ecx, dword [0x431e4c]
adc ecx, eax
mov eax, dword [0x431e40]
xor esi, esi
sub eax, edx
sbb esi, ecx
mov dword [0x431e40], eax
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x100be
imul ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ecx
mov edx, dword [0x431e40]
cmp edx, dword [ebp - 0x2c]
jae 0x401e6d
movzx eax, byte [0x431e26]
mov ecx, dword [ebp - 0x2c]
lea edx, [ecx + eax + 5]
mov dword [ebp - 0x2c], edx
movzx eax, byte [0x431e1d]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jg 0x401e68
mov dl, byte [0x431e48]
mov byte [0x431e17], dl
movzx eax, byte [0x431e26]
sub eax, 0x5d
cdq
sub eax, dword [0x431e48]
sbb edx, dword [0x431e4c]
mov dword [0x431e40], eax
movzx eax, byte [0x431e26]
sub eax, 0x5d
cdq
sub eax, dword [0x431e48]
sbb edx, dword [0x431e4c]
mov dword [0x431e40], eax
movzx eax, byte [0x431e26]
cdq
mov esi, eax
mov edi, edx
push 0
push 0x54
mov eax, dword [0x431e4c]
push eax
mov ecx, dword [0x431e48]
push ecx
call fcn.00410d30
add esi, eax
adc edi, edx
mov edx, dword [0x431e40]
xor eax, eax
sub edx, esi
sbb eax, edi
mov dword [0x431e40], edx
jmp 0x401ef1
movzx ecx, byte [0x431e11]
movzx edx, byte [0x431e13]
add ecx, edx
cmp ecx, 0x217
jne 0x401eaf
movzx eax, byte [0x431e26]
movzx ecx, byte [0x431e26]
lea edx, [eax + ecx + 5]
mov dword [0x431e40], edx
mov eax, dword [0x431e40]
add eax, 2
sub eax, dword [ebp - 0x28]
mov byte [0x431e26], al
jmp 0x401ef1
mov ecx, dword [ebp - 0x28]
sub ecx, 0x2111
movzx edx, byte [0x431e26]
sub ecx, edx
movzx eax, byte [0x431e17]
add ecx, eax
movzx edx, byte [0x431e17]
add edx, ecx
mov byte [0x431e17], dl
movzx eax, byte [0x431e26]
sub eax, 0x5d
movzx ecx, byte [0x431e26]
sub eax, ecx
mov dword [0x431e40], eax
mov edx, dword [ebp - 0x2c]
add edx, 0x41
movzx eax, byte [0x431e26]
sub edx, eax
add edx, dword [0x431e40]
mov dword [0x431e40], edx
jmp 0x40163d
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x54
add ecx, edx
mov eax, dword [0x431e40]
sub eax, ecx
mov dword [0x431e40], eax
movzx ecx, byte [0x431e11]
movzx edx, byte [0x431e13]
add ecx, edx
cmp ecx, 0x217
jne 0x401f6a
movzx eax, word [0x431e44]
movzx ecx, word [0x431e44]
lea edx, [eax + ecx + 5]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
add eax, 2
sub eax, dword [ebp - 0x28]
mov word [0x431e44], ax
jmp 0x401faa
mov ecx, dword [ebp - 0x28]
sub ecx, 0x2111
movzx edx, word [0x431e44]
sub ecx, edx
movzx eax, byte [0x431e17]
add ecx, eax
movzx edx, byte [0x431e17]
add edx, ecx
mov byte [0x431e17], dl
movzx eax, word [0x431e44]
sub eax, 0x5d
movzx ecx, word [0x431e44]
sub eax, ecx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], 0x879a2f
movzx edx, byte [0x431e2b]
cmp edx, 0x1476
jne 0x401ff2
movzx eax, byte [0x431e2f]
movzx ecx, word [0x431e44]
add ecx, eax
mov word [0x431e44], cx
movzx edx, word [0x431e44]
imul edx, dword [ebp - 0x2c]
movzx eax, word [0x431e44]
sub edx, eax
mov word [0x431e44], dx
movzx ecx, byte [0x431e1f]
movzx edx, word [0x431e44]
cmp ecx, edx
jl 0x40203f
mov eax, dword [ebp - 0x28]
imul eax, eax, 0x100be
movzx ecx, word [0x431e44]
imul eax, ecx
mov word [0x431e44], ax
movzx edx, byte [0x431e1a]
add edx, dword [ebp - 0x28]
mov byte [0x431e1a], dl
mov eax, dword [ebp - 0x28]
sub eax, 0x5d
movzx ecx, word [0x431e44]
sub eax, ecx
mov dword [ebp - 0x2c], eax
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x28]
imul eax, eax, 0x54
add edx, eax
mov ecx, dword [0x431e40]
sub ecx, edx
mov dword [0x431e40], ecx
movzx edx, byte [0x431e37]
movzx eax, word [0x431e44]
cmp edx, eax
jl 0x4020ac
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x100be
movzx edx, word [0x431e44]
imul ecx, edx
mov word [0x431e44], cx
movzx eax, byte [0x431e32]
add eax, dword [ebp - 0x2c]
mov byte [0x431e32], al
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x5d
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [0x431e40], ecx
mov eax, 1
test eax, eax
je 0x402eca
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x100be
imul ecx, dword [ebp - 0x28]
mov dword [ebp - 0x28], ecx
movzx edx, byte [0x431e1d]
cmp edx, dword [ebp - 0x2c]
ja 0x402125
mov al, byte [0x431e44]
mov byte [0x431e17], al
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x5d
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [0x431e40], ecx
mov eax, dword [ebp - 0x2c]
sub eax, 0x5d
movzx ecx, word [0x431e44]
sub eax, ecx
mov dword [0x431e40], eax
movzx edx, word [0x431e44]
imul edx, edx, 0x54
add edx, dword [ebp - 0x2c]
mov eax, dword [0x431e40]
sub eax, edx
mov dword [0x431e40], eax
cmp dword [0x431e40], 0x17712
jbe 0x402153
movzx ecx, byte [0x431e26]
sub ecx, 0x2111
sub ecx, dword [ebp - 0x28]
add ecx, dword [0x431e40]
add ecx, dword [0x431e40]
mov dword [0x431e40], ecx
mov dl, byte [0x431e23]
mov byte [ebp - 0x40], dl
cmp byte [ebp - 0x40], 3
je 0x402170
cmp byte [ebp - 0x40], 0x1e
je 0x402188
cmp byte [ebp - 0x40], 0xcc
je 0x4021a4
jmp 0x4021b9
movzx eax, byte [0x431e26]
imul eax, dword [0x431e40]
sub eax, dword [ebp - 0x2c]
mov byte [0x431e26], al
jmp 0x4021d3
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x100be
imul ecx, dword [0x431e40]
mov dword [0x431e40], ecx
jmp 0x4021d3
movzx edx, byte [0x431e26]
sub edx, 0x5d
sub edx, dword [0x431e40]
mov dword [ebp - 0x2c], edx
jmp 0x4021d3
mov eax, dword [0x431e40]
mov ecx, dword [ebp - 0x2c]
lea edx, [ecx + eax + 5]
mov dword [ebp - 0x2c], edx
mov eax, dword [0x431e40]
add eax, 0x41
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x24], 0
jne 0x40229e
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 5]
mov dword [0x431e40], eax
call fcn.00424080
mov cl, byte [0x431e23]
mov byte [ebp - 0x44], cl
cmp byte [ebp - 0x44], 3
je 0x402212
cmp byte [ebp - 0x44], 0x1e
je 0x40222b
cmp byte [ebp - 0x44], 0xcc
je 0x402246
jmp 0x40225d
movzx edx, byte [0x431e26]
imul edx, dword [ebp - 0x2c]
movzx eax, word [0x431e44]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x402299
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x100be
movzx edx, byte [0x431e26]
imul ecx, edx
mov byte [0x431e26], cl
jmp 0x402299
mov eax, dword [ebp - 0x2c]
sub eax, 0x5d
movzx ecx, byte [0x431e26]
sub eax, ecx
mov word [0x431e44], ax
jmp 0x402299
movzx edx, word [0x431e44]
movzx eax, byte [0x431e26]
lea ecx, [edx + eax + 5]
mov word [0x431e44], cx
movzx edx, byte [0x431e26]
add edx, 0x41
movzx eax, word [0x431e44]
sub edx, eax
movzx ecx, word [0x431e44]
add ecx, edx
mov word [0x431e44], cx
jmp 0x402eca
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x28]
jae 0x402357
movzx eax, byte [0x431e26]
imul eax, eax, 0x100be
imul eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x3894e2
jne 0x402333
movzx ecx, byte [0x431e1f]
cmp ecx, dword [ebp - 0x28]
jb 0x402333
push 0
push 0x100be
mov edx, dword [0x431e4c]
push edx
mov eax, dword [0x431e48]
push eax
call fcn.00410d30
mov ecx, dword [ebp - 0x28]
xor esi, esi
push esi
push ecx
push edx
push eax
call fcn.00410d30
mov dword [ebp - 0x28], eax
movzx eax, byte [0x431e1a]
cdq
add eax, dword [0x431e48]
adc edx, dword [0x431e4c]
mov byte [0x431e1a], al
mov edx, dword [0x431e48]
sub edx, 0x5d
mov eax, dword [0x431e4c]
sbb eax, 0
mov ecx, dword [ebp - 0x28]
xor esi, esi
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x2c], edx
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x54
xor eax, eax
add edx, dword [0x431e48]
mov ecx, dword [0x431e4c]
adc ecx, eax
mov eax, dword [ebp - 0x2c]
xor esi, esi
sub eax, edx
sbb esi, ecx
mov dword [ebp - 0x2c], eax
jmp 0x402375
mov ecx, dword [0x431e48]
add ecx, 2
mov edx, dword [0x431e4c]
adc edx, 0
mov eax, dword [ebp - 0x18]
xor esi, esi
sub ecx, eax
sbb edx, esi
mov dword [ebp - 0x2c], ecx
mov ecx, dword [0x431e40]
add ecx, 2
movzx edx, byte [0x431e26]
sub ecx, edx
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x20], 3
jae 0x40254c
movzx eax, byte [0x431e26]
sub eax, 0x5d
sub eax, dword [ebp - 0x28]
mov dword [0x431e40], eax
mov cl, byte [0x431e23]
mov byte [ebp - 0x48], cl
cmp byte [ebp - 0x48], 3
je 0x4023c3
cmp byte [ebp - 0x48], 0x1e
je 0x4023db
cmp byte [ebp - 0x48], 0xcc
je 0x4023f3
jmp 0x402408
mov edx, dword [0x431e40]
imul edx, dword [ebp - 0x2c]
movzx eax, word [0x431e44]
sub edx, eax
mov dword [ebp - 0x2c], edx
jmp 0x402441
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x100be
imul ecx, dword [0x431e40]
mov dword [0x431e40], ecx
jmp 0x402441
mov edx, dword [ebp - 0x2c]
sub edx, 0x5d
sub edx, dword [0x431e40]
mov word [0x431e44], dx
jmp 0x402441
movzx eax, word [0x431e44]
mov ecx, dword [0x431e40]
lea edx, [eax + ecx + 5]
mov word [0x431e44], dx
mov eax, dword [0x431e40]
add eax, 0x41
movzx ecx, word [0x431e44]
sub eax, ecx
movzx edx, word [0x431e44]
add edx, eax
mov word [0x431e44], dx
cmp dword [ebp - 0x2c], 0xb8e3
jae 0x4024a6
movzx eax, byte [0x431e26]
mov ecx, dword [0x431e40]
lea edx, [ecx + eax - 0x3b]
mov dword [ebp - 0x28], edx
movzx eax, byte [0x431e1f]
cmp eax, dword [ebp - 0x2c]
jb 0x4024a6
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x100be
imul ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
movzx edx, byte [0x431e26]
movzx eax, byte [0x431e1a]
add eax, edx
mov byte [0x431e1a], al
movzx ecx, byte [0x431e26]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x2c]
mov dword [0x431e40], ecx
mov dl, byte [0x431e23]
mov byte [ebp - 0x4c], dl
cmp byte [ebp - 0x4c], 3
je 0x4024c3
cmp byte [ebp - 0x4c], 0x1e
je 0x4024db
cmp byte [ebp - 0x4c], 0xcc
je 0x4024f7
jmp 0x40250c
movzx eax, byte [0x431e26]
imul eax, dword [0x431e40]
sub eax, dword [ebp - 0x2c]
mov byte [0x431e26], al
jmp 0x402526
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x100be
imul ecx, dword [0x431e40]
mov dword [0x431e40], ecx
jmp 0x402526
movzx edx, byte [0x431e26]
sub edx, 0x5d
sub edx, dword [0x431e40]
mov dword [ebp - 0x2c], edx
jmp 0x402526
mov eax, dword [0x431e40]
mov ecx, dword [ebp - 0x2c]
lea edx, [ecx + eax + 5]
mov dword [ebp - 0x2c], edx
mov eax, dword [0x431e40]
add eax, 0x41
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x20]
sub ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [0x431e48]
add edx, 2
mov eax, dword [0x431e4c]
adc eax, 0
mov ecx, dword [ebp - 0x20]
xor esi, esi
sub edx, ecx
sbb eax, esi
mov dword [ebp - 0x28], edx
movzx edx, byte [0x431e26]
mov eax, dword [0x431e40]
lea ecx, [eax + edx - 0x3b]
mov dword [ebp - 0x28], ecx
movzx edx, byte [0x431e13]
cmp edx, 0x1476
jne 0x4025a3
movzx eax, byte [0x431e17]
movzx ecx, word [0x431e44]
add ecx, eax
mov word [0x431e44], cx
movzx edx, word [0x431e44]
imul edx, dword [0x431e40]
movzx eax, word [0x431e44]
sub edx, eax
mov word [0x431e44], dx
movzx ecx, byte [0x431e1f]
cmp ecx, dword [ebp - 0x2c]
jb 0x4025ec
movzx edx, byte [0x431e26]
imul edx, edx, 0x100be
imul edx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], edx
movzx eax, byte [0x431e26]
movzx ecx, byte [0x431e1a]
add ecx, eax
mov byte [0x431e1a], cl
movzx edx, byte [0x431e26]
sub edx, 0x5d
sub edx, dword [ebp - 0x2c]
mov dword [0x431e40], edx
cmp dword [ebp - 0x10], 4
jae 0x4026cb
movzx eax, byte [0x431e1d]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jg 0x402653
mov dl, byte [ebp - 0x2c]
mov byte [0x431e17], dl
movzx eax, byte [0x431e26]
sub eax, 0x5d
sub eax, dword [ebp - 0x2c]
mov dword [0x431e40], eax
movzx ecx, byte [0x431e26]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x2c]
mov dword [0x431e40], ecx
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x54
add edx, eax
mov ecx, dword [0x431e40]
sub ecx, edx
mov dword [0x431e40], ecx
movzx edx, byte [0x431e11]
movzx eax, byte [0x431e13]
add edx, eax
cmp edx, 0x217
jne 0x402693
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx + 5]
mov word [0x431e44], ax
movzx ecx, word [0x431e44]
add ecx, 2
movzx edx, byte [0x431e26]
sub ecx, edx
mov dword [ebp - 0x2c], ecx
jmp 0x4026c9
movzx eax, byte [0x431e26]
sub eax, 0x2111
sub eax, dword [ebp - 0x2c]
movzx ecx, byte [0x431e17]
add eax, ecx
movzx edx, byte [0x431e17]
add edx, eax
mov byte [0x431e17], dl
mov eax, dword [ebp - 0x2c]
sub eax, 0x5d
sub eax, dword [ebp - 0x2c]
mov word [0x431e44], ax
jmp 0x4026e4
movzx ecx, word [0x431e44]
add ecx, 0x41
sub ecx, dword [ebp - 0x2c]
add ecx, dword [0x431e40]
mov dword [0x431e40], ecx
mov edx, dword [ebp - 0x10]
sub edx, 0x5d
sub edx, dword [ebp - 0x28]
xor eax, eax
mov dword [0x431e48], edx
mov dword [0x431e4c], eax
cmp dword [ebp - 0x28], 0x1708e
jbe 0x402886
movzx ecx, byte [0x431e26]
sub ecx, 0x2111
sub ecx, dword [ebp - 0x28]
add ecx, dword [0x431e40]
add ecx, dword [0x431e40]
mov dword [0x431e40], ecx
mov edx, dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
mov ecx, dword [0x431e48]
cmp ecx, dword [ebp - 0x54]
jne 0x402811
mov edx, dword [0x431e4c]
cmp edx, dword [ebp - 0x50]
jne 0x402811
movzx eax, byte [0x431e1f]
movzx ecx, word [0x431e44]
cmp eax, ecx
jl 0x4027a3
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x100be
movzx eax, word [0x431e44]
imul edx, eax
mov word [0x431e44], dx
movzx ecx, byte [0x431e1a]
add ecx, dword [ebp - 0x2c]
mov byte [0x431e1a], cl
mov edx, dword [ebp - 0x2c]
sub edx, 0x5d
movzx eax, word [0x431e44]
sub edx, eax
mov dword [0x431e40], edx
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00421230
add esp, 4
mov dword [0x431e40], eax
movzx edx, byte [0x431e1d]
movzx eax, word [0x431e44]
cmp edx, eax
jg 0x402811
mov cl, byte [ebp - 0x2c]
mov byte [0x431e17], cl
movzx edx, word [0x431e44]
sub edx, 0x5d
sub edx, dword [ebp - 0x2c]
mov byte [0x431e26], dl
movzx eax, word [0x431e44]
sub eax, 0x5d
sub eax, dword [ebp - 0x2c]
mov byte [0x431e26], al
movzx ecx, word [0x431e44]
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x54
add ecx, edx
movzx eax, byte [0x431e26]
sub eax, ecx
mov byte [0x431e26], al
movzx ecx, byte [0x431e11]
movzx edx, byte [0x431e13]
add ecx, edx
cmp ecx, 0x217
jne 0x40284f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
lea edx, [ecx + eax + 5]
mov dword [0x431e40], edx
mov eax, dword [0x431e40]
add eax, 2
movzx ecx, byte [0x431e26]
sub eax, ecx
mov dword [ebp - 0x2c], eax
jmp 0x402886
movzx edx, byte [0x431e26]
sub edx, 0x2111
sub edx, dword [ebp - 0x2c]
movzx eax, byte [0x431e17]
add edx, eax
movzx ecx, byte [0x431e17]
add ecx, edx
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x2c]
sub edx, 0x5d
sub edx, dword [ebp - 0x2c]
mov dword [0x431e40], edx
cmp dword [ebp - 0x10], 0xb
jae 0x402a6a
movzx eax, byte [0x431e1d]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jg 0x4028ed
mov dl, byte [ebp - 0x28]
mov byte [0x431e17], dl
movzx eax, byte [0x431e26]
sub eax, 0x5d
sub eax, dword [ebp - 0x28]
mov dword [0x431e40], eax
movzx ecx, byte [0x431e26]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x28]
mov dword [0x431e40], ecx
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x28]
imul eax, eax, 0x54
add edx, eax
mov ecx, dword [0x431e40]
sub ecx, edx
mov dword [0x431e40], ecx
movzx edx, byte [0x431e1d]
cmp edx, dword [0x431e40]
ja 0x402970
mov al, byte [0x431e26]
mov byte [0x431e17], al
mov ecx, dword [0x431e40]
sub ecx, 0x5d
movzx edx, byte [0x431e26]
sub ecx, edx
xor eax, eax
mov dword [0x431e48], ecx
mov dword [0x431e4c], eax
mov ecx, dword [0x431e40]
sub ecx, 0x5d
movzx edx, byte [0x431e26]
sub ecx, edx
xor eax, eax
mov dword [0x431e48], ecx
mov dword [0x431e4c], eax
movzx ecx, byte [0x431e26]
imul ecx, ecx, 0x54
add ecx, dword [0x431e40]
xor edx, edx
mov eax, dword [0x431e48]
sub eax, ecx
mov ecx, dword [0x431e4c]
sbb ecx, edx
mov dword [0x431e48], eax
mov dword [0x431e4c], ecx
mov edx, dword [ebp - 0x10]
sub edx, 1
mov dword [ebp - 0x10], edx
movzx eax, byte [0x431e1d]
cmp eax, dword [ebp - 0x2c]
ja 0x4029d6
mov cl, byte [0x431e44]
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x2c]
sub edx, 0x5d
movzx eax, word [0x431e44]
sub edx, eax
mov dword [0x431e40], edx
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x5d
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [0x431e40], ecx
movzx eax, word [0x431e44]
imul eax, eax, 0x54
add eax, dword [ebp - 0x2c]
mov ecx, dword [0x431e40]
sub ecx, eax
mov dword [0x431e40], ecx
movzx edx, byte [0x431e13]
cmp edx, 0x1476
jne 0x402a02
movzx eax, byte [0x431e17]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x431e40]
imul ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
movzx edx, byte [0x431e1d]
cmp edx, dword [ebp - 0x10]
ja 0x402a6a
mov al, byte [ebp - 0x28]
mov byte [0x431e17], al
mov ecx, dword [ebp - 0x10]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x28]
xor edx, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], edx
mov eax, dword [ebp - 0x10]
sub eax, 0x5d
sub eax, dword [ebp - 0x28]
xor ecx, ecx
mov dword [0x431e48], eax
mov dword [0x431e4c], ecx
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x54
add edx, dword [ebp - 0x10]
xor eax, eax
mov ecx, dword [0x431e48]
sub ecx, edx
mov edx, dword [0x431e4c]
sbb edx, eax
mov dword [0x431e48], ecx
mov dword [0x431e4c], edx
movzx eax, byte [0x431e13]
cmp eax, 0x1476
jne 0x402aaa
movzx ecx, byte [0x431e17]
movzx edx, byte [0x431e26]
add edx, ecx
mov byte [0x431e26], dl
movzx eax, byte [0x431e26]
imul eax, dword [0x431e40]
movzx ecx, byte [0x431e26]
sub eax, ecx
mov byte [0x431e26], al
mov dl, byte [0x431e23]
mov byte [ebp - 0x58], dl
cmp byte [ebp - 0x58], 3
je 0x402ac7
cmp byte [ebp - 0x58], 0x1e
je 0x402ade
cmp byte [ebp - 0x58], 0xcc
je 0x402af6
jmp 0x402b09
mov eax, dword [0x431e40]
imul eax, dword [ebp - 0x28]
movzx ecx, byte [0x431e26]
sub eax, ecx
mov dword [ebp - 0x28], eax
jmp 0x402b3f
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x100be
imul edx, dword [0x431e40]
mov dword [0x431e40], edx
jmp 0x402b3f
mov eax, dword [ebp - 0x28]
sub eax, 0x5d
sub eax, dword [0x431e40]
mov byte [0x431e26], al
jmp 0x402b3f
movzx ecx, byte [0x431e26]
mov edx, dword [0x431e40]
lea eax, [ecx + edx + 5]
mov byte [0x431e26], al
mov ecx, dword [0x431e40]
add ecx, 0x41
movzx edx, byte [0x431e26]
sub ecx, edx
movzx eax, byte [0x431e26]
add eax, ecx
mov byte [0x431e26], al
movzx ecx, word [0x431e44]
cmp ecx, dword [ebp - 0x28]
jne 0x402b78
movzx edx, byte [0x431e13]
cmp edx, 0x1476
jne 0x402b78
movzx eax, byte [0x431e17]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
movzx ecx, byte [0x431e26]
imul ecx, dword [ebp - 0x2c]
sub ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
movzx edx, byte [0x431e11]
movzx eax, byte [0x431e13]
add edx, eax
cmp edx, 0x217
jne 0x402bb1
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 5]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 2
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [ebp - 0x28], ecx
jmp 0x402be4
movzx eax, word [0x431e44]
sub eax, 0x2111
sub eax, dword [ebp - 0x28]
movzx ecx, byte [0x431e17]
add eax, ecx
movzx edx, byte [0x431e17]
add edx, eax
mov byte [0x431e17], dl
mov eax, dword [ebp - 0x28]
sub eax, 0x5d
sub eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov cl, byte [0x431e23]
mov byte [ebp - 0x5c], cl
cmp byte [ebp - 0x5c], 3
je 0x402c01
cmp byte [ebp - 0x5c], 0x1e
je 0x402c1a
cmp byte [ebp - 0x5c], 0xcc
je 0x402c35
jmp 0x402c4a
movzx edx, byte [0x431e26]
imul edx, dword [0x431e40]
sub edx, dword [ebp - 0x2c]
mov byte [0x431e26], dl
jmp 0x402c66
movzx eax, byte [0x431e26]
imul eax, eax, 0x100be
imul eax, dword [0x431e40]
mov dword [0x431e40], eax
jmp 0x402c66
movzx ecx, byte [0x431e26]
sub ecx, 0x5d
sub ecx, dword [0x431e40]
mov dword [ebp - 0x2c], ecx
jmp 0x402c66
mov edx, dword [0x431e40]
mov eax, dword [ebp - 0x2c]
lea ecx, [eax + edx + 5]
mov dword [ebp - 0x2c], ecx
mov edx, dword [0x431e40]
add edx, 0x41
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
imul eax, dword [ebp - 0x2c]
movzx ecx, byte [0x431e26]
sub eax, ecx
mov dword [ebp - 0x2c], eax
movzx edx, byte [0x431e26]
mov eax, dword [ebp - 0x24]
lea ecx, [edx + eax - 0x3b]
xor edx, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], edx
call fcn.00421690
movzx eax, byte [0x431e13]
cmp eax, 0x1476
jne 0x402cd7
movzx ecx, byte [0x431e17]
movzx edx, byte [0x431e26]
add edx, ecx
mov byte [0x431e26], dl
movzx eax, byte [0x431e26]
imul eax, dword [ebp - 0x2c]
movzx ecx, byte [0x431e26]
sub eax, ecx
mov byte [0x431e26], al
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 8]
jae 0x402d50
movzx eax, byte [0x431e1d]
cmp eax, dword [ebp - 0x28]
ja 0x402d30
mov cl, byte [0x431e26]
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x28]
sub edx, 0x5d
movzx eax, byte [0x431e26]
sub edx, eax
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x28]
sub ecx, 0x5d
movzx edx, byte [0x431e26]
sub ecx, edx
mov dword [ebp - 0x2c], ecx
movzx eax, byte [0x431e26]
imul eax, eax, 0x54
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x431e40]
sub eax, 0x2111
sub eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
add ecx, 0x41
movzx edx, byte [0x431e26]
sub ecx, edx
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x24]
sub eax, 1
mov dword [ebp - 0x24], eax
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx - 0x3b]
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x431e48]
sub ecx, 0x3b
mov edx, dword [0x431e4c]
sbb edx, 0
mov eax, dword [ebp - 0x18]
xor esi, esi
add ecx, eax
adc edx, esi
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x18], 7
jae 0x402e52
mov ecx, dword [ebp - 0x18]
sub ecx, 1
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x2c]
mov eax, dword [0x431e40]
lea ecx, [eax + edx - 0x3b]
mov word [0x431e44], cx
movzx edx, byte [0x431e1d]
movzx eax, byte [0x431e26]
cmp edx, eax
jg 0x402e1e
mov cl, byte [ebp - 0x2c]
mov byte [0x431e17], cl
movzx edx, byte [0x431e26]
sub edx, 0x5d
sub edx, dword [ebp - 0x2c]
mov dword [0x431e40], edx
movzx eax, byte [0x431e26]
sub eax, 0x5d
sub eax, dword [ebp - 0x2c]
mov dword [0x431e40], eax
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x54
add ecx, edx
mov eax, dword [0x431e40]
sub eax, ecx
mov dword [0x431e40], eax
mov ecx, dword [ebp - 0x18]
sub ecx, 0x2111
sub ecx, dword [ebp - 0x28]
xor edx, edx
add ecx, dword [0x431e48]
adc edx, dword [0x431e4c]
add ecx, dword [0x431e48]
mov eax, dword [0x431e4c]
adc eax, edx
mov dword [0x431e48], ecx
mov dword [0x431e4c], eax
jmp 0x402e95
movzx ecx, byte [0x431e13]
cmp ecx, 0x1476
jne 0x402e95
movzx edx, byte [0x431e17]
movzx eax, word [0x431e44]
add eax, edx
mov word [0x431e44], ax
movzx ecx, word [0x431e44]
imul ecx, dword [0x431e40]
movzx edx, word [0x431e44]
sub ecx, edx
mov word [0x431e44], cx
movzx eax, byte [0x431e26]
sub eax, 0x34
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x431e40]
push ecx
call fcn.00421340
add esp, 4
mov dword [ebp - 0x28], eax
movzx edx, byte [0x431e26]
imul edx, dword [ebp - 0x2c]
sub edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edx
jmp 0x4020ac
movzx eax, byte [0x431e26]
mov ecx, dword [0x431e40]
lea edx, [ecx + eax - 0x3b]
mov dword [ebp - 0x2c], edx
movzx eax, byte [0x431e13]
cmp eax, 0x1476
jne 0x402f21
movzx ecx, byte [0x431e17]
movzx edx, byte [0x431e26]
add edx, ecx
mov byte [0x431e26], dl
movzx eax, word [0x431e44]
movzx ecx, byte [0x431e26]
imul eax, ecx
movzx edx, byte [0x431e26]
sub eax, edx
mov byte [0x431e26], al
mov eax, dword [ebp - 0x2c]
sub eax, 0x2111
movzx ecx, word [0x431e44]
sub eax, ecx
xor edx, edx
add eax, dword [0x431e48]
adc edx, dword [0x431e4c]
add eax, dword [0x431e48]
mov ecx, dword [0x431e4c]
adc ecx, edx
mov dword [0x431e48], eax
mov dword [0x431e4c], ecx
cmp dword [ebp - 0x2c], 0x2a2bcd
jne 0x402fe7
mov edx, dword [ebp - 0x2c]
sub edx, fcn.00422200
mov dword [ebp - 0x2c], edx
movzx eax, byte [0x431e1f]
movzx ecx, byte [0x431e26]
cmp eax, ecx
jl 0x402fc2
mov edx, dword [ebp - 0x28]
imul edx, edx, 0x100be
movzx eax, byte [0x431e26]
imul edx, eax
mov byte [0x431e26], dl
movzx ecx, byte [0x431e1a]
add ecx, dword [ebp - 0x28]
mov byte [0x431e1a], cl
mov edx, dword [ebp - 0x28]
sub edx, 0x5d
movzx eax, byte [0x431e26]
sub edx, eax
mov dword [0x431e40], edx
mov ecx, dword [ebp - 0x2c]
add ecx, 2
movzx edx, byte [0x431e26]
sub ecx, edx
mov dword [ebp - 0x2c], ecx
mov eax, dword [0x431e40]
push eax
call fcn.00421340
add esp, 4
mov dword [ebp - 0x2c], eax
jmp 0x403005
mov ecx, dword [0x431e48]
sub ecx, 0x5d
mov edx, dword [0x431e4c]
sbb edx, 0
mov eax, dword [ebp - 0x28]
xor esi, esi
sub ecx, eax
sbb edx, esi
mov dword [ebp - 0x2c], ecx
mov ecx, dword [0x431e40]
push ecx
call fcn.00421340
add esp, 4
mov byte [0x431e26], al
movzx edx, byte [0x431e13]
cmp edx, 0x1476
jne 0x40305a
movzx eax, byte [0x431e17]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
xor edx, edx
push edx
push ecx
mov eax, dword [0x431e4c]
push eax
mov ecx, dword [0x431e48]
push ecx
call fcn.00410d30
mov ecx, dword [ebp - 0x28]
xor esi, esi
sub eax, ecx
sbb edx, esi
mov dword [ebp - 0x28], eax
movzx edx, byte [0x431e11]
movzx eax, byte [0x431e13]
add edx, eax
cmp edx, 0x217
jne 0x4030ac
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 5]
xor ecx, ecx
mov dword [0x431e48], eax
mov dword [0x431e4c], ecx
mov ecx, dword [0x431e48]
add ecx, 2
mov esi, dword [0x431e4c]
adc esi, 0
movzx eax, word [0x431e44]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x28], ecx
jmp 0x4030ea
movzx edx, word [0x431e44]
sub edx, 0x2111
sub edx, dword [ebp - 0x28]
movzx eax, byte [0x431e17]
add edx, eax
movzx ecx, byte [0x431e17]
add ecx, edx
mov byte [0x431e17], cl
mov edx, dword [ebp - 0x28]
sub edx, 0x5d
sub edx, dword [ebp - 0x28]
xor eax, eax
mov dword [0x431e48], edx
mov dword [0x431e4c], eax
movzx eax, word [0x431e44]
cdq
push edx
push eax
mov ecx, dword [0x431e4c]
push ecx
mov edx, dword [0x431e48]
push edx
call fcn.00410d30
mov ecx, dword [ebp - 0x2c]
xor esi, esi
sub eax, ecx
sbb edx, esi
mov word [0x431e44], ax
mov edx, dword [0x431e40]
push edx
mov eax, dword [0x445b08]
push eax
call fcn.00421bf0
add esp, 8
mov byte [0x431e26], al
movzx ecx, byte [0x431e26]
mov edx, dword [ebp - 0x2c]
imul edx, edx, 0x54
add ecx, edx
mov eax, dword [0x431e40]
sub eax, ecx
mov dword [0x431e40], eax
call fcn.00422200
mov ecx, dword [ebp - 0x2c]
mov edx, dword [0x431e40]
lea eax, [edx + ecx - 0x3b]
mov word [0x431e44], ax
mov dword [0x431e40], 0x42a3f8
movzx ecx, byte [0x431e11]
movzx edx, byte [0x431e13]
add ecx, edx
cmp ecx, 0x217
jne 0x4031aa
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax + 5]
mov byte [0x431e26], dl
movzx eax, byte [0x431e26]
add eax, 2
sub eax, dword [0x431e40]
mov dword [ebp - 0x28], eax
jmp 0x4031df
mov ecx, dword [0x431e40]
sub ecx, 0x2111
sub ecx, dword [ebp - 0x28]
movzx edx, byte [0x431e17]
add ecx, edx
movzx eax, byte [0x431e17]
add eax, ecx
mov byte [0x431e17], al
mov ecx, dword [ebp - 0x28]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x28]
mov byte [0x431e26], cl
mov edx, dword [0x431e40]
add edx, 0x431e68
mov dword [0x431e40], edx
mov al, byte [0x431e3b]
mov byte [ebp - 0x60], al
cmp byte [ebp - 0x60], 3
je 0x40320d
cmp byte [ebp - 0x60], 0x1e
je 0x403228
cmp byte [ebp - 0x60], 0xcc
je 0x40323c
jmp 0x403251
mov ecx, dword [ebp - 0x2c]
imul ecx, dword [0x431e40]
movzx edx, word [0x431e44]
sub ecx, edx
mov dword [0x431e40], ecx
jmp 0x403285
mov eax, dword [0x431e40]
imul eax, eax, 0x100be
imul eax, dword [ebp - 0x2c]
mov dword [ebp - 0x2c], eax
jmp 0x403285
mov ecx, dword [0x431e40]
sub ecx, 0x5d
sub ecx, dword [ebp - 0x2c]
mov word [0x431e44], cx
jmp 0x403285
movzx edx, word [0x431e44]
mov eax, dword [ebp - 0x2c]
lea ecx, [edx + eax + 5]
mov word [0x431e44], cx
mov edx, dword [ebp - 0x2c]
add edx, 0x41
movzx eax, word [0x431e44]
sub edx, eax
movzx ecx, word [0x431e44]
add ecx, edx
mov word [0x431e44], cx
mov edx, 0x429568
sub edx, 0x42b424
mov eax, dword [0x431e40]
lea ecx, [eax + edx + 0x429888]
mov dword [0x431e40], ecx
mov edx, dword [ebp - 0x28]
add edx, 2
sub edx, dword [0x431e40]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x28]
add eax, 2
sub eax, dword [0x431e40]
mov dword [ebp - 0x2c], eax
mov ecx, dword [0x431e40]
imul ecx, ecx, 0x100be
movzx edx, word [0x431e44]
imul ecx, edx
mov word [0x431e44], cx
call fcn.004235d0
mov dword [ebp - 0x14], 7
jmp 0x4032f4
mov eax, dword [ebp - 0x14]
sub eax, 1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jle 0x403321
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + 0x431e10]
sub edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x431e10], dl
mov ecx, dword [ebp - 0x2c]
add ecx, 2
sub ecx, dword [ebp - 0x28]
mov byte [0x431e26], cl
jmp 0x4032eb
movzx eax, word [0x431e44]
pop edi
pop esi
mov esp, ebp
pop ebp
ret