Function at 0x41e38a
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff96c
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov ecx, dword [edx + 0x14]
mov al, byte [ecx + 0x59]
mov byte [ebp - 0x11], al
xor edx, edx
mov dword [ebp - 0x2c], edx
xor ecx, ecx
mov dword [ebp - 0x30], ecx
xor eax, eax
mov dword [ebp - 0x34], eax
mov edx, dword [ebp + 8]
add edx, 0xb4
push edx
call fcn.0040f35f
pop ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x78], 7
jne 0x41e3df
jmp 0x423c99
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 0x78], edx
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ecx + 0x94], eax
mov edx, dword [ebp - 0x10]
xor ecx, ecx
mov dword [edx + 0x1a4], ecx
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0xd8], 0
jne 0x423d12
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x74]
mov dword [ebp - 4], ecx
cmp dword [ebp - 0xc], 0
jne 0x423c35
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x1e], 0
jne 0x423c99
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
mov eax, dword [ebp - 4]
shl eax, 2
lea eax, [eax + eax*4]
add ecx, eax
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x100], 0
je 0x41e48b
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x108]
cmp eax, dword [ebp - 0x34]
jne 0x41e488
mov edx, dword [ebp - 0x10]
push dword [edx + 0x104]
mov ecx, dword [ebp - 0x10]
call dword [ecx + 0x100]
pop ecx
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x41e483
mov dword [ebp - 0xc], 9
jmp 0x423c35
xor eax, eax
mov dword [ebp - 0x34], eax
inc dword [ebp - 0x34]
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx]
mov al, byte [ecx + 0x789b08]
mov byte [ebp - 0x25], al
test byte [ebp - 0x25], 2
je 0x41e4cf
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x24], ecx
push dword [ebp - 0x24]
call fcn.00418eed
pop ecx
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], 1
jmp 0x41e583
test byte [ebp - 0x25], 4
je 0x41e547
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x18], edx
test byte [ebp - 0x25], 8
je 0x41e528
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x1c], ecx
test byte [ebp - 0x25], 0x20
je 0x41e583
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x41e583
test byte [ebp - 0x25], 0x10
je 0x41e583
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x20], edx
jmp 0x41e583
test byte [ebp - 0x25], 8
je 0x41e566
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x1c], ecx
jmp 0x41e583
test byte [ebp - 0x25], 0x10
je 0x41e583
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x8e
ja case.0x41e596.0
jmp dword [edx*4 + 0x41e59d]
mov ecx, dword [ebp - 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x423d12
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], 4
mov eax, dword [ebp - 4]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
mov dword [ebp - 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], 4
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [edx + 0x78], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [edx + 0x74], ecx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov dword [eax + 0x80], ecx
mov eax, dword [ebp - 8]
cmp dword [eax + 0x10], 0
je 0x41e8cc
mov edx, dword [ebp - 8]
push dword [edx + 0x10]
push 0x78d448
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, 0x90
push ecx
call fcn.00404ec6
add esp, 0x10
push dword [ebp + 8]
call fcn.0041b9d1
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 5
jne 0x41e8f1
mov eax, 5
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x78], eax
jmp 0x423c5e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x78], 0
je 0x41e901
mov eax, 1
jmp 0x41e906
mov eax, 0x65
mov dword [ebp - 0xc], eax
jmp 0x423c5e
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x24]
mov word [eax + 0x1c], 4
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
jmp case.0x41e596.0
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], 8
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov edx, dword [ecx]
mov dword [eax + 8], edx
mov edx, dword [ecx + 4]
mov dword [eax + 0xc], edx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov byte [eax], 0x1c
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
call fcn.0074dc10
pop ecx
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
xor eax, eax
mov al, byte [ebp - 0x11]
dec eax
je 0x41ea42
push 0
push 1
push 0xffffffffffffffff
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
push dword [ebp - 0x24]
call fcn.0041944a
add esp, 0x14
xor eax, eax
mov al, byte [ebp - 0x11]
push eax
push dword [ebp - 0x24]
call fcn.00418ad9
add esp, 8
test eax, eax
jne 0x423c99
push dword [ebp - 0x24]
call fcn.00418c44
pop ecx
test eax, eax
jne 0x423c99
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov dword [edx + 0x24], ecx
mov eax, dword [ebp - 0x24]
or word [eax + 0x1c], 0x80
mov edx, dword [ebp - 0x24]
and word [edx + 0x1c], 0xffbf
mov ecx, dword [ebp - 8]
cmp byte [ecx + 1], 0xff
jne 0x41ea07
mov eax, dword [ebp - 8]
push dword [eax + 0x10]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov edx, dword [ebp - 8]
mov byte [edx + 1], 0xff
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x14]
mov edx, dword [ebp - 8]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x18]
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x50]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 4]
jge case.0x41e596.0
jmp 0x423c76
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x50]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 4]
jge case.0x41e596.28
jmp 0x423c76
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], 0xa2
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0x24]
mov dl, byte [ebp - 0x11]
mov byte [eax + 0x1f], dl
jmp case.0x41e596.0
push 0
push 0
mov ecx, dword [ebp - 8]
push dword [ecx + 4]
mov eax, dword [ebp - 8]
push dword [eax + 0x10]
push dword [ebp - 0x24]
call fcn.0041944a
add esp, 0x14
mov edx, dword [ebp - 0x24]
mov cl, byte [ebp - 0x11]
mov byte [edx + 0x1f], cl
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
dec edx
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x38]
mov edx, dword [ebp - 0x40]
shl edx, 3
lea edx, [edx + edx*4]
add eax, edx
mov dword [ebp - 0x44], eax
push dword [ebp - 0x44]
call fcn.00419329
pop ecx
test eax, eax
je 0x41eae2
jmp 0x423c76
push 0x80
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x38]
mov edx, dword [ebp - 0x40]
shl edx, 3
lea edx, [edx + edx*4]
add eax, edx
push eax
push dword [ebp - 0x24]
call fcn.0041936a
add esp, 0xc
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x4c], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
mov dword [ebp - 0x54], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 0x50]
shl edx, 3
lea edx, [edx + edx*4]
add eax, edx
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 0x54]
shl edx, 3
lea edx, [edx + edx*4]
add eax, edx
mov dword [ebp - 0x24], eax
jmp 0x41eb7e
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov dword [edx + 0x24], ecx
push dword [ebp - 0x18]
push dword [ebp - 0x24]
call fcn.00419413
add esp, 8
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x48]
mov dword [eax + 0x24], edx
add dword [ebp - 0x18], 0x28
add dword [ebp - 0x24], 0x28
mov ecx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test ecx, ecx
jne 0x41eb4e
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x24], ecx
push 0x100
push dword [ebp - 0x18]
push dword [ebp - 0x24]
call fcn.0041936a
add esp, 0xc
mov ecx, dword [ebp - 0x24]
test byte [ecx + 0x1d], 1
je case.0x41e596.0
push dword [ebp - 0x24]
call fcn.00418c44
pop ecx
test eax, eax
je case.0x41e596.0
jmp 0x423c99
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x18], edx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x24], ecx
push 0x100
push dword [ebp - 0x18]
push dword [ebp - 0x24]
call fcn.0041936a
add esp, 0xc
jmp case.0x41e596.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x54]
add eax, 2
or eax, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x54], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov edx, dword [ebp + 8]
mov dword [edx + 0x94], eax
mov dword [ebp - 0x58], eax
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
jmp 0x41ec9f
mov eax, dword [ebp - 0x5c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x58]
push eax
call fcn.00418d43
pop ecx
mov edx, dword [ebp - 0x5c]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [ebp - 0x58]
push edx
call fcn.0041e0bc
pop ecx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 8]
cmp ecx, dword [eax + 8]
jl 0x41ec76
mov edx, dword [ebp - 0x10]
cmp byte [edx + 0x1e], 0
jne 0x423c99
mov ecx, dword [ebp + 8]
inc dword [ecx + 0x50]
mov eax, dword [ebp - 4]
inc eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x74], eax
mov dword [ebp - 0xc], 0x64
jmp 0x423c5e
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 0x1c]
mov edx, dword [ebp - 0x1c]
or ax, word [edx + 0x1c]
test al, 1
je 0x41ecf3
push dword [ebp - 0x24]
call fcn.00419249
pop ecx
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1d], 8
je 0x41ed05
push dword [ebp - 0x18]
call fcn.00418cc9
pop ecx
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 0x12
jne 0x41ed28
xor edx, edx
mov dl, byte [ebp - 0x11]
push edx
push dword [ebp - 0x18]
call fcn.00418dab
add esp, 8
test eax, eax
je 0x41ed28
jmp 0x423c99
mov ecx, dword [ebp - 0x1c]
test byte [ecx + 0x1d], 8
je 0x41ed3a
push dword [ebp - 0x1c]
call fcn.00418cc9
pop ecx
mov eax, dword [ebp - 0x1c]
test byte [eax + 0x1c], 0x12
jne 0x41ed5d
xor edx, edx
mov dl, byte [ebp - 0x11]
push edx
push dword [ebp - 0x1c]
call fcn.00418dab
add esp, 8
test eax, eax
je 0x41ed5d
jmp 0x423c99
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
mov edx, dword [ebp - 0x1c]
add eax, dword [edx + 0x18]
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x50]
cdq
cmp edx, dword [ebp - 0x60]
jne 0x41ed86
cmp eax, dword [ebp - 0x64]
jae 0x41ed8d
jmp 0x423c76
jge 0x41ed8d
jmp 0x423c76
mov ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 2
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], ax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x1c]
sete al
and eax, 1
push eax
mov eax, dword [ebp - 0x64]
add eax, 2
push eax
push dword [ebp - 0x24]
call fcn.00418b10
add esp, 0xc
test eax, eax
je 0x41edcb
jmp 0x423c99
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x1c]
je 0x41eded
mov ecx, dword [ebp - 0x1c]
push dword [ecx + 0x18]
mov eax, dword [ebp - 0x1c]
push dword [eax + 0x14]
mov edx, dword [ebp - 0x24]
push dword [edx + 0x14]
call fcn.0074d9f4
add esp, 0xc
mov ecx, dword [ebp - 0x18]
push dword [ecx + 0x18]
mov eax, dword [ebp - 0x18]
push dword [eax + 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, dword [eax + 0x18]
push ecx
call fcn.0074d9f4
add esp, 0xc
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x14]
mov byte [ecx + eax + 1], 0
mov eax, dword [ebp - 0x24]
or word [eax + 0x1c], 0x20
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp - 0x24]
mov al, byte [ebp - 0x11]
mov byte [ecx + 0x1f], al
jmp case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041e253
pop ecx
push dword [ebp - 0x1c]
call fcn.0041e253
pop ecx
mov edx, dword [ebp - 0x18]
mov cx, word [edx + 0x1c]
mov eax, dword [ebp - 0x1c]
or cx, word [eax + 0x1c]
movzx edx, cx
mov dword [ebp - 0x68], edx
test byte [ebp - 0x68], 1
jne 0x41f15c
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 0x1c]
mov edx, dword [ebp - 0x1c]
and ax, word [edx + 0x1c]
movzx ecx, ax
and ecx, 4
cmp ecx, 4
jne 0x41efc7
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
mov dword [ebp - 0x70], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x74], eax
mov edx, dword [ebp - 8]
mov cl, byte [edx]
sub cl, 0x4e
je 0x41eecc
dec cl
je 0x41eedd
dec cl
je 0x41eeee
dec cl
je 0x41ef0a
jmp 0x41ef5c
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
add dword [ebp - 0x78], eax
adc dword [ebp - 0x74], edx
jmp 0x41ef9d
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
sub dword [ebp - 0x78], eax
sbb dword [ebp - 0x74], edx
jmp 0x41ef9d
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
call fcn.00754afc
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
jmp 0x41ef9d
cmp dword [ebp - 0x6c], 0
jne 0x41ef1a
cmp dword [ebp - 0x70], 0
je 0x41f15c
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x41ef43
cmp dword [ebp - 0x70], 0xffffffff
jne 0x41ef43
cmp dword [ebp - 0x74], 0x80000000
jne 0x41ef43
cmp dword [ebp - 0x78], 0
jne 0x41ef43
mov dword [ebp - 0x70], 1
mov dword [ebp - 0x6c], 0
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
call fcn.00754b1f
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
jmp 0x41ef9d
cmp dword [ebp - 0x6c], 0
jne 0x41ef6c
cmp dword [ebp - 0x70], 0
je 0x41f15c
cmp dword [ebp - 0x6c], 0xffffffff
jne 0x41ef86
cmp dword [ebp - 0x70], 0xffffffff
jne 0x41ef86
mov dword [ebp - 0x70], 1
mov dword [ebp - 0x6c], 0
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x74]
call fcn.00754be0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x78]
mov dword [ecx], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xffe0
or cx, 4
mov eax, dword [ebp - 0x24]
mov word [eax + 0x1c], cx
jmp case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041907e
pop ecx
fstp qword [ebp - 0x80]
push dword [ebp - 0x1c]
call fcn.0041907e
pop ecx
fstp qword [ebp - 0x88]
mov edx, dword [ebp - 8]
mov cl, byte [edx]
sub cl, 0x4e
je 0x41effa
dec cl
je 0x41f00e
dec cl
je 0x41f022
dec cl
je 0x41f036
jmp 0x41f062
fld qword [ebp - 0x80]
fadd qword [ebp - 0x88]
fstp qword [ebp - 0x88]
jmp 0x41f0fe
fld qword [ebp - 0x80]
fsubr qword [ebp - 0x88]
fstp qword [ebp - 0x88]
jmp 0x41f0fe
fld qword [ebp - 0x80]
fmul qword [ebp - 0x88]
fstp qword [ebp - 0x88]
jmp 0x41f0fe
fld qword [ebp - 0x80]
fld dword [0x423d52]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x41f15c
fld qword [ebp - 0x80]
fdivr qword [ebp - 0x88]
fstp qword [ebp - 0x88]
jmp 0x41f0fe
fld qword [ebp - 0x80]
call fcn.0075501c
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], edx
fld qword [ebp - 0x88]
call fcn.0075501c
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
cmp dword [ebp - 0x8c], 0
jne 0x41f0a3
cmp dword [ebp - 0x90], 0
je 0x41f15c
cmp dword [ebp - 0x8c], 0xffffffff
jne 0x41f0c9
cmp dword [ebp - 0x90], 0xffffffff
jne 0x41f0c9
mov dword [ebp - 0x90], 1
mov dword [ebp - 0x8c], 0
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
call fcn.00754be0
mov dword [ebp - 0x684], eax
mov dword [ebp - 0x680], edx
fild qword [ebp - 0x684]
fstp qword [ebp - 0x88]
push dword [ebp - 0x84]
push dword [ebp - 0x88]
call fcn.00406fa8
add esp, 8
test eax, eax
je 0x41f118
jmp 0x41f15c
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x88]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x84]
mov dword [edx + 0xc], ecx
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 8
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
test byte [ebp - 0x68], 8
jne case.0x41e596.0
push dword [ebp - 0x24]
call fcn.00419122
pop ecx
jmp case.0x41e596.0
push dword [ebp - 0x24]
call fcn.00419249
pop ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 3]
mov dword [ebp - 0xa8], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0xa4], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0xa0], ecx
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0xa8]
jge 0x41f1f5
mov edx, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0xa0]
mov dword [edx + ecx*4], eax
push dword [ebp - 0xa0]
call fcn.0041e0bc
pop ecx
inc dword [ebp - 0x9c]
add dword [ebp - 0xa0], 0x28
mov edx, dword [ebp - 0x9c]
cmp edx, dword [ebp - 0xa8]
jl 0x41f1b9
mov ecx, dword [ebp - 8]
cmp byte [ecx + 1], 0xfb
jne 0x41f214
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x5a0], edx
xor ecx, ecx
mov dword [ebp - 0x59c], ecx
jmp 0x41f22e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x59c], edx
mov ecx, dword [ebp - 0x59c]
mov eax, dword [ecx]
mov dword [ebp - 0x5a0], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x24], ecx
mov word [ebp - 0x57c], 1
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x588], ecx
xor eax, eax
mov dword [ebp - 0x578], eax
xor edx, edx
mov dword [ebp - 0x574], edx
push dword [ebp - 0x24]
lea ecx, [ebp - 0x598]
push ecx
call fcn.00419413
add esp, 8
mov ax, word [ebp - 0x57c]
and ax, 0xffe0
or ax, 1
mov word [ebp - 0x57c], ax
xor edx, edx
mov dword [ebp - 0x56c], edx
mov ecx, dword [ebp - 0x5a0]
cmp byte [ecx + 2], 0
je 0x41f2af
mov eax, dword [ebp - 8]
mov edx, dword [eax - 4]
mov dword [ebp - 0x568], edx
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
lea ecx, [ebp - 0x5a0]
push ecx
mov eax, dword [ebp - 0x5a0]
call dword [eax + 0xc]
add esp, 0xc
jmp 0x41f2e2
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 0x1e], 0
je 0x41f2fd
lea eax, [ebp - 0x598]
push eax
call fcn.00418f3d
pop ecx
jmp 0x423c99
cmp dword [ebp - 0x59c], 0
je 0x41f32d
mov edx, dword [ebp - 8]
push dword [edx + 4]
push dword [ebp - 0x59c]
call fcn.0041bef7
add esp, 8
mov ecx, dword [ebp - 0x59c]
mov eax, dword [ebp - 8]
mov dword [eax + 0x10], ecx
mov edx, dword [ebp - 8]
mov byte [edx + 1], 0xf9
cmp dword [ebp - 0x56c], 0
je 0x41f366
lea ecx, [ebp - 0x598]
push ecx
call fcn.0041ce71
pop ecx
push eax
push 0x78d44b
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x90
push eax
call fcn.00404ec6
add esp, 0x10
mov edx, dword [ebp - 0x56c]
mov dword [ebp - 0xc], edx
xor ecx, ecx
mov cl, byte [ebp - 0x11]
push ecx
lea eax, [ebp - 0x598]
push eax
call fcn.00418ad9
add esp, 8
lea edx, [ebp - 0x598]
push edx
push dword [ebp - 0x24]
call fcn.00419413
add esp, 8
push dword [ebp - 0x24]
call fcn.00419329
pop ecx
test eax, eax
je case.0x41e596.0
jmp 0x423c76
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 0x1c]
mov edx, dword [ebp - 0x1c]
or ax, word [edx + 0x1c]
test al, 1
je 0x41f3c8
push dword [ebp - 0x24]
call fcn.00419249
pop ecx
jmp case.0x41e596.0
push dword [ebp - 0x1c]
call fcn.00418feb
pop ecx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
push dword [ebp - 0x18]
call fcn.00418feb
pop ecx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
mov ecx, dword [ebp - 8]
mov al, byte [ecx]
sub al, 0x4a
je 0x41f405
dec al
je 0x41f41f
dec al
je 0x41f439
jmp 0x41f460
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
and dword [ebp - 0xb0], eax
and dword [ebp - 0xac], edx
jmp 0x41f485
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xb4]
or dword [ebp - 0xb0], eax
or dword [ebp - 0xac], edx
jmp 0x41f485
mov eax, dword [ebp - 0xb8]
mov ecx, eax
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xac]
call fcn.00754ca8
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
jmp 0x41f485
mov eax, dword [ebp - 0xb8]
mov ecx, eax
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xac]
call fcn.00754cc4
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0xb0]
mov dword [eax], edx
mov edx, dword [ebp - 0xac]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 4
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], ax
jmp case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041918b
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
cdq
mov ecx, dword [ebp - 0x18]
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x41e596.0
mov al, byte [ebp - 0x11]
push eax
push 0x63
push dword [ebp - 0x18]
call fcn.0041e2f2
add esp, 0xc
mov edx, dword [ebp - 0x18]
test byte [edx + 0x1c], 0xc
jne 0x41f4fa
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 0x18]
test byte [edx + 0x1c], 4
je 0x41f52a
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0xc], 0
setne al
and eax, 1
cdq
mov ecx, dword [ebp - 0x18]
add eax, dword [ecx]
adc edx, dword [ecx + 4]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
jmp 0x41f5c2
mov eax, dword [ebp - 0x18]
fld qword [eax + 8]
call fcn.0075501c
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x688], edx
fild qword [ebp - 0x68c]
mov ecx, dword [ebp - 0x18]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
sahf
jae 0x41f57c
add dword [ebp - 0xc0], 1
adc dword [ebp - 0xbc], 0
mov edx, dword [ebp - 8]
cmp dword [edx + 0xc], 0
je 0x41f5c2
mov eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x694], eax
mov dword [ebp - 0x690], edx
fild qword [ebp - 0x694]
mov ecx, dword [ebp - 0x18]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x41f5c2
add dword [ebp - 0xc0], 1
adc dword [ebp - 0xbc], 0
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc0]
mov dword [edx], ecx
mov ecx, dword [ebp - 0xbc]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x18]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], dx
jmp case.0x41e596.0
mov al, byte [ebp - 0x11]
push eax
push 0x63
push dword [ebp - 0x18]
call fcn.0041e2f2
add esp, 0xc
mov edx, dword [ebp - 0x18]
test byte [edx + 0x1c], 4
jne 0x41f635
mov ecx, dword [ebp - 8]
cmp dword [ecx + 8], 0
jne 0x41f626
mov dword [ebp - 0xc], 0x14
jmp 0x423ccc
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 4
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], ax
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1c], 4
je case.0x41e596.0
push dword [ebp - 0x18]
call fcn.004191b0
pop ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 1
jne case.0x41e596.0
mov edx, dword [ebp - 0x18]
movzx ecx, word [edx + 0x1c]
and ecx, 0x10
sar ecx, 3
mov eax, dword [ebp - 0x18]
or word [eax + 0x1c], cx
mov dl, byte [ebp - 0x11]
push edx
push 0x61
push dword [ebp - 0x18]
call fcn.0041e2f2
add esp, 0xc
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1d], 8
je 0x41f6b1
push dword [ebp - 0x18]
call fcn.00418cc9
pop ecx
jmp 0x41f6b3
xor eax, eax
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x18]
and word [edx + 0x1c], 0xffe3
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1c], 1
jne case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 0x10
jne 0x41f6eb
mov dl, byte [ebp - 0x11]
push edx
push 0x61
push dword [ebp - 0x18]
call fcn.0041e2f2
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 0x10
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], ax
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1c], 0xd
jne case.0x41e596.0
push dword [ebp - 0x18]
call fcn.004191d3
pop ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 1
jne case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041918b
pop ecx
jmp case.0x41e596.0
mov edx, dword [ebp - 0x18]
test byte [edx + 0x1c], 1
jne case.0x41e596.0
push dword [ebp - 0x18]
call fcn.004191b0
pop ecx
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
mov ax, word [ecx + 0x1c]
mov edx, dword [ebp - 0x20]
or ax, word [edx + 0x1c]
movzx ecx, ax
mov dword [ebp - 0xc4], ecx
test byte [ebp - 0xc4], 1
je 0x41f7ce
mov eax, dword [ebp - 8]
test byte [eax + 3], 0x10
je 0x41f7b2
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 1
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], ax
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
test byte [ecx + 3], 8
je case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov al, byte [ecx + 3]
and al, 0x67
mov byte [ebp - 0xc9], al
cmp byte [ebp - 0xc9], 0
je 0x41f811
mov dl, byte [ebp - 0x11]
push edx
mov cl, byte [ebp - 0xc9]
push ecx
push dword [ebp - 0x18]
call fcn.0041e2f2
add esp, 0xc
mov al, byte [ebp - 0x11]
push eax
mov dl, byte [ebp - 0xc9]
push edx
push dword [ebp - 0x20]
call fcn.0041e2f2
add esp, 0xc
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1d], 8
je 0x41f823
push dword [ebp - 0x18]
call fcn.00418cc9
pop ecx
mov eax, dword [ebp - 0x20]
test byte [eax + 0x1d], 8
je 0x41f835
push dword [ebp - 0x20]
call fcn.00418cc9
pop ecx
mov edx, dword [ebp - 8]
push dword [edx + 0x10]
push dword [ebp - 0x18]
push dword [ebp - 0x20]
call fcn.00419627
add esp, 0xc
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx]
add eax, 0xffffffbd
cmp eax, 4
ja case.default.0x41f862
jmp dword [eax*4 + 0x41f869]
cmp dword [ebp - 0xc8], 0
sete dl
and edx, 1
mov dword [ebp - 0xc8], edx
jmp 0x41f8f9
cmp dword [ebp - 0xc8], 0
setne cl
and ecx, 1
mov dword [ebp - 0xc8], ecx
jmp 0x41f8f9
cmp dword [ebp - 0xc8], 0
setl al
and eax, 1
mov dword [ebp - 0xc8], eax
jmp 0x41f8f9
cmp dword [ebp - 0xc8], 0
setle dl
and edx, 1
mov dword [ebp - 0xc8], edx
jmp 0x41f8f9
cmp dword [ebp - 0xc8], 0
setg cl
and ecx, 1
mov dword [ebp - 0xc8], ecx
jmp 0x41f8f9
cmp dword [ebp - 0xc8], 0
setge al
and eax, 1
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 8]
test byte [edx + 3], 0x10
je 0x41f944
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
mov eax, dword [ebp - 0xc8]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41e596.0
cmp dword [ebp - 0xc8], 0
je case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0xd0], ecx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0xe0], edx
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0xdc], ecx
xor eax, eax
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0xd4]
cmp edx, dword [ebp - 0xd0]
jge 0x41fa7f
cmp dword [ebp - 0x30], 0
je 0x41f9cc
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xd4]
mov edx, dword [ecx + eax*4]
jmp 0x41f9d2
mov edx, dword [ebp - 0xd4]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xd4]
mov eax, dword [eax + ecx*4 + 0xc]
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edx + 8]
mov eax, dword [ebp - 0xd4]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0xec], edx
push dword [ebp - 0xe8]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 0xdc]
add edx, dword [ebp - 0xe4]
mov ecx, edx
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
push eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 0xd8]
add ecx, dword [ebp - 0xe4]
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
push edx
call fcn.00419627
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
je 0x41fa67
cmp dword [ebp - 0xec], 0
je 0x41fa7f
neg dword [ebp - 0x2c]
jmp 0x41fa7f
inc dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd4]
cmp edx, dword [ebp - 0xd0]
jl 0x41f9b8
xor ecx, ecx
mov dword [ebp - 0x30], ecx
jmp case.0x41e596.0
cmp dword [ebp - 0x2c], 0
jge 0x41fa9e
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
cmp dword [ebp - 0x2c], 0
jne 0x41fab3
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 1
je 0x41fad7
mov dword [ebp - 0xf0], 2
jmp 0x41faf4
push dword [ebp - 0x18]
call fcn.00418feb
pop ecx
cmp edx, 0
jne 0x41fae8
cmp eax, 0
setne dl
and edx, 1
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0x1c]
test byte [ecx + 0x1c], 1
je 0x41fb09
mov dword [ebp - 0xf4], 2
jmp 0x41fb26
push dword [ebp - 0x1c]
call fcn.00418feb
pop ecx
cmp edx, 0
jne 0x41fb1a
cmp eax, 0
setne al
and eax, 1
mov dword [ebp - 0xf4], eax
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3d
jne 0x41fb54
mov eax, dword [ebp - 0xf0]
lea eax, [eax + eax*2]
lea edx, [eax + 0x789b97]
mov ecx, dword [ebp - 0xf4]
xor eax, eax
mov al, byte [edx + ecx]
mov dword [ebp - 0xf0], eax
jmp 0x41fb74
mov edx, dword [ebp - 0xf0]
lea edx, [edx + edx*2]
lea ecx, [edx + 0x789ba0]
mov eax, dword [ebp - 0xf4]
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [ebp - 0xf0], edx
cmp dword [ebp - 0xf0], 2
jne 0x41fb98
mov ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 1
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], ax
jmp case.0x41e596.0
mov eax, dword [ebp - 0xf0]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 1
jne case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041918b
pop ecx
mov edx, dword [ebp - 0x18]
cmp dword [edx + 4], 0
jne 0x41fbe5
cmp dword [edx], 0
setne al
and eax, 1
cmp eax, 1
sbb eax, eax
neg eax
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 1
jne case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041918b
pop ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov edx, dword [edx + 4]
not eax
not edx
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
test byte [eax + 0x1c], 1
je 0x41fc46
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0xf8], ecx
jmp 0x41fc89
push dword [ebp - 0x18]
call fcn.0041907e
pop ecx
fld dword [0x423d52]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
setp dl
and edx, 1
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x55
jne 0x41fc89
mov edx, dword [ebp - 0xf8]
cmp edx, 1
sbb ecx, ecx
neg ecx
mov dword [ebp - 0xf8], ecx
cmp dword [ebp - 0xf8], 0
je case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x18]
test byte [edx + 0x1c], 1
je 0x41fcc9
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x41e596.0
add dword [ebp - 0x18], 0x28
dec dword [ebp - 0xfc]
mov edx, dword [ebp - 0xfc]
test edx, edx
jg 0x41fcb1
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x1c], 1
jne case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x104], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x108], ecx
xor eax, eax
mov dword [ebp - 0x10c], eax
mov word [ebp - 0x5ac], 0
xor edx, edx
mov dword [ebp - 0x5b8], edx
xor ecx, ecx
mov dword [ebp - 0x5a4], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x130], edx
mov edx, dword [ebp - 0x130]
mov cx, word [edx + 0x1c]
and cx, 0xffe0
or cx, 1
mov eax, dword [ebp - 0x130]
mov word [eax + 0x1c], cx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x104]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x10c]
cmp dword [ecx], 0
je 0x41fe62
push dword [ebp - 0x10c]
call fcn.0041c0aa
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x423ccc
xor eax, eax
mov dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x10c]
mov ecx, dword [edx]
mov dword [ebp - 0x114], ecx
mov eax, dword [ebp - 0x10c]
cmp byte [eax + 0x1c], 0
je 0x41fddc
xor edx, edx
mov dword [ebp - 0x100], edx
jmp 0x41fe51
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx + 0x60]
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x54]
jne 0x41fe0d
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx + 0x64]
mov dword [ebp - 0x100], eax
mov edx, dword [ebp - 0x10c]
mov ecx, dword [edx + 0x70]
mov dword [ebp - 0x110], ecx
jmp 0x41fe51
mov eax, dword [ebp - 0x10c]
cmp byte [eax + 0x22], 0
je 0x41fe3c
lea edx, [ebp - 0x138]
push edx
push dword [ebp - 0x114]
call fcn.00412896
add esp, 8
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x100], eax
jmp 0x41fe51
lea edx, [ebp - 0x100]
push edx
push dword [ebp - 0x114]
call fcn.0041291b
add esp, 8
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx + 0x4c]
mov dword [ebp - 0x120], eax
jmp 0x41fea2
mov edx, dword [ebp - 0x10c]
mov ecx, dword [edx + 0x34]
mov dword [ebp - 0x100], ecx
mov eax, dword [ebp - 0x10c]
mov edx, dword [eax + 0x38]
mov dword [ebp - 0x110], edx
mov ecx, dword [ebp - 0x10c]
xor eax, eax
mov dword [ecx + 0x60], eax
mov edx, dword [ebp - 0x10c]
mov ecx, dword [edx + 0x4c]
mov dword [ebp - 0x120], ecx
xor eax, eax
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x100], 0
jne 0x41feb0
jmp case.0x41e596.0
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 0x50]
cmp ecx, dword [ebp - 0x100]
jae 0x41fec3
jmp 0x423c76
mov eax, dword [ebp - 0x10c]
mov edx, dword [eax + 0x68]
mov dword [ebp - 0x118], edx
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx + 0x60]
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x54]
jne 0x41fef7
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ecx + 0x6c]
mov dword [ebp - 0x11c], eax
jmp 0x4201b6
mov edx, dword [ebp - 0x120]
shl edx, 2
add edx, dword [ebp - 0x118]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x6c], edx
mov ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x100]
mov dword [ecx + 0x64], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x54]
mov eax, dword [ebp - 0x10c]
mov dword [eax + 0x60], ecx
cmp dword [ebp - 0x110], 0
je 0x41ff4a
mov edx, dword [ebp - 0x110]
mov dword [ebp - 0x12c], edx
jmp 0x41ffc4
mov ecx, dword [ebp - 0x10c]
cmp byte [ecx + 0x22], 0
je 0x41ff73
lea eax, [ebp - 0x14c]
push eax
push dword [ebp - 0x114]
call fcn.00412f7c
add esp, 8
mov dword [ebp - 0x12c], eax
jmp 0x41ff8e
lea edx, [ebp - 0x14c]
push edx
push dword [ebp - 0x114]
call fcn.00412fa0
add esp, 8
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x14c]
cmp ecx, dword [ebp - 0x100]
jb 0x41ffb9
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x110], eax
mov edx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x12c]
mov dword [edx + 0x70], ecx
jmp 0x41ffc4
mov eax, dword [ebp - 0x10c]
xor edx, edx
mov dword [eax + 0x70], edx
mov ecx, dword [ebp - 0x12c]
cmp byte [ecx], 0x80
jae 0x41ffe6
mov eax, dword [ebp - 0x12c]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x144], edx
mov ecx, 1
jmp 0x41fffd
lea eax, [ebp - 0x144]
push eax
push dword [ebp - 0x12c]
call fcn.00407d7b
add esp, 8
mov ecx, eax
mov dword [ebp - 0x148], ecx
cmp dword [ebp - 0x110], 0
jne 0x42006e
mov edx, dword [ebp - 0x14c]
cmp edx, dword [ebp - 0x144]
jae 0x42006e
mov word [ebp - 0x5ac], 0
xor eax, eax
mov dword [ebp - 0x5b8], eax
lea edx, [ebp - 0x5c8]
push edx
mov ecx, dword [ebp - 0x10c]
xor eax, eax
mov al, byte [ecx + 0x22]
push eax
push dword [ebp - 0x144]
push 0
push dword [ebp - 0x114]
call fcn.00419913
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x420062
jmp case.0x41e596.0
mov edx, dword [ebp - 0x5b4]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ebp - 0x12c]
add ecx, dword [ebp - 0x144]
mov dword [ebp - 0x140], ecx
mov eax, dword [ebp - 0x12c]
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x13c], eax
xor edx, edx
mov dword [ebp - 0x128], edx
jmp 0x42014a
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x140]
jae 0x420133
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x144]
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x13c]
cmp byte [eax], 0x80
jae 0x4200f0
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x13c]
movzx eax, byte [eax]
mov dword [edx + ecx*4], eax
mov edx, 1
jmp 0x420110
mov ecx, dword [ebp - 0x128]
shl ecx, 2
add ecx, dword [ebp - 0x118]
push ecx
push dword [ebp - 0x13c]
call fcn.00407d7b
add esp, 8
mov edx, eax
add dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x128]
push dword [eax + ecx*4]
call fcn.0041c2c3
pop ecx
add dword [ebp - 0x144], eax
jmp 0x420144
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x128]
xor ecx, ecx
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x128]
mov eax, dword [ebp - 0x128]
cmp eax, dword [ebp - 0x120]
jb 0x42009f
lea edx, [ebp - 0x5c8]
push edx
call fcn.00418f3d
pop ecx
mov word [ebp - 0x5ac], 1
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x140]
ja 0x4201aa
mov eax, dword [ebp - 0x144]
cmp eax, dword [ebp - 0x100]
ja 0x4201aa
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebp - 0x140]
jne 0x4201b6
mov ecx, dword [ebp - 0x144]
cmp ecx, dword [ebp - 0x100]
je 0x4201b6
mov dword [ebp - 0xc], 0xb
jmp case.0x41e596.0
mov eax, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x108]
cmp dword [eax + edx*4], 0
je 0x4202ca
cmp dword [ebp - 0x110], 0
je 0x420219
push dword [ebp - 0x130]
call fcn.00418eed
pop ecx
push dword [ebp - 0x130]
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x108]
push dword [ecx + eax*4]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x108]
mov eax, dword [edx + ecx*4]
add eax, dword [ebp - 0x110]
push eax
call fcn.0041c3e0
add esp, 0xc
jmp 0x4202bc
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x108]
push dword [edx + ecx*4]
call fcn.0041c2c3
pop ecx
mov dword [ebp - 0x124], eax
push dword [ebp - 0x130]
lea eax, [ebp - 0x5c8]
push eax
call fcn.00419413
add esp, 8
lea edx, [ebp - 0x5c8]
push edx
mov ecx, dword [ebp - 0x10c]
xor eax, eax
mov al, byte [ecx + 0x22]
push eax
push dword [ebp - 0x124]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x108]
push dword [edx + ecx*4]
push dword [ebp - 0x114]
call fcn.00419913
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x42028d
jmp case.0x41e596.0
mov eax, dword [ebp - 0x5b4]
mov dword [ebp - 0x12c], eax
push dword [ebp - 0x130]
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x108]
push dword [edx + ecx*4]
push dword [ebp - 0x12c]
call fcn.0041c3e0
add esp, 0xc
mov eax, dword [ebp - 0x130]
mov dl, byte [ebp - 0x11]
mov byte [eax + 0x1f], dl
jmp 0x4202ec
mov ecx, dword [ebp - 8]
cmp byte [ecx + 1], 0xf8
jne 0x4202ec
push 0x80
mov eax, dword [ebp - 8]
push dword [eax + 0x10]
push dword [ebp - 0x130]
call fcn.0041936a
add esp, 0xc
cmp dword [ebp - 0x5a4], 0
je 0x42032a
mov edx, dword [ebp - 0x130]
and word [edx + 0x1c], 0xfe7f
mov ecx, dword [ebp - 0x130]
or word [ecx + 0x1c], 0x20
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x5b4]
mov dword [eax + 0x14], edx
mov ecx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x5a4]
mov dword [ecx + 0x24], eax
push dword [ebp - 0x130]
call fcn.00418c44
pop ecx
mov dword [ebp - 0xc], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x154], edx
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x154]
mov dword [ebp - 0x158], eax
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x15c], edx
mov ecx, dword [ebp - 0x15c]
cmp ecx, dword [ebp - 0x158]
ja case.0x41e596.0
mov eax, dword [ebp - 0x15c]
test byte [eax + 0x1d], 8
je 0x4203b5
push dword [ebp - 0x15c]
call fcn.00418cc9
pop ecx
mov dl, byte [ebp - 0x11]
push edx
mov eax, dword [ebp - 0x15c]
sub eax, dword [ebp - 0x154]
mov ecx, 0x28
cdq
idiv ecx
mov edx, dword [ebp - 0x150]
mov al, byte [edx + eax]
push eax
push dword [ebp - 0x15c]
call fcn.0041e2f2
add esp, 0xc
add dword [ebp - 0x15c], 0x28
mov ecx, dword [ebp - 0x15c]
cmp ecx, dword [ebp - 0x158]
jbe 0x42039d
jmp case.0x41e596.0
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0
xor eax, eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 0
xor edx, edx
mov dword [ebp - 0x17c], edx
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x190], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x194], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 0x190]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add edx, ecx
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
mov dword [ebp - 0x190], edx
mov ecx, dword [ebp - 0x190]
dec ecx
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [ebp - 0x188]
mov dword [ebp - 0x18c], eax
mov edx, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [edx + 0x9b]
mov dword [ebp - 0x198], ecx
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x164]
cmp edx, dword [ebp - 0x18c]
ja 0x4205b9
cmp dword [ebp - 0x194], 0
je 0x4204f8
mov cl, byte [ebp - 0x11]
push ecx
mov eax, dword [ebp - 0x164]
sub eax, dword [ebp - 0x188]
mov ecx, 0x28
cdq
idiv ecx
mov edx, dword [ebp - 0x194]
mov al, byte [edx + eax]
push eax
push dword [ebp - 0x164]
call fcn.0041e2f2
add esp, 0xc
mov ecx, dword [ebp - 0x164]
test byte [ecx + 0x1d], 8
je 0x42051c
mov eax, dword [ebp - 0x164]
cmp dword [eax + 0x18], 0
jle 0x42051c
push dword [ebp - 0x164]
call fcn.00418cc9
pop ecx
push dword [ebp - 0x198]
push dword [ebp - 0x164]
call fcn.0041c186
add esp, 8
mov dword [ebp - 0x184], eax
push dword [ebp - 0x184]
call fcn.0041c2c3
pop ecx
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x1a0]
cdq
add dword [ebp - 0x16c], eax
adc dword [ebp - 0x168], edx
mov eax, dword [ebp - 0x184]
xor edx, edx
push edx
push eax
call fcn.00407e91
add esp, 8
add dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x164]
test byte [ecx + 0x1d], 8
je 0x42058f
mov eax, dword [ebp - 0x164]
mov eax, dword [eax]
add dword [ebp - 0x17c], eax
jmp 0x4205a0
cmp dword [ebp - 0x1a0], 0
je 0x4205a0
xor edx, edx
mov dword [ebp - 0x17c], edx
add dword [ebp - 0x164], 0x28
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x18c]
jbe 0x4204bf
mov eax, dword [ebp - 0x170]
cdq
push edx
push eax
call fcn.00407e91
add esp, 8
mov dword [ebp - 0x180], eax
add dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x170]
cdq
push edx
push eax
call fcn.00407e91
add esp, 8
cmp eax, dword [ebp - 0x180]
jle 0x4205f5
inc dword [ebp - 0x170]
mov eax, dword [ebp - 0x170]
cdq
add eax, dword [ebp - 0x16c]
adc edx, dword [ebp - 0x168]
push edx
push eax
mov eax, dword [ebp - 0x17c]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x50]
cdq
cmp edx, dword [ebp - 0x174]
jne 0x42063b
cmp eax, dword [ebp - 0x178]
jae 0x420642
jmp 0x423c76
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x24], eax
push 0
mov eax, dword [ebp - 0x178]
push eax
push dword [ebp - 0x24]
call fcn.00418b10
add esp, 0xc
test eax, eax
je 0x420676
jmp 0x423c99
mov edx, dword [ebp - 0x24]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0x160], ecx
cmp dword [ebp - 0x170], 0x80
jae 0x4206a3
mov al, byte [ebp - 0x170]
mov edx, dword [ebp - 0x160]
mov byte [edx], al
mov ecx, 1
jmp 0x4206b9
push dword [ebp - 0x170]
push dword [ebp - 0x160]
call fcn.00407a68
add esp, 8
mov ecx, eax
mov dword [ebp - 0x19c], ecx
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x164]
cmp edx, dword [ebp - 0x18c]
ja 0x420751
push dword [ebp - 0x198]
push dword [ebp - 0x164]
call fcn.0041c186
add esp, 8
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 0x80
jae 0x42071b
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x19c]
mov cl, byte [ebp - 0x184]
mov byte [eax + edx], cl
mov eax, 1
jmp 0x420736
push dword [ebp - 0x184]
mov edx, dword [ebp - 0x160]
add edx, dword [ebp - 0x19c]
push edx
call fcn.00407a68
add esp, 8
add dword [ebp - 0x19c], eax
add dword [ebp - 0x164], 0x28
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x18c]
jbe 0x4206d9
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x164]
cmp edx, dword [ebp - 0x18c]
ja 0x4207b4
push dword [ebp - 0x198]
push dword [ebp - 0x164]
mov eax, dword [ebp - 0x178]
sub eax, dword [ebp - 0x19c]
push eax
mov edx, dword [ebp - 0x160]
add edx, dword [ebp - 0x19c]
push edx
call fcn.0041c2e5
add esp, 0x10
add dword [ebp - 0x19c], eax
add dword [ebp - 0x164], 0x28
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x18c]
jbe 0x42076b
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x18], eax
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], 0x50
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x20], edx
cmp dword [ebp - 0x17c], 0
je 0x4207f2
mov eax, dword [ebp - 0x17c]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x24]
or word [eax + 0x1c], 0x800
mov edx, dword [ebp - 0x24]
mov byte [edx + 0x1f], 1
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x10]
cmp byte [ecx + 0x1c], 0
je 0x420817
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x90], 1
jle case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x1a4], ecx
mov eax, dword [ebp - 0x1a4]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + eax*8 + 4]
mov dword [ebp - 0x1a8], eax
push dword [ebp - 0x1a8]
call fcn.0041871b
pop ecx
test eax, eax
jne case.0x41e596.0
push dword [ebp - 0x1a8]
call fcn.004124b8
pop ecx
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0xec], 1
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov al, byte [ecx + 4]
mov byte [ebp - 0x1a9], al
mov edx, dword [ebp - 8]
mov cl, byte [edx + 8]
mov byte [ebp - 0x1aa], cl
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x90], 1
jle 0x4208e2
cmp byte [ebp - 0x1a9], 0
je 0x4208e2
mov edx, dword [ebp - 0x10]
cmp byte [edx + 0x1c], 0
jne 0x4208e2
cmp byte [ebp - 0x1aa], 0
je 0x4208b7
mov ecx, 0x78d481
jmp 0x4208bc
mov ecx, 0x78d48a
push ecx
push 0x78d44e
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x90
push eax
call fcn.00404ec6
add esp, 0x10
mov dword [ebp - 0xc], 1
jmp case.0x41e596.0
mov edx, dword [ebp - 0x10]
mov al, byte [edx + 0x1c]
cmp al, byte [ebp - 0x1a9]
je 0x420979
mov edx, dword [ebp - 8]
cmp dword [edx + 8], 0
je 0x42090f
push dword [ebp - 0x10]
call fcn.0044bcd1
pop ecx
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0x1c], 1
jmp 0x420953
mov eax, dword [ebp - 0x10]
mov dl, byte [ebp - 0x1a9]
mov byte [eax + 0x1c], dl
push dword [ebp + 8]
call fcn.0041b9d1
pop ecx
cmp eax, 5
jne 0x420953
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov dword [ecx + 0x74], eax
mov dl, 1
sub dl, byte [ebp - 0x1a9]
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0x1c], dl
mov eax, 5
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x78], eax
jmp 0x423c5e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x78], 0
jne 0x420968
mov dword [ebp - 0xc], 0x65
jmp 0x423c5e
mov dword [ebp - 0xc], 1
jmp 0x423c5e
cmp byte [ebp - 0x1a9], 0
jne 0x420989
mov eax, 0x78d491
jmp 0x42099e
cmp byte [ebp - 0x1aa], 0
je 0x420999
mov eax, 0x78d4c1
jmp 0x42099e
mov eax, 0x78d4ec
push eax
push dword [ebp - 0x10]
mov edx, dword [ebp + 8]
add edx, 0x90
push edx
call fcn.00404ec6
add esp, 0xc
mov dword [ebp - 0xc], 1
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1b0], eax
mov edx, dword [ebp - 0x1b0]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [eax + edx*8 + 4]
mov dword [ebp - 0x1b4], edx
cmp dword [ebp - 0x1b4], 0
je case.0x41e596.0
mov ecx, dword [ebp - 8]
push dword [ecx + 8]
push dword [ebp - 0x1b4]
call fcn.004117ac
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 5
jne 0x420a2b
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 4]
mov dword [eax + 0x74], edx
mov ecx, 5
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp + 8]
mov dword [eax + 0x78], ecx
jmp 0x423c5e
cmp dword [ebp - 0xc], 0
je case.0x41e596.0
cmp dword [ebp - 0xc], 8
je case.0x41e596.0
jmp 0x423ccc
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x1c0], ecx
cmp dword [ebp - 0x1bc], 0
jge 0x420a8b
mov eax, dword [ebp - 0x1bc]
inc eax
mov edx, eax
neg edx
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp - 0x1c0]
mov eax, ecx
neg ecx
mov dword [ebp - 0x1c0], ecx
lea edx, [ebp - 0x1b8]
push edx
mov ecx, dword [ebp - 0x1c0]
inc ecx
push ecx
mov eax, dword [ebp - 0x1bc]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
push dword [ecx + eax*8 + 4]
call fcn.00417320
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1b8]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*2]
add edx, eax
mov dword [ebp - 0x1c4], edx
push dword [ebp - 0x20]
call fcn.0041918b
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx]
push eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
inc ecx
push ecx
mov eax, dword [ebp - 0x1c4]
push dword [eax + 4]
call fcn.00417407
add esp, 0xc
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 8]
cmp dword [edx + 8], 0
jne 0x420b4a
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [edx + 0x14]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
or dword [eax + 0xc], 0x10
jmp 0x420b64
mov edx, dword [ebp - 8]
cmp dword [edx + 8], 1
jne 0x420b64
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x1c4]
mov ecx, dword [edx + 0x14]
mov byte [ecx + 0x58], al
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
jne case.0x41e596.0
push dword [ebp - 0x10]
call fcn.0041cc63
pop ecx
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
lea ecx, [ecx + ecx*2]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov ecx, dword [edx + ecx*8 + 4]
mov dword [ebp - 0x1cc], ecx
cmp dword [ebp - 0x1cc], 0
je 0x420bbd
lea eax, [ebp - 0x1c8]
push eax
push 1
push dword [ebp - 0x1cc]
call fcn.00417320
add esp, 0xc
mov dword [ebp - 0xc], eax
jmp 0x420bca
xor edx, edx
mov dword [ebp - 0xc], edx
xor ecx, ecx
mov dword [ebp - 0x1c8], ecx
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
mov eax, dword [ebp - 0x1c8]
mov edx, dword [ebp - 8]
cmp eax, dword [edx + 8]
je case.0x41e596.0
mov ecx, dword [ebp + 8]
push dword [ecx + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
push 0x78d515
push dword [ebp - 0x10]
call fcn.00404e31
add esp, 8
mov edx, dword [ebp + 8]
mov dword [edx + 0x90], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
lea ecx, [ecx + ecx*2]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov ecx, dword [edx + ecx*8 + 0x14]
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x1c8]
je 0x420c41
mov edx, dword [ebp - 8]
push dword [edx + 4]
push dword [ebp - 0x10]
call fcn.0042caa7
add esp, 8
push dword [ebp - 0x10]
call fcn.0041cc63
pop ecx
mov dword [ebp - 0xc], 0x11
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1d0], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x1d4], ecx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [ebp - 0x1d8]
shl edx, 3
lea edx, [edx + edx*2]
add eax, edx
mov dword [ebp - 0x1e8], eax
mov ecx, dword [ebp - 0x1e8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1e0], eax
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 9
jne 0x420ce7
mov dword [ebp - 0x1dc], 1
mov eax, dword [ebp - 0x1e8]
mov edx, dword [eax + 0x14]
mov cl, byte [edx + 0x58]
mov eax, dword [ebp + 8]
cmp cl, byte [eax + 0x9b]
jae 0x420cef
mov edx, dword [ebp - 0x1e8]
mov ecx, dword [edx + 0x14]
mov al, byte [ecx + 0x58]
mov edx, dword [ebp + 8]
mov byte [edx + 0x9b], al
jmp 0x420cef
xor ecx, ecx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 8]
cmp byte [eax + 3], 0
je 0x420d23
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 0x1d4]
shl eax, 3
lea eax, [eax + eax*4]
add ecx, eax
mov dword [ebp - 0x1c], ecx
push dword [ebp - 0x1c]
call fcn.0041918b
pop ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
mov dword [ebp - 0x1d4], eax
push 1
push dword [ebp - 0x1d8]
mov edx, dword [ebp - 8]
add edx, 0xffffffec
push edx
push dword [ebp - 0x1d0]
push dword [ebp + 8]
call fcn.0041e12d
add esp, 0x14
mov dword [ebp - 0x1e4], eax
cmp dword [ebp - 0x1e4], 0
je 0x423c99
mov ecx, dword [ebp - 0x1e4]
mov byte [ecx + 0x1c], 1
mov eax, dword [ebp - 0x1e4]
push dword [eax]
mov edx, dword [ebp - 8]
push dword [edx + 0x10]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1e0]
call fcn.00412745
add esp, 0x14
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
cmp byte [ecx + 1], 0xfa
jne 0x420dbf
mov eax, dword [ebp - 0x1e4]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x48], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + 0x14]
mov dl, byte [eax + 0x59]
mov ecx, dword [ebp - 0x1e4]
mov eax, dword [ecx + 0x48]
mov byte [eax + 4], dl
jmp 0x420dca
mov edx, dword [ebp - 0x1e4]
xor ecx, ecx
mov dword [edx + 0x48], ecx
mov eax, dword [ebp - 0xc]
sub eax, 1
jb 0x420e01
sub eax, 4
je 0x420de5
sub eax, 0xb
je 0x420eb5
jmp 0x423ccc
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov dword [edx + 0x74], ecx
mov eax, 5
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x78], eax
jmp 0x423c5e
mov ecx, dword [ebp - 0x1e4]
push dword [ecx]
call fcn.004174ac
pop ecx
mov dword [ebp - 0x1ec], eax
test byte [ebp - 0x1ec], 0xf0
jne 0x420e3a
mov eax, dword [ebp - 0x1ec]
and eax, 7
cmp eax, 5
je 0x420e46
mov edx, dword [ebp - 0x1ec]
and edx, 7
cmp edx, 2
je 0x420e46
mov dword [ebp - 0xc], 0xb
jmp 0x423ccc
test byte [ebp - 0x1ec], 1
setne cl
and ecx, 1
mov eax, dword [ebp - 0x1e4]
mov byte [eax + 0x21], cl
test byte [ebp - 0x1ec], 2
setne dl
and edx, 1
mov ecx, dword [ebp - 0x1e4]
mov byte [ecx + 0x22], dl
mov eax, dword [ebp - 0x1e4]
cmp byte [eax + 0x21], 0
je 0x420e87
mov edx, dword [ebp - 8]
cmp byte [edx + 1], 0xfa
je 0x420ea4
mov ecx, dword [ebp - 0x1e4]
cmp byte [ecx + 0x22], 0
je case.0x41e596.0
mov eax, dword [ebp - 8]
cmp byte [eax + 1], 0xfa
je case.0x41e596.0
mov dword [ebp - 0xc], 0xb
jmp 0x423ccc
mov edx, dword [ebp - 8]
cmp byte [edx + 1], 0xfa
setne cl
and ecx, 1
mov eax, dword [ebp - 0x1e4]
mov byte [eax + 0x21], cl
mov edx, dword [ebp - 0x1e4]
xor ecx, ecx
mov cl, byte [edx + 0x21]
cmp ecx, 1
sbb eax, eax
neg eax
mov edx, dword [ebp - 0x1e4]
mov byte [edx + 0x22], al
mov ecx, dword [ebp - 0x1e4]
xor eax, eax
mov dword [ecx], eax
xor edx, edx
mov dword [ebp - 0xc], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1f0], eax
push 1
push 0xffffffffffffffff
push dword [ebp - 8]
push dword [ebp - 0x1f0]
push dword [ebp + 8]
call fcn.0041e12d
add esp, 0x14
mov dword [ebp - 0x1f4], eax
cmp dword [ebp - 0x1f4], 0
je 0x423c99
mov edx, dword [ebp - 0x1f4]
mov byte [edx + 0x1c], 1
mov ecx, dword [ebp - 0x1f4]
add ecx, 0x30
push ecx
push dword [0x789bac]
push 0x1f4
push 1
push 0
push dword [ebp - 0x10]
call fcn.0044c5fa
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x420f88
push 1
mov eax, dword [ebp - 0x1f4]
push dword [eax + 0x30]
call fcn.004117ac
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x42104d
mov edx, dword [ebp - 8]
cmp dword [edx + 0x10], 0
je 0x421021
push 2
lea ecx, [ebp - 0x1f8]
push ecx
mov eax, dword [ebp - 0x1f4]
push dword [eax + 0x30]
call fcn.00416e40
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x421015
mov edx, dword [ebp - 0x1f4]
push dword [edx]
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
push 1
push dword [ebp - 0x1f8]
mov eax, dword [ebp - 0x1f4]
push dword [eax + 0x30]
call fcn.00412745
add esp, 0x14
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0x1f4]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x48], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [ecx + 8]
mov edx, dword [eax + 0x14]
mov cl, byte [edx + 0x59]
mov eax, dword [ebp - 0x1f4]
mov edx, dword [eax + 0x48]
mov byte [edx + 4], cl
mov ecx, dword [ebp - 0x1f4]
mov byte [ecx + 0x21], 0
jmp 0x42104d
mov eax, dword [ebp - 0x1f4]
push dword [eax]
push 0
push 1
push 1
mov edx, dword [ebp - 0x1f4]
push dword [edx + 0x30]
call fcn.00412745
add esp, 0x14
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x1f4]
mov byte [ecx + 0x21], 1
mov eax, dword [ebp - 0x1f4]
xor edx, edx
mov dl, byte [eax + 0x21]
cmp edx, 1
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x1f4]
mov byte [eax + 0x22], cl
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x1fc], ecx
push 0
push 0xffffffffffffffff
mov eax, dword [ebp - 8]
add eax, 0xffffffec
push eax
push dword [ebp - 0x1fc]
push dword [ebp + 8]
call fcn.0041e12d
add esp, 0x14
mov dword [ebp - 0x200], eax
cmp dword [ebp - 0x200], 0
je 0x423c99
mov edx, dword [ebp - 0x200]
mov byte [edx + 0x1c], 1
mov ecx, dword [ebp - 0x200]
mov byte [ecx + 0x1e], 1
mov eax, dword [ebp - 0x200]
mov edx, dword [ebp - 8]
mov cl, byte [edx + 8]
mov byte [eax + 0x1f], cl
mov eax, dword [ebp - 0x200]
mov byte [eax + 0x21], 1
mov edx, dword [ebp - 0x200]
mov byte [edx + 0x22], 0
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x204], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x204]
push dword [ecx + eax*4]
push dword [ebp + 8]
call fcn.0041b1a5
add esp, 8
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x204]
xor edx, edx
mov dword [ecx + eax*4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x208], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x208]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x20c], edx
mov ecx, dword [ebp - 0x20c]
cmp dword [ecx], 0
je 0x4213a6
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0x214], edx
mov ecx, dword [ebp - 0x20c]
mov byte [ecx + 0x1c], 0
mov eax, dword [ebp - 0x20c]
cmp byte [eax + 0x21], 0
je 0x42122e
push dword [ebp - 0x20]
call fcn.00418feb
pop ecx
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], edx
mov edx, dword [ebp - 8]
cmp dword [edx + 8], 0
jne 0x4211c6
mov ecx, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x21c]
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x218]
mov dword [ecx + 0x2c], eax
mov edx, dword [ebp - 0x20c]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp - 0x20c]
mov byte [ecx + 0x20], 1
jmp case.0x41e596.0
lea eax, [ebp - 0x210]
push eax
push 0
push dword [ebp - 0x218]
push dword [ebp - 0x21c]
push 0
mov ecx, dword [ebp - 0x20c]
push dword [ecx]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4211fb
jmp 0x423ccc
mov eax, dword [ebp - 0x20c]
mov edx, dword [ebp - 0x21c]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x218]
mov dword [eax + 0xc], edx
cmp dword [ebp - 0x210], 0
sete cl
and ecx, 1
mov eax, dword [ebp - 0x20c]
mov byte [eax + 0x19], cl
jmp 0x4212d3
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x220], ecx
mov eax, dword [ebp - 0x20c]
mov edx, dword [eax + 0x48]
mov dword [ebp - 0x5d4], edx
mov cx, word [ebp - 0x220]
mov word [ebp - 0x5d0], cx
cmp dword [ebp - 0x214], 6
je 0x421269
cmp dword [ebp - 0x214], 0x54
jne 0x421274
mov word [ebp - 0x5ce], 8
jmp 0x42127d
mov word [ebp - 0x5ce], 0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x5cc], edx
lea edx, [ebp - 0x210]
push edx
push 0
push 0
push 0
lea ecx, [ebp - 0x5d4]
push ecx
mov eax, dword [ebp - 0x20c]
push dword [eax]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4212c9
jmp 0x423ccc
mov edx, dword [ebp - 0x20c]
mov byte [edx + 0x19], 0
mov ecx, dword [ebp - 0x20c]
mov byte [ecx + 0x20], 0
mov eax, dword [ebp - 0x20c]
xor edx, edx
mov dword [eax + 0x60], edx
cmp dword [ebp - 0x214], 0x78
je 0x4212fa
cmp dword [ebp - 0x214], 6
jne 0x42133d
cmp dword [ebp - 0x210], 0
jge 0x421333
lea ecx, [ebp - 0x210]
push ecx
mov eax, dword [ebp - 0x20c]
push dword [eax]
call fcn.00413931
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x423ccc
mov edx, dword [ebp - 0x20c]
mov byte [edx + 0x19], 0
jmp 0x42138a
xor ecx, ecx
mov dword [ebp - 0x210], ecx
jmp 0x42138a
cmp dword [ebp - 0x210], 0
jl 0x421376
lea eax, [ebp - 0x210]
push eax
mov edx, dword [ebp - 0x20c]
push dword [edx]
call fcn.00413ac3
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x423ccc
mov ecx, dword [ebp - 0x20c]
mov byte [ecx + 0x19], 0
jmp 0x42138a
mov eax, dword [ebp - 0x20c]
push dword [eax]
call fcn.00413911
pop ecx
mov dword [ebp - 0x210], eax
cmp dword [ebp - 0x210], 0
je case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x20c]
cmp byte [eax + 0x1e], 0
jne case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x224], edx
xor ecx, ecx
mov dword [ebp - 0x228], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x224]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x22c], eax
cmp dword [eax], 0
je 0x4214b0
push 0xc0
lea edx, [ebp - 0x560]
push edx
mov ecx, dword [ebp - 0x20]
push dword [ecx + 0x14]
mov eax, dword [ebp - 0x20]
push dword [eax + 0x18]
mov edx, dword [ebp - 0x22c]
push dword [edx + 0x48]
call fcn.0041c6e0
add esp, 0x14
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0
jne 0x421434
jmp 0x423c99
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x7e
jne 0x42144b
mov edx, dword [ebp - 0x234]
or word [edx + 6], 0x10
lea ecx, [ebp - 0x230]
push ecx
push 0
push 0
push 0
push dword [ebp - 0x234]
mov eax, dword [ebp - 0x22c]
push dword [eax]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0xc], eax
push dword [ebp - 0x234]
call fcn.0041c868
pop ecx
cmp dword [ebp - 0xc], 0
je 0x421488
jmp case.0x41e596.0
cmp dword [ebp - 0x230], 0
sete dl
and edx, 1
mov dword [ebp - 0x228], edx
mov ecx, dword [ebp - 0x22c]
mov byte [ecx + 0x20], 0
mov eax, dword [ebp - 0x22c]
xor edx, edx
mov dword [eax + 0x60], edx
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx]
cmp eax, 0x7e
jne 0x4214d8
cmp dword [ebp - 0x228], 0
je case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
cmp dword [ebp - 0x228], 0
jne case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x238], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x10]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x244], ecx
push dword [ebp - 0x20]
call fcn.0041918b
pop ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov dword [ebp - 0x24c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x248], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x238]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x23c], edx
mov ecx, dword [ebp - 0x23c]
mov eax, dword [ecx]
mov dword [ebp - 0x240], eax
cmp dword [ebp - 0x240], 0
je case.0x41e596.0
push 0xc0
lea edx, [ebp - 0x560]
push edx
mov ecx, dword [ebp - 0x244]
push dword [ecx + 0x14]
mov eax, dword [ebp - 0x244]
push dword [eax + 0x18]
mov edx, dword [ebp - 0x23c]
push dword [edx + 0x48]
call fcn.0041c6e0
add esp, 0x14
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0
jne 0x4215aa
jmp 0x423c99
mov ecx, dword [ebp - 0x25c]
or word [ecx + 6], 4
mov eax, dword [ebp - 0x23c]
xor edx, edx
mov dword [eax + 0x60], edx
lea ecx, [ebp - 0x250]
push ecx
push 0
push 0
push 0
push dword [ebp - 0x25c]
push dword [ebp - 0x240]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4215fb
push dword [ebp - 0x25c]
call fcn.0041c868
pop ecx
jmp 0x423ccc
cmp dword [ebp - 0x250], 0
jge 0x421640
lea eax, [ebp - 0x250]
push eax
push dword [ebp - 0x240]
call fcn.00413931
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x250], 0
je 0x421640
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
push dword [ebp - 0x25c]
call fcn.0041c868
pop ecx
jmp case.0x41e596.0
lea eax, [ebp - 0x250]
push eax
push dword [ebp - 0x25c]
push dword [ebp - 0x23c]
call fcn.0041cb9a
add esp, 0xc
mov dword [ebp - 0xc], eax
push dword [ebp - 0x25c]
call fcn.0041c868
pop ecx
cmp dword [ebp - 0xc], 0
jne 0x423ccc
cmp dword [ebp - 0x250], 0
jle 0x42168c
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
lea eax, [ebp - 0x258]
push eax
push dword [ebp - 0x240]
call fcn.0041ca8d
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4216af
jmp 0x423ccc
mov eax, dword [ebp - 0x258]
mov edx, dword [ebp - 0x254]
cmp edx, dword [ebp - 0x248]
jne 0x4216da
cmp eax, dword [ebp - 0x24c]
jne 0x4216da
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x258]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x254]
mov dword [edx + 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x260], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x30]
mov edx, dword [ebp - 0x260]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x264], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x268], eax
test eax, eax
je 0x4217bb
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov dword [ebp - 0x274], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x270], ecx
lea eax, [ebp - 0x26c]
push eax
push 0
push dword [ebp - 0x270]
push dword [ebp - 0x274]
push 0
push dword [ebp - 0x268]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x264]
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
mov dword [ecx + 8], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0xc], edx
cmp dword [ebp - 0x26c], 0
sete cl
and ecx, 1
mov eax, dword [ebp - 0x264]
mov byte [eax + 0x19], cl
mov edx, dword [ebp - 0x264]
mov byte [edx + 0x1c], 0
mov ecx, dword [ebp - 0x264]
xor eax, eax
mov dword [ecx + 0x60], eax
cmp dword [ebp - 0x26c], 0
je case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x264]
cmp byte [eax + 0x1e], 0
jne case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x278], edx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x30]
mov ebx, dword [ebp - 0x278]
mov ecx, dword [ecx + ebx*4]
mov eax, dword [ecx + 0x50]
mov edx, dword [ecx + 0x54]
add dword [ecx + 0x50], 1
adc dword [ecx + 0x54], 0
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov eax, dword [ebp - 0x24]
mov word [eax + 0x1c], dx
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x280], 0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x27c]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x288], eax
cmp dword [eax], 0
jne 0x421866
jmp 0x421bd8
xor edx, edx
mov dword [ebp - 0x290], edx
xor ecx, ecx
mov dword [ebp - 0x294], ecx
mov eax, dword [ebp - 0x288]
push dword [eax]
call fcn.004174ac
pop ecx
and eax, 3
dec eax
je 0x421896
mov dword [ebp - 0xc], 0xb
jmp 0x423ccc
mov edx, dword [ebp - 0x288]
cmp byte [edx + 0x1b], 0
jne 0x421a72
mov ecx, dword [ebp - 0x288]
cmp byte [ecx + 0x1d], 0
je 0x4218cf
mov eax, dword [ebp - 0x288]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x284], edx
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x280], edx
jmp 0x421971
lea ecx, [ebp - 0x28c]
push ecx
mov eax, dword [ebp - 0x288]
push dword [eax]
call fcn.004133de
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4218f4
jmp 0x423ccc
cmp dword [ebp - 0x28c], 0
je 0x421913
mov dword [ebp - 0x284], 1
mov dword [ebp - 0x280], 0
jmp 0x421971
lea edx, [ebp - 0x284]
push edx
mov ecx, dword [ebp - 0x288]
push dword [ecx]
call fcn.00412896
add esp, 8
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x284], eax
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0x7fffffff
jne 0x421963
cmp dword [ebp - 0x284], 0xffffffff
jne 0x421963
mov edx, dword [ebp - 0x288]
mov byte [edx + 0x1b], 1
jmp 0x421971
add dword [ebp - 0x284], 1
adc dword [ebp - 0x280], 0
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0xc], 0
je 0x421a29
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x2a0], edx
push dword [ebp - 0x2a0]
call fcn.0041918b
pop ecx
mov edx, dword [ebp - 0x2a0]
cmp dword [edx + 4], 0x7fffffff
jne 0x4219b6
cmp dword [edx], 0xffffffff
je 0x4219c4
mov ecx, dword [ebp - 0x288]
cmp byte [ecx + 0x1b], 0
je 0x4219d0
mov dword [ebp - 0xc], 0xd
jmp 0x423ccc
mov eax, dword [ebp - 0x2a0]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, 1
adc edx, 0
cmp edx, dword [ebp - 0x280]
jne 0x4219f3
cmp eax, dword [ebp - 0x284]
jbe 0x421a12
jmp 0x4219f5
jle 0x421a12
mov eax, dword [ebp - 0x2a0]
mov edx, dword [eax + 4]
mov eax, dword [eax]
add eax, 1
adc edx, 0
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], edx
mov ecx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x284]
mov dword [ecx], eax
mov eax, dword [ebp - 0x280]
mov dword [ecx + 4], eax
cmp dword [ebp - 0x280], 0x7fffffff
jne 0x421a3c
cmp dword [ebp - 0x284], 0xffffffff
jae 0x421a68
mov edx, dword [ebp - 0x288]
mov byte [edx + 0x1d], 1
mov eax, dword [ebp - 0x284]
mov edx, dword [ebp - 0x280]
add eax, 1
adc edx, 0
mov ecx, dword [ebp - 0x288]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x421a72
mov eax, dword [ebp - 0x288]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x288]
cmp byte [edx + 0x1b], 0
je 0x421bb9
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x38]
mov dword [ebp - 0x284], eax
mov eax, dword [ecx + 0x3c]
mov dword [ebp - 0x280], eax
xor edx, edx
mov dword [ebp - 0x294], edx
cmp dword [ebp - 0x294], 0
jne 0x421adc
mov eax, dword [ebp - 0x284]
mov edx, dword [ebp - 0x280]
and eax, 0xffffff
xor edx, edx
cmp edx, dword [ebp - 0x280]
jne 0x421adc
cmp eax, dword [ebp - 0x284]
jne 0x421adc
add dword [ebp - 0x284], 1
adc dword [ebp - 0x280], 0
jmp 0x421b0a
lea ecx, [ebp - 0x284]
push ecx
push 8
call fcn.0040646e
add esp, 8
cmp dword [ebp - 0x294], 5
jge 0x421b0a
and dword [ebp - 0x284], 0xffffff
mov dword [ebp - 0x280], 0
cmp dword [ebp - 0x280], 0
jne 0x421b1a
cmp dword [ebp - 0x284], 0
je 0x421b67
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0x29c], eax
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x298], eax
lea edx, [ebp - 0x28c]
push edx
push 0
push dword [ebp - 0x298]
push dword [ebp - 0x29c]
push 0
mov eax, dword [ebp - 0x288]
push dword [eax]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0x290], eax
inc dword [ebp - 0x294]
cmp dword [ebp - 0x294], 0x64
jge 0x421b86
cmp dword [ebp - 0x290], 0
jne 0x421b86
cmp dword [ebp - 0x28c], 0
je 0x421a9f
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x284]
mov dword [edx + 0x38], ecx
mov ecx, dword [ebp - 0x280]
mov dword [edx + 0x3c], ecx
cmp dword [ebp - 0x290], 0
jne 0x421bb9
cmp dword [ebp - 0x28c], 0
jne 0x421bb9
mov dword [ebp - 0xc], 0xd
jmp 0x423ccc
mov eax, dword [ebp - 0x288]
mov byte [eax + 0x19], 0
mov edx, dword [ebp - 0x288]
mov byte [edx + 0x20], 0
mov ecx, dword [ebp - 0x288]
xor eax, eax
mov dword [ecx + 0x60], eax
mov edx, dword [ebp - 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xffe0
or cx, 4
mov eax, dword [ebp - 0x24]
mov word [eax + 0x1c], cx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x284]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x280]
mov dword [edx + 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x2a4], edx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x2a8], ecx
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x2b4], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x2b4]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x2b8], edx
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ecx]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x2ac], eax
mov edx, dword [ebp - 8]
test byte [edx + 3], 1
je 0x421c86
mov ecx, dword [ebp + 8]
inc dword [ecx + 0xa0]
mov eax, dword [ebp - 8]
test byte [eax + 3], 2
je 0x421ca3
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2a8]
mov eax, dword [ecx]
mov dword [edx + 0x30], eax
mov eax, dword [ecx + 4]
mov dword [edx + 0x34], eax
mov edx, dword [ebp - 0x2b8]
cmp byte [edx + 0x1d], 0
je 0x421cd8
mov eax, dword [ebp - 0x2a8]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2b8]
cmp edx, dword [ecx + 0x14]
jne 0x421ccc
cmp eax, dword [ecx + 0x10]
jb 0x421cd8
jmp 0x421cce
jl 0x421cd8
mov eax, dword [ebp - 0x2b8]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x2a4]
test byte [edx + 0x1c], 1
je 0x421cfa
mov ecx, dword [ebp - 0x2a4]
xor eax, eax
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x2a4]
xor ecx, ecx
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0x2b8]
cmp byte [eax + 0x1e], 0
je 0x421e43
mov edx, dword [ebp - 0x2b8]
cmp byte [edx + 0x1f], 0
jne 0x421d2a
mov ecx, dword [ebp - 0x2b8]
push dword [ecx + 0x38]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov eax, dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x2b0]
mov dword [eax + 0x40], edx
mov edx, dword [ebp - 0x2ac]
mov dword [eax + 0x44], edx
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [ecx + 0x18]
mov edx, dword [ebp - 0x2b8]
mov dword [edx + 0x34], eax
mov ecx, dword [ebp - 0x2a4]
mov eax, dword [ecx + 0x14]
mov edx, dword [ebp - 0x2a4]
cmp eax, dword [edx + 0x24]
je 0x421d74
mov ecx, dword [ebp - 0x2b8]
cmp byte [ecx + 0x1f], 0
je 0x421dbb
mov eax, dword [ebp - 0x2a4]
mov edx, dword [eax + 0x14]
mov ecx, dword [ebp - 0x2b8]
mov dword [ecx + 0x38], edx
mov eax, dword [ebp - 0x2b8]
cmp byte [eax + 0x1f], 0
jne 0x421e37
mov edx, dword [ebp - 0x2a4]
and word [edx + 0x1c], 0xffbf
mov ecx, dword [ebp - 0x2a4]
or word [ecx + 0x1c], 0x100
mov eax, dword [ebp - 0x2a4]
xor edx, edx
mov dword [eax + 0x24], edx
jmp 0x421e37
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [ecx + 0x34]
add eax, 2
push eax
call fcn.0040476a
pop ecx
mov edx, dword [ebp - 0x2b8]
mov dword [edx + 0x38], eax
mov ecx, dword [ebp - 0x2b8]
cmp dword [ecx + 0x38], 0
je 0x423c99
mov eax, dword [ebp - 0x2b8]
push dword [eax + 0x34]
mov edx, dword [ebp - 0x2a4]
push dword [edx + 0x14]
mov ecx, dword [ebp - 0x2b8]
push dword [ecx + 0x38]
call fcn.0074d9f4
add esp, 0xc
mov eax, dword [ebp - 0x2b8]
mov edx, dword [eax + 0x34]
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [ecx + 0x38]
mov byte [eax + edx], 0
mov edx, dword [ebp - 0x2b8]
mov ecx, dword [edx + 0x34]
mov eax, dword [ebp - 0x2b8]
mov edx, dword [eax + 0x38]
mov byte [edx + ecx + 1], 0
mov ecx, dword [ebp - 0x2b8]
mov byte [ecx + 0x1c], 0
jmp 0x421eac
mov eax, dword [ebp - 0x2a4]
test byte [eax + 0x1d], 8
je 0x421e5f
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
mov dword [ebp - 0x2bc], eax
jmp 0x421e67
xor edx, edx
mov dword [ebp - 0x2bc], edx
mov ecx, dword [ebp - 8]
xor eax, eax
mov al, byte [ecx + 3]
and eax, 8
push eax
push dword [ebp - 0x2bc]
mov edx, dword [ebp - 0x2a4]
push dword [edx + 0x18]
mov ecx, dword [ebp - 0x2a4]
push dword [ecx + 0x14]
push dword [ebp - 0x2ac]
push dword [ebp - 0x2b0]
push 0
mov edx, dword [ebp - 0x2b8]
push dword [edx]
call fcn.0041659e
add esp, 0x20
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x2b8]
mov byte [ecx + 0x19], 0
mov eax, dword [ebp - 0x2b8]
mov byte [eax + 0x20], 0
mov edx, dword [ebp - 0x2b8]
xor ecx, ecx
mov dword [edx + 0x60], ecx
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0xb8], 0
je case.0x41e596.0
mov edx, dword [ebp - 8]
cmp dword [edx + 0x10], 0
je case.0x41e596.0
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + eax*8]
mov dword [ebp - 0x2c0], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x2c4], ecx
mov eax, dword [ebp - 8]
test byte [eax + 3], 4
je 0x421f29
mov edx, 0x17
jmp 0x421f2e
mov edx, 0x12
mov dword [ebp - 0x2c8], edx
push dword [ebp - 0x2ac]
push dword [ebp - 0x2b0]
push dword [ebp - 0x2c4]
push dword [ebp - 0x2c0]
push dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x10]
push dword [ecx + 0xb4]
mov eax, dword [ebp - 0x10]
call dword [eax + 0xb8]
add esp, 0x18
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x2cc], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x2cc]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x2d8], eax
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0xb8], 0
je 0x421fba
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x10], 0
je 0x421fba
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax + 8]
mov dword [ebp - 0x2d4], edx
mov edx, dword [eax + 0xc]
mov dword [ebp - 0x2d0], edx
push dword [ebp - 0x2d8]
call fcn.0041c0aa
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x423ccc
mov ecx, dword [ebp - 0x2d8]
push dword [ecx]
call fcn.00416834
pop ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x2d8]
mov byte [eax + 0x1d], 0
mov edx, dword [ebp - 0x2d8]
xor ecx, ecx
mov dword [edx + 0x60], ecx
cmp dword [ebp - 0xc], 0
jne 0x42206a
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0xb8], 0
je 0x42206a
mov edx, dword [ebp - 8]
cmp dword [edx + 0x10], 0
je 0x42206a
mov ecx, dword [ebp - 0x2d8]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + eax*8]
mov dword [ebp - 0x2dc], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x2e0], ecx
push dword [ebp - 0x2d0]
push dword [ebp - 0x2d4]
push dword [ebp - 0x2e0]
push dword [ebp - 0x2dc]
push 9
mov edx, dword [ebp - 0x10]
push dword [edx + 0xb4]
mov ecx, dword [ebp - 0x10]
call dword [ecx + 0xb8]
add esp, 0x18
mov eax, dword [ebp - 8]
test byte [eax + 8], 1
je case.0x41e596.0
mov edx, dword [ebp + 8]
inc dword [edx + 0xa0]
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
cmp dword [ecx + 4], 0
je 0x4220a2
mov eax, dword [ebp + 8]
push dword [eax + 0xa0]
push dword [ebp - 0x10]
call fcn.0041cc3d
add esp, 8
mov edx, dword [ebp + 8]
xor ecx, ecx
mov dword [edx + 0xa0], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x2e4], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x2e4]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x2e8], eax
mov edx, dword [ebp - 0x2e8]
mov ecx, dword [edx]
mov dword [ebp - 0x2ec], ecx
push dword [ebp - 0x2e8]
call fcn.0041c0aa
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x423ccc
mov eax, dword [ebp - 0x2e8]
cmp byte [eax + 0x22], 0
je 0x422163
lea edx, [ebp - 0x2f8]
push edx
push dword [ebp - 0x2ec]
call fcn.00412896
add esp, 8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x50]
cdq
cmp edx, dword [ebp - 0x2f4]
jne 0x42214e
cmp eax, dword [ebp - 0x2f8]
jae 0x422155
jmp 0x423c76
jge 0x422155
jmp 0x423c76
mov eax, dword [ebp - 0x2f8]
mov dword [ebp - 0x2f0], eax
jmp 0x42218b
lea edx, [ebp - 0x2f0]
push edx
push dword [ebp - 0x2ec]
call fcn.0041291b
add esp, 8
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x50]
cmp eax, dword [ebp - 0x2f0]
jae 0x42218b
jmp 0x423c76
push 0
push dword [ebp - 0x2f0]
push dword [ebp - 0x24]
call fcn.00418b10
add esp, 0xc
test eax, eax
je 0x4221a7
jmp 0x423c99
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2f0]
mov dword [edx + 0x18], ecx
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 0x10
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
mov eax, dword [ebp - 0x2e8]
cmp byte [eax + 0x22], 0
je 0x4221f7
mov edx, dword [ebp - 0x24]
push dword [edx + 0x14]
push dword [ebp - 0x2f0]
push 0
push dword [ebp - 0x2ec]
call fcn.00412e1e
add esp, 0x10
mov dword [ebp - 0xc], eax
jmp 0x422216
mov ecx, dword [ebp - 0x24]
push dword [ecx + 0x14]
push dword [ebp - 0x2f0]
push 0
push dword [ebp - 0x2ec]
call fcn.00412e7a
add esp, 0x10
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x1f], 1
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x2fc], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x2fc]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x300], eax
push dword [ebp - 0x300]
call fcn.0041c0aa
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x423ccc
mov edx, dword [ebp - 0x300]
cmp byte [edx + 0x19], 0
je 0x422282
mov ecx, dword [ebp - 0x300]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x308], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x304], eax
jmp 0x4222ea
mov edx, dword [ebp - 0x300]
cmp byte [edx + 0x1e], 0
je 0x4222a8
mov ecx, dword [ebp - 0x300]
mov eax, dword [ecx + 0x40]
mov dword [ebp - 0x308], eax
mov eax, dword [ecx + 0x44]
mov dword [ebp - 0x304], eax
jmp 0x4222ea
mov edx, dword [ebp - 0x300]
cmp byte [edx + 0x1c], 0
je 0x4222bb
jmp case.0x41e596.0
lea ecx, [ebp - 0x308]
push ecx
mov eax, dword [ebp - 0x300]
push dword [eax]
call fcn.00412896
add esp, 8
mov edx, dword [ebp - 0x308]
mov dword [ebp - 0x308], edx
mov edx, dword [ebp - 0x304]
mov dword [ebp - 0x304], edx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x308]
mov dword [ecx], eax
mov eax, dword [ebp - 0x304]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xffe0
or cx, 4
mov eax, dword [ebp - 0x24]
mov word [eax + 0x1c], cx
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x30c], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x310], eax
mov edx, dword [ebp - 0x310]
mov byte [edx + 0x1c], 1
mov ecx, dword [ebp - 0x310]
mov byte [ecx + 0x19], 0
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x314], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x30]
mov edx, dword [ebp - 0x314]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x318], ecx
mov eax, dword [ebp - 0x318]
mov edx, dword [eax]
mov dword [ebp - 0x31c], edx
lea ecx, [ebp - 0x320]
push ecx
push dword [ebp - 0x31c]
call fcn.004133de
add esp, 8
mov dword [ebp - 0xc], eax
mov al, byte [ebp - 0x320]
mov edx, dword [ebp - 0x318]
mov byte [edx + 0x1c], al
mov ecx, dword [ebp - 0x318]
mov byte [ecx + 0x20], 0
mov eax, dword [ebp - 0x318]
xor edx, edx
mov dword [eax + 0x60], edx
cmp dword [ebp - 0x320], 0
je case.0x41e596.0
mov ecx, dword [ebp - 8]
cmp dword [ecx + 8], 0
jle case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x324], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x324]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x328], edx
mov ecx, dword [ebp - 0x328]
mov eax, dword [ecx]
mov dword [ebp - 0x32c], eax
test eax, eax
je 0x422460
lea edx, [ebp - 0x330]
push edx
push dword [ebp - 0x32c]
call fcn.00413396
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x330], 0
sete cl
and ecx, 1
mov eax, dword [ebp - 0x328]
mov byte [eax + 0x1a], cl
mov edx, dword [ebp - 0x328]
mov byte [edx + 0x20], 0
mov ecx, dword [ebp - 0x328]
xor eax, eax
mov dword [ecx + 0x60], eax
jmp 0x42246a
mov dword [ebp - 0x330], 1
mov dl, byte [ebp - 0x330]
mov ecx, dword [ebp - 0x328]
mov byte [ecx + 0x1c], dl
cmp dword [ebp - 0x330], 0
je case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x10]
cmp dword [ecx + 0xd8], 0
jne 0x423d12
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x334], edx
cmp dword [ebp - 0x334], 0
jne 0x4224c8
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x334]
mov eax, dword [ecx]
mov dword [ebp - 0x338], eax
mov dword [ebp - 0x33c], 1
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x6a
jne 0x422503
lea eax, [ebp - 0x33c]
push eax
push dword [ebp - 0x338]
call fcn.00413931
add esp, 8
jmp 0x422518
lea edx, [ebp - 0x33c]
push edx
push dword [ebp - 0x338]
call fcn.00413ac3
add esp, 8
mov dword [ebp - 0xc], eax
mov cl, byte [ebp - 0x33c]
mov eax, dword [ebp - 0x334]
mov byte [eax + 0x1c], cl
mov edx, dword [ebp - 0x334]
xor ecx, ecx
mov dword [edx + 0x60], ecx
cmp dword [ebp - 0x33c], 0
jne 0x422548
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0x334]
mov byte [ecx + 0x19], 0
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x340], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x30]
mov edx, dword [ebp - 0x340]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x344], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x348], eax
test eax, eax
je case.0x41e596.0
mov edx, dword [ebp - 0x1c]
test byte [edx + 0x1d], 8
je 0x42259c
push dword [ebp - 0x1c]
call fcn.00418cc9
pop ecx
jmp 0x42259e
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x18]
mov dword [ebp - 0x34c], ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x350], edx
mov ecx, dword [ebp - 8]
push dword [ecx + 0xc]
push 0
push 0
push 0x78d531
mov eax, dword [ebp - 0x34c]
cdq
push edx
push eax
push dword [ebp - 0x350]
push dword [ebp - 0x348]
call fcn.0041659e
add esp, 0x20
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x344]
xor eax, eax
mov dword [ecx + 0x60], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x354], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x354]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x358], eax
mov edx, dword [eax]
mov dword [ebp - 0x35c], edx
test edx, edx
je case.0x41e596.0
mov eax, dword [ebp - 0x358]
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x5e0], ecx
mov eax, dword [ebp - 8]
mov dx, word [eax + 0xc]
mov word [ebp - 0x5dc], dx
mov word [ebp - 0x5da], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x5d8], eax
lea eax, [ebp - 0x360]
push eax
push 0
push 0
push 0
lea edx, [ebp - 0x5e0]
push edx
push dword [ebp - 0x35c]
call fcn.0041345d
add esp, 0x18
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4226b6
cmp dword [ebp - 0x360], 0
jne 0x4226b6
push dword [ebp - 0x35c]
call fcn.00416834
pop ecx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x358]
xor eax, eax
mov dword [ecx + 0x60], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x364], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 0x364]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x36c], eax
mov edx, dword [eax]
mov dword [ebp - 0x368], edx
test edx, edx
je case.0x41e596.0
mov eax, dword [ebp - 0x36c]
cmp byte [eax + 0x1c], 0
jne case.0x41e596.0
lea ecx, [ebp - 0x374]
push ecx
push dword [ebp - 0x368]
call fcn.0041ca8d
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x42272a
jmp 0x423ccc
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x374]
mov dword [eax], edx
mov edx, dword [ebp - 0x370]
mov dword [eax + 4], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x378], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 0x378]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x37c], edx
cmp dword [edx], 0
je case.0x41e596.0
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x5ec], ecx
mov eax, dword [ebp - 8]
mov dx, word [eax + 0x10]
mov word [ebp - 0x5e8], dx
mov ecx, dword [ebp - 8]
cmp byte [ecx + 3], 0
je 0x4227b5
mov word [ebp - 0x5e6], 0xc
jmp 0x4227be
mov word [ebp - 0x5e6], 4
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x5e4], edx
lea edx, [ebp - 0x380]
push edx
lea ecx, [ebp - 0x5ec]
push ecx
push dword [ebp - 0x37c]
call fcn.0041cb9a
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x29
jne 0x42280b
neg dword [ebp - 0x380]
jmp 0x422811
inc dword [ebp - 0x380]
cmp dword [ebp - 0x380], 0
jle case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x41e596.0
xor edx, edx
mov dword [ebp - 0x388], edx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x8c]
mov dword [ebp - 0x38c], eax
cmp dword [ebp - 0x38c], 0
je 0x422899
mov edx, dword [ebp - 0x38c]
cmp dword [edx + 0x44], 0xbdf20da3
jne 0x422881
mov ecx, dword [ebp - 0x38c]
xor eax, eax
mov al, byte [ecx + 0x9c]
cmp eax, 2
jge 0x422881
mov edx, dword [ebp - 0x38c]
cmp dword [edx + 0x74], 0
jl 0x422881
inc dword [ebp - 0x388]
mov ecx, dword [ebp - 0x38c]
mov eax, dword [ecx + 8]
mov dword [ebp - 0x38c], eax
cmp dword [ebp - 0x38c], 0
jne 0x42284d
cmp dword [ebp - 0x388], 1
jle 0x4228bb
mov dword [ebp - 0xc], 6
mov edx, dword [ebp + 8]
mov dword [edx + 0x80], 2
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x390], eax
lea edx, [ebp - 0x384]
push edx
mov ecx, dword [ebp - 8]
push dword [ecx + 4]
mov eax, dword [ebp - 0x390]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
push dword [ecx + eax*8 + 4]
call fcn.004172e2
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
mov eax, dword [ebp - 0x384]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
cmp dword [ebp - 0x384], 0
je case.0x41e596.0
mov eax, dword [ebp - 8]
push dword [eax + 4]
push dword [ebp - 0x384]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
mov eax, dword [ebp - 0x390]
shl eax, 3
lea eax, [eax + eax*2]
add ecx, eax
push ecx
call fcn.0042e967
add esp, 0xc
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
push dword [edx + 4]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
push dword [ecx + eax*8 + 4]
call fcn.00416ff7
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x41e596.0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*2]
add edx, eax
mov dword [ebp - 0x39c], edx
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x33
jne 0x4229b8
mov dword [ebp - 0x398], 5
jmp 0x4229c2
mov dword [ebp - 0x398], 2
push dword [ebp - 0x398]
lea eax, [ebp - 0x394]
push eax
mov edx, dword [ebp - 0x39c]
push dword [edx + 4]
call fcn.00416e40
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
mov eax, dword [ebp - 0x394]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov dword [ebp - 0x3a4], edx
mov ecx, dword [ebp - 8]
cmp dword [ecx + 8], 0
jne 0x422a4f
mov eax, dword [ebp - 0x3a4]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + eax*8 + 0x14]
movzx edx, word [eax + 0x5a]
and edx, 1
dec edx
je 0x422a4f
jmp case.0x41e596.0
cmp dword [ebp - 0x3a4], 1
jne 0x422a5f
mov ecx, 0x78d532
jmp 0x422a64
mov ecx, 0x78d545
mov dword [ebp - 0x3a8], ecx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x5fc], eax
mov edx, dword [ebp - 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x5f8], eax
mov edx, dword [ebp + 8]
add edx, 0x90
mov dword [ebp - 0x5f4], edx
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
push dword [ebp - 0x3a8]
mov eax, dword [ebp - 0x3a4]
lea eax, [eax + eax*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
push dword [ecx + eax*8]
push 0x78d553
push dword [ebp - 0x10]
call fcn.004061f8
add esp, 0x14
mov dword [ebp - 0x3a0], eax
cmp dword [ebp - 0x3a0], 0
je 0x423c99
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x80], 1
xor edx, edx
mov dword [ebp - 0x5f0], edx
push 0
lea ecx, [ebp - 0x5fc]
push ecx
push fcn.00439348
push dword [ebp - 0x3a0]
push dword [ebp - 0x10]
call fcn.004366c1
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x422b12
mov eax, dword [ebp - 0x5f0]
mov dword [ebp - 0xc], eax
push dword [ebp - 0x3a0]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x80], 0
cmp dword [ebp - 0xc], 7
jne case.0x41e596.0
jmp 0x423c99
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x3ac], eax
push dword [ebp - 0x3ac]
push dword [ebp - 0x10]
call fcn.0042b3ba
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
push dword [edx + 0x10]
mov ecx, dword [ebp - 8]
push dword [ecx + 4]
push dword [ebp - 0x10]
call fcn.0042ce19
add esp, 0xc
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
push dword [eax + 0x10]
mov edx, dword [ebp - 8]
push dword [edx + 4]
push dword [ebp - 0x10]
call fcn.0042c9e4
add esp, 0xc
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
mov eax, dword [ebp - 8]
push dword [eax + 4]
push dword [ebp - 0x10]
call fcn.00440ca1
add esp, 0xc
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x3b0], ecx
mov eax, dword [ebp - 0x3b0]
inc eax
shl eax, 2
push eax
push dword [ebp - 0x10]
call fcn.00404c98
add esp, 8
mov dword [ebp - 0x3b4], eax
cmp dword [ebp - 0x3b4], 0
je 0x423c99
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x3c4], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x3b8], eax
mov edx, dword [ebp - 0x3b8]
cmp edx, dword [ebp - 0x3b0]
jge 0x422c6f
mov ecx, dword [ebp - 0x3b8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x18]
push ecx
call fcn.00418feb
pop ecx
mov edx, dword [ebp - 0x3b4]
mov ecx, dword [ebp - 0x3b8]
mov dword [edx + ecx*4], eax
inc dword [ebp - 0x3b8]
mov eax, dword [ebp - 0x3b8]
cmp eax, dword [ebp - 0x3b0]
jl 0x422c36
mov edx, dword [ebp - 0x3b4]
mov ecx, dword [ebp - 0x3b8]
xor eax, eax
mov dword [edx + ecx*4], eax
lea edx, [ebp - 0x3bc]
push edx
mov ecx, dword [ebp - 0x3c4]
mov eax, dword [ecx]
push eax
push dword [ebp - 0x3b0]
push dword [ebp - 0x3b4]
mov edx, dword [ebp - 8]
xor ecx, ecx
mov cl, byte [edx + 3]
lea eax, [ecx + ecx*2]
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + 8]
push dword [ecx + eax*8 + 4]
call fcn.00417e41
add esp, 0x14
mov dword [ebp - 0x3c0], eax
push dword [ebp - 0x3b4]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov eax, dword [ebp - 0x3bc]
cdq
mov ecx, dword [ebp - 0x3c4]
sub dword [ecx], eax
sbb dword [ecx + 4], edx
push dword [ebp - 0x18]
call fcn.00419249
pop ecx
cmp dword [ebp - 0x3bc], 0
jne 0x422cf6
jmp 0x422d20
cmp dword [ebp - 0x3c0], 0
jne 0x422d06
jmp 0x423c99
push fcn.00404a3d
push 1
push 0xffffffffffffffff
push dword [ebp - 0x3c0]
push dword [ebp - 0x18]
call fcn.0041944a
add esp, 0x14
xor eax, eax
mov al, byte [ebp - 0x11]
push eax
push dword [ebp - 0x18]
call fcn.00418ad9
add esp, 8
jmp case.0x41e596.0
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov dword [edx + 0x5c], ecx
push dword [ebp - 0x18]
call fcn.00418feb
pop ecx
push edx
push eax
mov eax, dword [ebp + 8]
add eax, 0x58
push eax
call fcn.0041895c
add esp, 0xc
cmp eax, 7
jne case.0x41e596.0
jmp 0x423c99
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0xd8], 0
jne 0x423d12
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xffe0
or dx, 4
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], dx
push dword [ebp - 0x24]
mov eax, dword [ebp + 8]
add eax, 0x58
push eax
call fcn.00418a08
add esp, 8
cmp eax, 0x65
jne case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x68]
inc dword [eax + 0x68]
mov dword [ebp - 0x3c8], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x6c]
cmp eax, dword [ebp - 0x3c8]
jg 0x422e2d
mov edx, dword [ebp - 0x3c8]
inc edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp - 0x3c8]
inc eax
shl eax, 5
push eax
mov edx, dword [ebp + 8]
push dword [edx + 0x70]
push dword [ebp - 0x10]
call fcn.00404dff
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x70], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x70], 0
je 0x423c99
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x70]
mov eax, dword [ebp - 0x3c8]
shl eax, 5
add ecx, eax
mov dword [ebp - 0x3cc], ecx
mov edx, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 0x30]
mov dword [edx], eax
mov eax, dword [ecx + 0x34]
mov dword [edx + 4], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xa0]
mov eax, dword [ebp - 0x3cc]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x3cc]
lea esi, [edx + 0x58]
lea edi, [ecx + 0xc]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x58
push eax
call fcn.0041893f
add esp, 8
jmp case.0x41e596.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x70]
mov eax, dword [ebp + 8]
dec dword [eax + 0x68]
mov edx, dword [eax + 0x68]
shl edx, 5
add ecx, edx
mov dword [ebp - 0x3d0], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x3d0]
mov edx, dword [eax]
mov dword [ecx + 0x30], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x34], edx
mov ecx, dword [ebp - 0x3d0]
mov eax, dword [ecx + 8]
mov edx, dword [ebp + 8]
mov dword [edx + 0xa0], eax
mov ecx, dword [ebp + 8]
add ecx, 0x58
push ecx
call fcn.00418a89
pop ecx
mov eax, dword [ebp - 0x3d0]
mov edx, dword [ebp + 8]
lea esi, [eax + 0xc]
lea edi, [edx + 0x58]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp case.0x41e596.0
push dword [ebp - 0x18]
call fcn.0041918b
pop ecx
push dword [ebp - 0x1c]
call fcn.0041918b
pop ecx
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
cmp edx, dword [ecx + 4]
jne 0x422f2b
cmp eax, dword [ecx]
jae case.0x41e596.0
jmp 0x422f31
jge case.0x41e596.0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 0
jne 0x422f5a
cmp dword [eax], 0
jbe case.0x41e596.0
jmp 0x422f60
jle case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 0
jne 0x422f83
cmp dword [eax], 0
jae case.0x41e596.0
jmp 0x422f89
jge case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 0x18]
cmp dword [eax + 4], 0
jne case.0x41e596.0
cmp dword [eax], 0
jne case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
dec ecx
mov dword [ebp - 4], ecx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
xor edx, edx
mov dl, byte [eax + 3]
mov dword [ebp - 0x3d4], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add eax, ecx
mov dword [ebp - 0x3e0], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x3e4], edx
xor ecx, ecx
mov dword [ebp - 0x3d8], ecx
mov eax, dword [ebp - 0x3d8]
cmp eax, dword [ebp - 0x3d4]
jge 0x423043
mov edx, dword [ebp - 0x3e4]
mov ecx, dword [ebp - 0x3d8]
mov eax, dword [ebp - 0x3e0]
mov dword [edx + ecx*4], eax
push dword [ebp - 0x3e0]
call fcn.0041e0bc
pop ecx
inc dword [ebp - 0x3d8]
add dword [ebp - 0x3e0], 0x28
mov edx, dword [ebp - 0x3d8]
cmp edx, dword [ebp - 0x3d4]
jl 0x423007
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x63c], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x60c], ecx
mov eax, dword [ebp - 0x3dc]
inc dword [eax + 0x18]
mov word [ebp - 0x618], 1
xor edx, edx
mov dword [ebp - 0x620], edx
xor ecx, ecx
mov dword [ebp - 0x610], ecx
xor eax, eax
mov dword [ebp - 0x614], eax
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x624], edx
xor ecx, ecx
mov dword [ebp - 0x608], ecx
xor eax, eax
mov dword [ebp - 0x604], eax
mov edx, dword [ebp - 0x63c]
cmp byte [edx + 2], 0
je 0x4230ca
mov ecx, dword [ebp - 8]
mov eax, dword [ecx - 4]
mov dword [ebp - 0x604], eax
push dword [ebp - 0x3e4]
push dword [ebp - 0x3d4]
lea edx, [ebp - 0x63c]
push edx
mov ecx, dword [ebp - 0x63c]
call dword [ecx + 0x10]
add esp, 0xc
cmp dword [ebp - 0x608], 0
je 0x423123
lea eax, [ebp - 0x634]
push eax
call fcn.0041ce71
pop ecx
push eax
push 0x78d584
push dword [ebp - 0x10]
mov edx, dword [ebp + 8]
add edx, 0x90
push edx
call fcn.00404ec6
add esp, 0x10
mov ecx, dword [ebp - 0x608]
mov dword [ebp - 0xc], ecx
lea eax, [ebp - 0x634]
push eax
call fcn.00418f3d
pop ecx
jmp case.0x41e596.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x3e8], ecx
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
push dword [ebp - 0x3e8]
call fcn.00418e5d
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 1
jne 0x423192
push dword [ebp - 0x3e8]
call fcn.0041ce71
pop ecx
push eax
push 0x78d587
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x90
push eax
call fcn.00404ec6
add esp, 0x10
xor edx, edx
mov dl, byte [ebp - 0x11]
push edx
push dword [ebp - 0x3e8]
call fcn.00418ad9
add esp, 8
push dword [ebp - 0x3e8]
call fcn.00419329
pop ecx
test eax, eax
je case.0x41e596.0
jmp 0x423c76
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, 0x90
push ecx
call fcn.00442535
add esp, 8
mov dword [ebp - 0xc], eax
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [eax + edx*8 + 4]
mov dword [ebp - 0x3ec], edx
push dword [ebp - 0x3ec]
call fcn.00411fb0
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x65
jne case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
xor edx, edx
mov dword [ebp - 0xc], edx
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
cmp dword [ecx + 4], 0
jne 0x42323e
push dword [ebp - 0x10]
call fcn.0041cc63
pop ecx
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov byte [eax + 0x9a], 1
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x3f0], ecx
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov byte [ebp - 0x3f1], dl
mov cl, byte [ebp - 0x3f1]
push ecx
mov eax, dword [ebp - 8]
push dword [eax + 8]
mov edx, dword [ebp - 0x3f0]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 8]
push dword [eax + edx*8 + 4]
call fcn.004187e0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 6
jne case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x3f8], ecx
push dword [ebp - 0x3f8]
push 0x78d58a
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x90
push eax
call fcn.00404ec6
add esp, 0x10
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x3fc], ecx
push dword [ebp - 0x3fc]
push dword [ebp - 0x10]
call fcn.004438a1
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x3fc], 0
je case.0x41e596.0
mov eax, dword [ebp + 8]
push dword [eax + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov edx, dword [ebp - 0x3fc]
mov ecx, dword [edx + 8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x90], ecx
mov edx, dword [ebp - 0x3fc]
xor ecx, ecx
mov dword [edx + 8], ecx
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
add eax, 0x90
push eax
mov edx, dword [ebp - 8]
push dword [edx + 0x10]
mov ecx, dword [ebp - 8]
push dword [ecx + 4]
push dword [ebp - 0x10]
call fcn.0044344d
add esp, 0x10
mov dword [ebp - 0xc], eax
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov byte [eax + 0x9c], 2
mov edx, dword [ebp - 8]
push dword [edx + 0x10]
mov ecx, dword [ebp - 8]
push dword [ecx + 4]
push dword [ebp - 0x10]
call fcn.00443643
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov byte [eax + 0x9c], 0
jmp case.0x41e596.0
xor edx, edx
mov dword [ebp - 0x400], edx
xor ecx, ecx
mov dword [ebp - 0x404], ecx
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x408], edx
mov ecx, dword [ebp - 0x408]
mov eax, dword [ecx]
mov dword [ebp - 0x40c], eax
lea edx, [ebp - 0x404]
push edx
push dword [ebp - 0x408]
mov ecx, dword [ebp - 0x40c]
call dword [ecx + 0x18]
add esp, 8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
push dword [eax + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov edx, dword [ebp - 0x408]
mov ecx, dword [edx + 8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x90], ecx
mov edx, dword [ebp - 0x408]
xor ecx, ecx
mov dword [edx + 8], ecx
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
mov eax, dword [ebp - 0x404]
mov edx, dword [ebp - 0x408]
mov dword [eax], edx
push 0
push 0xffffffffffffffff
mov ecx, dword [ebp - 8]
add ecx, 0xffffffec
push ecx
mov eax, dword [ebp - 8]
push dword [eax + 4]
push dword [ebp + 8]
call fcn.0041e12d
add esp, 0x14
mov dword [ebp - 0x400], eax
cmp dword [ebp - 0x400], 0
je 0x423469
mov edx, dword [ebp - 0x400]
mov ecx, dword [ebp - 0x404]
mov dword [edx + 0x58], ecx
mov eax, dword [ebp - 0x404]
mov edx, dword [eax]
mov ecx, dword [edx]
mov eax, dword [ebp - 0x400]
mov dword [eax + 0x5c], ecx
jmp case.0x41e596.0
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x1e], 1
push dword [ebp - 0x404]
mov ecx, dword [ebp - 0x40c]
call dword [ecx + 0x1c]
pop ecx
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x41c], edx
mov edx, dword [ebp - 0x41c]
add edx, 0x28
mov dword [ebp - 0x420], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x30]
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 4]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x42c], eax
mov edx, dword [ebp - 0x42c]
mov ecx, dword [edx + 0x58]
mov dword [ebp - 0x424], ecx
mov eax, dword [ebp - 0x424]
mov edx, dword [eax]
mov dword [ebp - 0x428], edx
mov ecx, dword [ebp - 0x428]
mov eax, dword [ecx]
mov dword [ebp - 0x418], eax
mov edx, dword [ebp - 0x420]
mov eax, dword [edx]
mov dword [ebp - 0x410], eax
mov edx, dword [ebp - 0x41c]
mov eax, dword [edx]
mov dword [ebp - 0x414], eax
xor edx, edx
mov dword [ebp - 0x430], edx
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x438], eax
xor edx, edx
mov dword [ebp - 0x434], edx
mov ecx, dword [ebp - 0x434]
cmp ecx, dword [ebp - 0x410]
jge 0x42357f
mov eax, dword [ebp - 0x438]
mov edx, dword [ebp - 0x434]
mov ecx, dword [ebp - 0x434]
inc ecx
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [ebp - 0x420]
mov dword [eax + edx*4], ecx
mov eax, dword [ebp - 0x438]
mov edx, dword [ebp - 0x434]
push dword [eax + edx*4]
call fcn.0041e0bc
pop ecx
inc dword [ebp - 0x434]
mov eax, dword [ebp - 0x434]
cmp eax, dword [ebp - 0x410]
jl 0x423534
push dword [ebp - 0x428]
call fcn.00442a0c
pop ecx
mov edx, dword [ebp + 8]
mov byte [edx + 0x9c], 1
push dword [ebp - 0x438]
push dword [ebp - 0x410]
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
push dword [ebp - 0x414]
push dword [ebp - 0x424]
mov eax, dword [ebp - 0x418]
call dword [eax + 0x20]
add esp, 0x14
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
mov byte [edx + 0x9c], 0
mov ecx, dword [ebp + 8]
push dword [ecx + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov eax, dword [ebp - 0x428]
mov edx, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], edx
mov eax, dword [ebp - 0x428]
xor edx, edx
mov dword [eax + 8], edx
push dword [ebp - 0x428]
push dword [ebp - 0x10]
call fcn.00442a17
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x42362a
push dword [ebp - 0x424]
mov ecx, dword [ebp - 0x418]
call dword [ecx + 0x28]
pop ecx
mov dword [ebp - 0x430], eax
cmp dword [ebp - 0x430], 0
je 0x42363d
mov eax, dword [ebp - 8]
mov edx, dword [eax + 8]
dec edx
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 0x42c]
mov byte [ecx + 0x1c], 0
jmp case.0x41e596.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x44c], edx
mov ecx, dword [ebp - 0x44c]
cmp byte [ecx + 0x1c], 0
je 0x423672
jmp case.0x41e596.0
mov eax, dword [ebp - 0x44c]
mov edx, dword [eax + 0x58]
mov ecx, dword [edx]
mov dword [ebp - 0x43c], ecx
mov eax, dword [ebp - 0x43c]
mov edx, dword [eax]
mov dword [ebp - 0x440], edx
lea ecx, [ebp - 0x448]
push ecx
mov eax, dword [ebp - 0x44c]
push dword [eax + 0x58]
mov edx, dword [ebp - 0x440]
call dword [edx + 0x30]
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 8]
push dword [ecx + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov eax, dword [ebp - 0x43c]
mov edx, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], edx
mov eax, dword [ebp - 0x43c]
xor edx, edx
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xffe0
or ax, 4
mov edx, dword [ebp - 0x24]
mov word [edx + 0x1c], ax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x448]
mov dword [ecx], eax
mov eax, dword [ebp - 0x444]
mov dword [ecx + 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x30]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov dword [ebp - 0x45c], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x458], edx
mov edx, dword [ebp - 0x45c]
cmp byte [edx + 0x1c], 0
je 0x42375c
push dword [ebp - 0x458]
call fcn.00419249
pop ecx
jmp case.0x41e596.0
mov ecx, dword [ebp - 0x45c]
mov eax, dword [ecx + 0x58]
mov edx, dword [eax]
mov dword [ebp - 0x450], edx
mov ecx, dword [ebp - 0x450]
mov eax, dword [ecx]
mov dword [ebp - 0x454], eax
push 0x40
push 0
lea edx, [ebp - 0x67c]
push edx
call fcn.0074da88
add esp, 0xc
push dword [ebp - 0x458]
lea ecx, [ebp - 0x674]
push ecx
call fcn.00419413
add esp, 8
mov ax, word [ebp - 0x658]
and ax, 0xffe0
or ax, 1
mov word [ebp - 0x658], ax
mov edx, dword [ebp - 8]
push dword [edx + 8]
lea ecx, [ebp - 0x67c]
push ecx
mov eax, dword [ebp - 0x45c]
push dword [eax + 0x58]
mov edx, dword [ebp - 0x454]
call dword [edx + 0x2c]
add esp, 0xc
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 8]
push dword [ecx + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov eax, dword [ebp - 0x450]
mov edx, dword [eax + 8]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], edx
mov eax, dword [ebp - 0x450]
xor edx, edx
mov dword [eax + 8], edx
xor ecx, ecx
mov cl, byte [ebp - 0x11]
push ecx
lea eax, [ebp - 0x674]
push eax
call fcn.00418ad9
add esp, 8
lea edx, [ebp - 0x674]
push edx
push dword [ebp - 0x458]
call fcn.00419413
add esp, 8
jmp 0x423840
push dword [ebp - 0x458]
call fcn.00419329
pop ecx
test eax, eax
je case.0x41e596.0
jmp 0x423c76
xor ecx, ecx
mov dword [ebp - 0x468], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x46c], edx
mov ecx, dword [ebp - 0x46c]
cmp byte [ecx + 0x1c], 0
je 0x42388c
jmp case.0x41e596.0
mov eax, dword [ebp - 0x46c]
mov edx, dword [eax + 0x58]
mov ecx, dword [edx]
mov dword [ebp - 0x460], ecx
mov eax, dword [ebp - 0x460]
mov edx, dword [eax]
mov dword [ebp - 0x464], edx
push dword [ebp - 0x460]
call fcn.00442a0c
pop ecx
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x9c], 1
mov eax, dword [ebp - 0x46c]
push dword [eax + 0x58]
mov edx, dword [ebp - 0x464]
call dword [edx + 0x24]
pop ecx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x9c], 0
mov eax, dword [ebp + 8]
push dword [eax + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov edx, dword [ebp - 0x460]
mov ecx, dword [edx + 8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x90], ecx
mov edx, dword [ebp - 0x460]
xor ecx, ecx
mov dword [edx + 8], ecx
push dword [ebp - 0x460]
push dword [ebp - 0x10]
call fcn.00442a17
add esp, 8
cmp dword [ebp - 0xc], 0
jne 0x423942
mov eax, dword [ebp - 0x46c]
push dword [eax + 0x58]
mov edx, dword [ebp - 0x464]
call dword [edx + 0x28]
pop ecx
mov dword [ebp - 0x468], eax
cmp dword [ebp - 0x468], 0
jne case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
dec eax
mov dword [ebp - 4], eax
jmp case.0x41e596.0
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0x470], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x4c]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
shl eax, 3
lea eax, [eax + eax*4]
add edx, eax
mov dword [ebp - 0x474], edx
mov edx, dword [ebp - 0x474]
test byte [edx + 0x1c], 0x12
jne 0x4239ad
xor ecx, ecx
mov cl, byte [ebp - 0x11]
push ecx
push dword [ebp - 0x474]
call fcn.00418dab
add esp, 8
test eax, eax
je 0x4239ad
jmp 0x423c99
push dword [ebp - 0x470]
call fcn.00442a0c
pop ecx
mov eax, dword [ebp - 0x474]
push dword [eax + 0x14]
mov edx, dword [ebp - 0x470]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x4c]
add esp, 8
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
push dword [eax + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov edx, dword [ebp - 0x470]
mov ecx, dword [edx + 8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x90], ecx
mov edx, dword [ebp - 0x470]
xor ecx, ecx
mov dword [edx + 8], ecx
push dword [ebp - 0x470]
push dword [ebp - 0x10]
call fcn.00442a17
add esp, 8
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x478], edx
mov ecx, dword [ebp - 0x478]
mov eax, dword [ecx]
mov dword [ebp - 0x47c], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov dword [ebp - 0x480], ecx
mov eax, dword [ebp - 0x47c]
cmp dword [eax + 0x34], 0
jne 0x423a73
push 0x78d5a7
push dword [ebp - 0x10]
mov edx, dword [ebp + 8]
add edx, 0x90
push edx
call fcn.00404ec6
add esp, 0xc
mov dword [ebp - 0xc], 1
jmp case.0x41e596.0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x490], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x4c]
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add ecx, edx
mov dword [ebp - 0x494], ecx
xor ecx, ecx
mov dword [ebp - 0x484], ecx
mov eax, dword [ebp - 0x484]
cmp eax, dword [ebp - 0x480]
jge 0x423aeb
push dword [ebp - 0x494]
call fcn.0041e0bc
pop ecx
mov edx, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x484]
mov eax, dword [ebp - 0x494]
mov dword [edx + ecx*4], eax
add dword [ebp - 0x494], 0x28
inc dword [ebp - 0x484]
mov edx, dword [ebp - 0x484]
cmp edx, dword [ebp - 0x480]
jl 0x423aaf
push dword [ebp - 0x478]
call fcn.00442a0c
pop ecx
lea ecx, [ebp - 0x48c]
push ecx
push dword [ebp - 0x490]
push dword [ebp - 0x480]
push dword [ebp - 0x478]
mov eax, dword [ebp - 0x47c]
call dword [eax + 0x34]
add esp, 0x10
mov dword [ebp - 0xc], eax
mov edx, dword [ebp + 8]
push dword [edx + 0x90]
push dword [ebp - 0x10]
call fcn.00404a95
add esp, 8
mov ecx, dword [ebp - 0x478]
mov eax, dword [ecx + 8]
mov edx, dword [ebp + 8]
mov dword [edx + 0x90], eax
mov ecx, dword [ebp - 0x478]
xor eax, eax
mov dword [ecx + 8], eax
push dword [ebp - 0x478]
push dword [ebp - 0x10]
call fcn.00442a17
add esp, 8
mov edx, dword [ebp - 8]
cmp dword [edx + 4], 0
je 0x423b85
cmp dword [ebp - 0xc], 0
jne 0x423b85
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x48c]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x488]
mov dword [ecx + 0x34], eax
mov edx, dword [ebp + 8]
inc dword [edx + 0xa0]
jmp case.0x41e596.0
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x498], eax
mov edx, dword [ebp - 0x498]
lea edx, [edx + edx*2]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 8]
push dword [eax + edx*8 + 4]
call fcn.004174ef
pop ecx
mov dword [ebp - 0x4a0], eax
lea edx, [ebp - 0x49c]
push edx
push dword [ebp - 0x4a0]
call fcn.0040d01d
add esp, 8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne case.0x41e596.0
mov ecx, dword [ebp - 0x24]
mov word [ecx + 0x1c], 4
mov eax, dword [ebp - 0x49c]
cdq
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41e596.0
mov eax, dword [ebp - 8]
cmp dword [eax + 0x10], 0
je case.0x41e596.0
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x94], 0
je case.0x41e596.0
mov ecx, dword [ebp - 8]
push dword [ecx + 0x10]
mov eax, dword [ebp - 0x10]
push dword [eax + 0x98]
mov edx, dword [ebp - 0x10]
call dword [edx + 0x94]
add esp, 8
jmp case.0x41e596.0
inc dword [ebp - 4]
cmp dword [ebp - 0xc], 0
je 0x41e420
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x78], eax
push dword [ebp + 8]
call fcn.0041b9d1
pop ecx
cmp dword [ebp - 0xc], 0xc0a
jne 0x423c57
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x1e], 1
mov dword [ebp - 0xc], 1
mov ecx, dword [ebp + 8]
add ecx, 0xb4
push ecx
call fcn.0040f3b8
pop ecx
mov eax, dword [ebp - 0xc]
jmp 0x423d4b
push 0x78d5b7
push dword [ebp - 0x10]
mov edx, dword [ebp + 8]
add edx, 0x90
push edx
call fcn.00404ec6
add esp, 0xc
mov dword [ebp - 0xc], 0x12
jmp 0x423c35
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0x1e], 1
push 0x78d5ce
push dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x90
push eax
call fcn.00404ec6
add esp, 0xc
mov dword [ebp - 0xc], 7
jmp 0x423c35
mov edx, dword [ebp - 0x10]
cmp byte [edx + 0x1e], 0
je 0x423cdc
mov dword [ebp - 0xc], 7
cmp dword [ebp - 0xc], 0xc0a
je 0x423c35
push dword [ebp - 0xc]
call fcn.0044bdb0
pop ecx
push eax
push 0x78d5dc
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, 0x90
push ecx
call fcn.00404ec6
add esp, 0x10
jmp 0x423c35
mov dword [ebp - 0xc], 9
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x78], edx
push dword [ebp - 0xc]
call fcn.0044bdb0
pop ecx
push eax
push 0x78d5df
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
add ecx, 0x90
push ecx
call fcn.00404ec6
add esp, 0x10
jmp 0x423c35
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret