Function at 0x4691d0
Capabilities:
Hash data using fnv
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8d4
push esi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
and ecx, 0x80000
je 0x46920f
mov dword [ebp - 0x1e4], 1
jmp 0x469219
mov dword [ebp - 0x1e4], 0
mov edx, dword [ebp - 0x1e4]
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0
jne 0x469242
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
and ecx, 0x20000
jne 0x469242
mov dword [ebp - 0x1e8], 0
jmp 0x46924c
mov dword [ebp - 0x1e8], 1
mov edx, dword [ebp - 0x1e8]
mov dword [ebp - 0x114], edx
mov dword [ebp - 0x100], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x454], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
mov ecx, dword [ebp - 0x454]
cmp ecx, dword [ebp - 0x458]
jb 0x4692a1
mov eax, 0xffffffd1
jmp 0x4723a1
mov edx, dword [ebp + 0x28]
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x460], ecx
mov edx, dword [ebp + 0x28]
add edx, 1
mov dword [ebp + 0x28], edx
mov eax, dword [ebp - 0x45c]
cmp eax, dword [ebp - 0x460]
jbe 0x4692d7
mov eax, 0xffffffcb
jmp 0x4723a1
mov ecx, dword [ebp + 0x1c]
and ecx, 0xfffffffe
mov dword [ebp + 0x1c], ecx
mov edx, dword [ebp + 0x24]
sub edx, 2
mov dword [ebp + 0x24], edx
mov eax, dword [ebp + 0x24]
cdq
mov ecx, 6
idiv ecx
mov eax, dword [ebp + 0x24]
sub eax, edx
cdq
mov ecx, 6
idiv ecx
mov dword [ebp + 0x24], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
add eax, 0x340
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x20]
mov dword [ebp - 0x3e0], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
add ecx, 0x100
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x80], 0xffffffff
mov edx, dword [ebp + 0x20]
add edx, 8
mov dword [ebp - 0xe0], edx
imul eax, dword [ebp + 0x24], 0xc
add eax, dword [ebp - 0xe0]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x81
je 0x469385
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
cmp edx, 0x82
jne 0x469625
mov dword [ebp - 0x158], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
imul edx, ecx, 5
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + edx]
or eax, edx
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp - 0x1ec]
cmp eax, dword [ebp - 0x158]
jbe 0x4693d8
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x158], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x38]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x38]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax]
cmp ecx, 0x78
je 0x469395
cmp dword [ebp - 0x3c], 0
je 0x469478
mov dword [ebp - 0x110], 0
jmp 0x46942c
mov edx, dword [ebp - 0x110]
add edx, 1
mov dword [ebp - 0x110], edx
mov eax, dword [ebp - 0x110]
cmp eax, dword [ebp - 0x158]
jae 0x469476
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [ebp - 0x4c]
ja 0x469444
jmp 0x469476
mov edx, dword [ebp + 0x10]
sub edx, 1
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x10]
cmp eax, dword [ebp - 0x4c]
jbe 0x469474
mov ecx, dword [ebp + 0x10]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x469474
mov eax, dword [ebp + 0x10]
sub eax, 1
mov dword [ebp + 0x10], eax
jmp 0x46944d
jmp 0x46941d
jmp 0x4694c4
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x1f0], ecx
mov edx, dword [ebp - 0x1f0]
cmp edx, dword [ebp - 0x158]
jae 0x4694a0
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1f4], eax
jmp 0x4694ac
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x1f4], ecx
mov edx, dword [ebp - 0x1f4]
mov dword [ebp - 0x110], edx
mov eax, dword [ebp + 0x10]
sub eax, dword [ebp - 0x110]
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
cmp edx, dword [ecx + 0x18]
jae 0x4694d8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x38], edx
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + ecx]
cmp eax, 0x7d
jne 0x4694fe
mov dword [ebp - 0x1f8], 3
jmp 0x469508
mov dword [ebp - 0x1f8], 0
mov ecx, dword [ebp - 0x1f8]
mov dword [ebp - 0x200], ecx
cmp dword [ebp - 0x200], 0
jne 0x469529
mov dword [ebp - 0x1fc], 0
jmp 0x469552
mov edx, 1
shl edx, 2
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
imul eax, edx, 5
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + eax]
or ecx, eax
mov dword [ebp - 0x1fc], ecx
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x204], ecx
mov edx, dword [ebp - 0x204]
cmp edx, dword [ebp - 0x110]
ja 0x4695e9
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x200]
lea edx, [eax + ecx + 3]
mov dword [ebp - 0x46c], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x464], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x468], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x464]
cmp eax, dword [ebp - 0x468]
jge 0x4695df
mov ecx, dword [ebp - 0x46c]
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x110]
sub ecx, dword [ebp - 0x204]
mov edx, dword [ebp - 4]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x4695e9
mov eax, 0xffffffd5
jmp 0x4723a1
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x38]
movzx ecx, byte [edx + ecx]
or eax, ecx
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx]
cmp eax, 0x78
je 0x4694de
jmp 0x4697ab
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x38], ecx
cmp dword [ebp + 0x28], 1
jne 0x4696b5
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x40
je 0x4696b5
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x38]
movzx ecx, byte [edx + ecx]
or eax, ecx
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx]
cmp eax, 0x78
je 0x469640
mov ecx, 4
shl ecx, 0
mov edx, dword [ebp + 0x20]
mov eax, dword [edx + ecx]
mov dword [ebp - 0x10], eax
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + 0x20]
cmp dword [eax + edx], 0
jne 0x4696b0
imul ecx, dword [ebp - 0x10], 0xc
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov eax, dword [ebp - 0x15c]
push eax
call fcn.0047cfc0
add esp, 0xc
jmp 0x4697ab
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
cmp edx, 0x89
je 0x4696f8
mov eax, dword [ebp + 0xc]
movzx ecx, byte [eax]
cmp ecx, 0x8e
je 0x4696f8
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx]
cmp eax, 0x8a
je 0x4696f8
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
cmp edx, 0x8f
je 0x4696f8
mov dword [ebp - 0x208], 0
jmp 0x469702
mov dword [ebp - 0x208], 2
mov eax, dword [ebp - 0x208]
add eax, 3
mov dword [ebp - 0x20c], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x470], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x474], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x470]
cmp ecx, dword [ebp - 0x474]
jge 0x469760
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x7c]
add edx, dword [ebp - 0x20c]
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46976a
mov eax, 0xffffffd5
jmp 0x4723a1
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x38]
movzx eax, byte [ecx + eax]
or edx, eax
add edx, dword [ebp - 0x38]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x20c], 3
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx]
cmp edx, 0x78
je 0x469711
mov eax, 4
imul ecx, eax, 0
mov edx, dword [ebp + 0x20]
mov dword [edx + ecx], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x60], 0
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x100], 0
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edx + 0x1c]
jbe 0x4697fe
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov dword [ecx + 0x1c], edx
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x478], eax
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp - 0x478]
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0
mov ecx, 4
imul edx, ecx, 0
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + edx]
xor ecx, 1
mov edx, 4
imul eax, edx, 0
mov edx, dword [ebp + 0x20]
mov dword [edx + eax], ecx
mov eax, 4
shl eax, 0
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0xc]
mov dword [ecx + eax], edx
imul eax, dword [ebp - 0xc], 0xc
add eax, dword [ebp - 0xe0]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x64]
jae 0x469a8d
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x3c], 0
je 0x469a8b
cmp dword [ebp - 0x18], 0xc0
jb 0x469a8b
mov edx, dword [ebp - 0x18]
and edx, 0x20
jne 0x4698de
mov eax, dword [ebp - 0x18]
and eax, 0x1f
shl eax, 6
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x1c]
movzx ecx, byte [edx + ecx]
and ecx, 0x3f
or eax, ecx
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
jmp 0x469a8b
mov eax, dword [ebp - 0x18]
and eax, 0x10
jne 0x46992a
mov ecx, dword [ebp - 0x18]
and ecx, 0xf
shl ecx, 0xc
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x1c]
movzx edx, byte [eax + edx]
and edx, 0x3f
shl edx, 6
or ecx, edx
mov eax, 1
shl eax, 1
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx + eax]
and eax, 0x3f
or ecx, eax
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x30]
add ecx, 2
mov dword [ebp - 0x30], ecx
jmp 0x469a8b
mov edx, dword [ebp - 0x18]
and edx, 8
jne 0x46998d
mov eax, dword [ebp - 0x18]
and eax, 7
shl eax, 0x12
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x1c]
movzx ecx, byte [edx + ecx]
and ecx, 0x3f
shl ecx, 0xc
or eax, ecx
mov edx, 1
shl edx, 1
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + edx]
and edx, 0x3f
shl edx, 6
or eax, edx
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + edx]
and edx, 0x3f
or eax, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x30]
add eax, 3
mov dword [ebp - 0x30], eax
jmp 0x469a8b
mov ecx, dword [ebp - 0x18]
and ecx, 4
jne 0x469a07
mov edx, dword [ebp - 0x18]
and edx, 3
shl edx, 0x18
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + eax]
and eax, 0x3f
shl eax, 0x12
or edx, eax
mov ecx, 1
shl ecx, 1
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + ecx]
and ecx, 0x3f
shl ecx, 0xc
or edx, ecx
mov eax, 1
imul ecx, eax, 3
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + ecx]
and ecx, 0x3f
shl ecx, 6
or edx, ecx
mov eax, 1
shl eax, 2
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + eax]
and eax, 0x3f
or edx, eax
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x30]
add ecx, 4
mov dword [ebp - 0x30], ecx
jmp 0x469a8b
mov edx, dword [ebp - 0x18]
and edx, 1
shl edx, 0x1e
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + eax]
and eax, 0x3f
shl eax, 0x18
or edx, eax
mov ecx, 1
shl ecx, 1
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + ecx]
and ecx, 0x3f
shl ecx, 0x12
or edx, ecx
mov eax, 1
imul ecx, eax, 3
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + ecx]
and ecx, 0x3f
shl ecx, 0xc
or edx, ecx
mov eax, 1
shl eax, 2
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + eax]
and eax, 0x3f
shl eax, 6
or edx, eax
mov ecx, 1
imul eax, ecx, 5
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + eax]
and eax, 0x3f
or edx, eax
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x30]
add ecx, 5
mov dword [ebp - 0x30], ecx
jmp 0x469a9b
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x10c], 0
jmp 0x469ab6
mov edx, dword [ebp - 0x10c]
add edx, 1
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0xc]
jge 0x4722fb
imul ecx, dword [ebp - 0x10c], 0xc
add ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0xc4], 0
mov edx, dword [ebp - 0x40]
mov eax, dword [edx]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
jge 0x469b85
mov ecx, dword [ebp - 0x40]
cmp dword [ecx + 8], 0
jle 0x469b75
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x47c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x480], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x47c]
cmp edx, dword [ebp - 0x480]
jge 0x469b51
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x469b5b
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x9c], 0
je 0x469b6e
mov dword [ebp - 0x100], 1
jmp 0x469aa7
mov eax, dword [ebp - 0x28]
neg eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x28]
mov dword [ecx], edx
mov dword [ebp - 0x160], 0
jmp 0x469ba0
mov eax, dword [ebp - 0x160]
add eax, 1
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x160]
cmp ecx, dword [ebp - 0x10c]
jge 0x469be3
imul edx, dword [ebp - 0x160], 0xc
mov eax, dword [ebp - 0xe0]
mov ecx, dword [eax + edx]
cmp ecx, dword [ebp - 0x28]
jne 0x469be1
imul edx, dword [ebp - 0x160], 0xc
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x40]
mov edx, dword [eax + edx + 4]
cmp edx, dword [ecx + 4]
jne 0x469be1
jmp 0x4722f1
jmp 0x469b91
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx]
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x30], 0
jne 0x469c13
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x4b70a0]
test ecx, ecx
je 0x469c13
mov dword [ebp - 0x9c], 1
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
test eax, eax
jle 0x469f6c
mov dword [ebp - 0x44], 1
cmp dword [ebp - 0x3c], 0
je 0x469ed6
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 0x4b6ff0]
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x20], 0xc0
jb 0x469ed4
mov edx, dword [ebp - 0x20]
and edx, 0x20
jne 0x469c97
mov eax, dword [ebp - 0x20]
and eax, 0x1f
shl eax, 6
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 0x4b6ff0]
add edx, dword [ebp - 0x14]
mov ecx, 1
shl ecx, 0
movzx edx, byte [edx + ecx]
and edx, 0x3f
or eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x44]
add eax, 1
mov dword [ebp - 0x44], eax
jmp 0x469ed4
mov ecx, dword [ebp - 0x20]
and ecx, 0x10
jne 0x469cf7
mov edx, dword [ebp - 0x20]
and edx, 0xf
shl edx, 0xc
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x4b6ff0]
add ecx, dword [ebp - 0x14]
mov eax, 1
shl eax, 0
movzx ecx, byte [ecx + eax]
and ecx, 0x3f
shl ecx, 6
or edx, ecx
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 0x4b6ff0]
add ecx, dword [ebp - 0x14]
mov eax, 1
shl eax, 1
movzx ecx, byte [ecx + eax]
and ecx, 0x3f
or edx, ecx
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 0x44]
add edx, 2
mov dword [ebp - 0x44], edx
jmp 0x469ed4
mov eax, dword [ebp - 0x20]
and eax, 8
jne 0x469d78
mov ecx, dword [ebp - 0x20]
and ecx, 7
shl ecx, 0x12
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
shl edx, 0
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, 0xc
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
shl edx, 1
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, 6
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
imul edx, edx, 3
movzx eax, byte [eax + edx]
and eax, 0x3f
or ecx, eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x44]
add ecx, 3
mov dword [ebp - 0x44], ecx
jmp 0x469ed4
mov edx, dword [ebp - 0x20]
and edx, 4
jne 0x469e1e
mov eax, dword [ebp - 0x20]
and eax, 3
shl eax, 0x18
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 0x4b6ff0]
add edx, dword [ebp - 0x14]
mov ecx, 1
shl ecx, 0
movzx edx, byte [edx + ecx]
and edx, 0x3f
shl edx, 0x12
or eax, edx
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 0x4b6ff0]
add edx, dword [ebp - 0x14]
mov ecx, 1
shl ecx, 1
movzx edx, byte [edx + ecx]
and edx, 0x3f
shl edx, 0xc
or eax, edx
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 0x4b6ff0]
add edx, dword [ebp - 0x14]
mov ecx, 1
imul ecx, ecx, 3
movzx edx, byte [edx + ecx]
and edx, 0x3f
shl edx, 6
or eax, edx
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 0x4b6ff0]
add edx, dword [ebp - 0x14]
mov ecx, 1
shl ecx, 2
movzx edx, byte [edx + ecx]
and edx, 0x3f
or eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [ebp - 0x44], eax
jmp 0x469ed4
mov ecx, dword [ebp - 0x20]
and ecx, 1
shl ecx, 0x1e
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
shl edx, 0
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, 0x18
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
shl edx, 1
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, 0x12
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
imul edx, edx, 3
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, 0xc
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
shl edx, 2
movzx eax, byte [eax + edx]
and eax, 0x3f
shl eax, 6
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
add eax, dword [ebp - 0x14]
mov edx, 1
imul edx, edx, 5
movzx eax, byte [eax + edx]
and eax, 0x3f
or ecx, eax
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x44]
add ecx, 5
mov dword [ebp - 0x44], ecx
jmp 0x469eea
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b6ff0]
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x2c], 0x55
jb case.default.0x469f17
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x170]
sub ecx, 0xe
mov dword [ebp - 0x170], ecx
cmp dword [ebp - 0x170], 8
ja case.default.0x469f17
mov edx, dword [ebp - 0x170]
jmp dword [edx*4 + 0x4723a8]
mov eax, 0xffffffd6
jmp 0x4723a1
mov eax, dword [ebp - 0x2c]
add eax, 0x12c
mov dword [ebp - 0x2c], eax
jmp case.default.0x469f17
mov ecx, dword [ebp - 0x2c]
add ecx, 0x154
mov dword [ebp - 0x2c], ecx
jmp case.default.0x469f17
mov edx, dword [ebp - 0x2c]
add edx, 0x140
mov dword [ebp - 0x2c], edx
jmp case.default.0x469f17
mov eax, dword [ebp - 0x2c]
add eax, 0x168
mov dword [ebp - 0x2c], eax
jmp case.default.0x469f17
mov ecx, dword [ebp - 0x2c]
add ecx, 0x17c
mov dword [ebp - 0x2c], ecx
jmp 0x469f7a
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x20], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x174], edx
mov eax, dword [ebp - 0x174]
sub eax, 1
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0x1dc
ja case.0x469faf.2
mov ecx, dword [ebp - 0x174]
movzx edx, byte [ecx + 0x4724f8]
jmp dword [edx*4 + 0x4723cc]
xor eax, eax
jmp 0x4723a1
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x38]
je 0x46a09b
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x484], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x484]
cmp ecx, dword [ebp - 0x488]
jge 0x46a012
mov edx, dword [ebp - 0x28]
add edx, 3
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46a01c
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x2c], 0x79
je 0x46a096
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x490], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x48c]
cmp eax, dword [ebp - 0x490]
jge 0x46a08c
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
or eax, ecx
mov edx, dword [ebp - 0x28]
sub edx, eax
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46a096
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46a1a8
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp + 0x10]
ja 0x46a0cf
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 4
jne 0x46a1a8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 8
je 0x46a0cf
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x4c]
add eax, dword [edx + 0x24]
cmp dword [ebp + 0x10], eax
jbe 0x46a1a8
cmp dword [ebp - 0x80], 0
jge 0x46a0fc
cmp dword [ebp + 0x1c], 2
jb 0x46a0e7
mov dword [ebp - 0x210], 1
jmp 0x46a0f1
mov dword [ebp - 0x210], 0
mov ecx, dword [ebp - 0x210]
mov dword [ebp - 0x80], ecx
jmp 0x46a11c
cmp dword [ebp - 0x80], 0
jle 0x46a11c
mov edx, dword [ebp - 0x80]
add edx, 1
mov dword [ebp - 0x80], edx
mov eax, dword [ebp - 0x80]
shl eax, 1
cmp eax, dword [ebp + 0x1c]
jle 0x46a11c
mov dword [ebp - 0x80], 0
cmp dword [ebp - 0x80], 0
jne 0x46a12d
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x214], ecx
jmp 0x46a138
mov edx, dword [ebp - 0x80]
shl edx, 1
mov dword [ebp - 0x214], edx
mov eax, dword [ebp - 0x214]
sub eax, 2
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jle 0x46a164
mov ecx, dword [ebp - 0x24]
shl ecx, 2
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x18]
add eax, 8
push eax
call fcn.0047cfc0
add esp, 0xc
cmp dword [ebp + 0x1c], 2
jb 0x46a192
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp - 0x4c]
mov edx, 4
imul eax, edx, 0
mov edx, dword [ebp + 0x18]
mov dword [edx + eax], ecx
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x4c]
mov ecx, 4
shl ecx, 0
mov edx, dword [ebp + 0x18]
mov dword [edx + ecx], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0x80
je 0x46a1a8
mov eax, dword [ebp - 0x80]
jmp 0x4723a1
jmp 0x4722f1
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
cmp ecx, 0x78
je case.0x469faf.119
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x494], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x494]
cmp edx, dword [ebp - 0x498]
jge 0x46a229
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46a233
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x49c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x4a0], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x49c]
cmp ecx, dword [ebp - 0x4a0]
jge 0x46a284
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x7c]
add edx, 3
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46a28e
mov eax, 0xffffffd5
jmp 0x4723a1
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx]
cmp edx, 0x78
je case.0x469faf.134
jmp 0x4722f1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4a4], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x4a8], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x4a4]
cmp eax, dword [ebp - 0x4a8]
jge 0x46a316
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x7c]
add ecx, 5
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46a320
mov eax, 0xffffffd5
jmp 0x4723a1
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
cmp ecx, 0x78
jne 0x46a3da
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x4ac], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4b0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x4ac]
cmp edx, dword [ebp - 0x4b0]
jge 0x46a3a3
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x7c]
add eax, 3
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46a3ad
mov eax, 0xffffffd5
jmp 0x4723a1
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
or eax, ecx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
jmp 0x46a348
jmp 0x4722f1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x4b4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4b8], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x4b4]
cmp edx, dword [ebp - 0x4b8]
jge 0x46a428
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46a432
mov eax, 0xffffffd5
jmp 0x4723a1
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
or eax, edx
mov ecx, dword [ebp - 0x14]
lea edx, [ecx + eax + 1]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
cmp ecx, 0x78
jne 0x46a493
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
jmp 0x46a45e
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4bc], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x4c0], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x4bc]
cmp eax, dword [ebp - 0x4c0]
jge 0x46a4df
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x7c]
add ecx, 3
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46a4e9
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
or ecx, eax
mov edx, dword [ebp - 0x14]
lea eax, [edx + ecx + 1]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx]
cmp edx, 0x78
jne 0x46a54f
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
add edx, dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
jmp 0x46a51a
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x4c4], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x4c8], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x4c4]
cmp ecx, dword [ebp - 0x4c8]
jge 0x46a59b
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x7c]
add edx, 3
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46a5a5
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x4c]
jne 0x46a610
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 1
jne 0x46a610
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4cc], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x4d0], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x4cc]
cmp eax, dword [ebp - 0x4d0]
jge 0x46a606
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46a610
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x4c]
jne 0x46a62c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 1
je 0x46a72d
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x64]
jne 0x46a646
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
and ecx, 0x200000
je 0x46a780
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x46a6a7
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x10]
jbe 0x46a68f
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
add eax, 0x48
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.004761b0
add esp, 0x14
test eax, eax
je 0x46a68f
mov dword [ebp - 0x218], 1
jmp 0x46a699
mov dword [ebp - 0x218], 0
mov eax, dword [ebp - 0x218]
mov dword [ebp - 0x220], eax
jmp 0x46a724
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x48]
cmp dword [ebp - 0x1c], edx
jb 0x46a70e
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [ecx + 0x48]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x46a70e
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 1
je 0x46a702
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
sub edx, dword [ecx + 0x48]
movzx eax, byte [edx + 1]
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
movzx ecx, byte [edx + ecx + 0x50]
cmp eax, ecx
jne 0x46a70e
mov dword [ebp - 0x21c], 1
jmp 0x46a718
mov dword [ebp - 0x21c], 0
mov edx, dword [ebp - 0x21c]
mov dword [ebp - 0x220], edx
cmp dword [ebp - 0x220], 0
je 0x46a780
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4d4], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x4d8], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x4d4]
cmp eax, dword [ebp - 0x4d8]
jge 0x46a776
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46a780
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x64]
jb 0x46a7f7
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0x20
je 0x46a7a4
mov eax, 0xfffffffe
jmp 0x4723a1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x4dc], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4e0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x4dc]
cmp edx, dword [ebp - 0x4e0]
jge 0x46a7ed
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46a7f7
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x4c]
jne 0x46a857
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x4e4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4e8], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x4e4]
cmp edx, dword [ebp - 0x4e8]
jge 0x46a84d
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46a857
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp - 0x4c]
add ecx, dword [ebp + 0x14]
cmp dword [ebp - 0x1c], ecx
jne 0x46a8ba
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x4ec], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4f0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x4ec]
cmp edx, dword [ebp - 0x4f0]
jge 0x46a8b0
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46a8ba
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46aa4d
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x44], 0
je 0x46a92a
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edx + 0x14]
jae 0x46a912
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x48
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x44]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46a912
mov dword [ebp - 0x224], 1
jmp 0x46a91c
mov dword [ebp - 0x224], 0
mov edx, dword [ebp - 0x224]
mov dword [ebp - 0x22c], edx
jmp 0x46a99b
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x14]
sub edx, dword [ecx + 0x48]
cmp dword [ebp - 0x1c], edx
ja 0x46a985
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
mov edx, 1
imul eax, edx, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + eax + 0x50]
cmp ecx, eax
jne 0x46a985
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x48], 1
je 0x46a979
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx + 1]
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
movzx ecx, byte [edx + ecx + 0x50]
cmp eax, ecx
jne 0x46a985
mov dword [ebp - 0x228], 1
jmp 0x46a98f
mov dword [ebp - 0x228], 0
mov edx, dword [ebp - 0x228]
mov dword [ebp - 0x22c], edx
cmp dword [ebp - 0x22c], 0
jne 0x46aa4d
mov eax, dword [ebp - 0x1c]
add eax, 1
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x14]
jb 0x46a9fa
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46a9fa
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x44], 0
jne 0x46a9fa
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 2
jne 0x46a9fa
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx + 0x50]
cmp dword [ebp - 0x18], eax
jne 0x46a9fa
mov dword [ebp - 0x60], 1
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], ecx
jmp 0x46aa4d
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x4f4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x4f8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x4f4]
cmp edx, dword [ebp - 0x4f8]
jge 0x46aa43
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46aa4d
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46aaab
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x4fc], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x500], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x4fc]
cmp ecx, dword [ebp - 0x500]
jge 0x46aaa1
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46aaab
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
je 0x46aba3
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
je 0x46ab1b
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ecx + 0x14]
jae 0x46ab03
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46ab03
mov dword [ebp - 0x230], 1
jmp 0x46ab0d
mov dword [ebp - 0x230], 0
mov ecx, dword [ebp - 0x230]
mov dword [ebp - 0x238], ecx
jmp 0x46ab8c
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x48]
cmp dword [ebp - 0x1c], ecx
ja 0x46ab76
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x46ab76
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 1
je 0x46ab6a
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 1]
mov eax, 1
shl eax, 0
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx + eax + 0x50]
cmp edx, eax
jne 0x46ab76
mov dword [ebp - 0x234], 1
jmp 0x46ab80
mov dword [ebp - 0x234], 0
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x238], ecx
cmp dword [ebp - 0x238], 0
je 0x46ac0b
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x64]
sub eax, dword [edx + 0x48]
cmp dword [ebp - 0x1c], eax
jne 0x46ac0b
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 0x20
je 0x46abb8
mov eax, 0xfffffffe
jmp 0x4723a1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x504], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x508], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x504]
cmp eax, dword [ebp - 0x508]
jge 0x46ac01
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46ac0b
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 2
jne 0x46ae73
cmp dword [ebp - 0x30], 0
jne 0x46ac3f
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 0x20
je 0x46ac3f
mov dword [ebp - 0x9c], 1
jmp 0x46ae73
cmp dword [ebp - 0x30], 0
je 0x46ad41
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
and ecx, 0x10
jne 0x46ad99
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x46acb9
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x14]
jae 0x46aca1
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
add eax, 0x48
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46aca1
mov dword [ebp - 0x23c], 1
jmp 0x46acab
mov dword [ebp - 0x23c], 0
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x244], eax
jmp 0x46ad2a
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
sub eax, dword [edx + 0x48]
cmp dword [ebp - 0x1c], eax
ja 0x46ad14
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + ecx + 0x50]
cmp edx, ecx
jne 0x46ad14
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 1
je 0x46ad08
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 1]
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
movzx edx, byte [eax + edx + 0x50]
cmp ecx, edx
jne 0x46ad14
mov dword [ebp - 0x240], 1
jmp 0x46ad1e
mov dword [ebp - 0x240], 0
mov eax, dword [ebp - 0x240]
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
je 0x46ad99
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x64]
sub edx, dword [ecx + 0x48]
cmp dword [ebp - 0x1c], edx
jne 0x46ad99
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x50c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x510], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x50c]
cmp eax, dword [ebp - 0x510]
jge 0x46ad8a
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46ad94
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46ae73
mov edx, dword [ebp - 0x1c]
add edx, 1
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x14]
jb 0x46ae73
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 0x30
je 0x46ae73
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x46ae73
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x48], 2
jne 0x46ae73
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax + 0x50]
cmp dword [ebp - 0x18], edx
jne 0x46ae73
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0x20
je 0x46ae63
mov dword [ebp - 0x100], 1
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x514], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x518], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x514]
cmp edx, dword [ebp - 0x518]
jge 0x46ae57
mov eax, dword [ebp - 0x28]
add eax, 1
neg eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46ae61
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46ae73
mov dword [ebp - 0x60], 1
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], edx
jmp 0x4722f1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 2
jne 0x46b0d2
cmp dword [ebp - 0x30], 0
jne 0x46aea7
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46aea7
mov dword [ebp - 0x9c], 1
jmp 0x46b0cd
cmp dword [ebp - 0x30], 0
je 0x46af9b
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x40]
and edx, 0x10
jne 0x46aff3
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
je 0x46af21
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ecx + 0x14]
jae 0x46af09
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46af09
mov dword [ebp - 0x248], 1
jmp 0x46af13
mov dword [ebp - 0x248], 0
mov ecx, dword [ebp - 0x248]
mov dword [ebp - 0x250], ecx
jmp 0x46af92
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x48]
cmp dword [ebp - 0x1c], ecx
ja 0x46af7c
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x46af7c
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 1
je 0x46af70
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 1]
mov eax, 1
shl eax, 0
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx + eax + 0x50]
cmp edx, eax
jne 0x46af7c
mov dword [ebp - 0x24c], 1
jmp 0x46af86
mov dword [ebp - 0x24c], 0
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x250], ecx
cmp dword [ebp - 0x250], 0
je 0x46aff3
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x51c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x520], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x51c]
cmp edx, dword [ebp - 0x520]
jge 0x46afe4
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46afee
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46b0cd
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov edx, dword [ebp + 8]
cmp ecx, dword [edx + 0x14]
jb 0x46b0cd
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0x30
je 0x46b0cd
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
jne 0x46b0cd
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 2
jne 0x46b0cd
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx + 0x50]
cmp dword [ebp - 0x18], ecx
jne 0x46b0cd
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46b0bd
mov dword [ebp - 0x100], 1
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x524], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x528], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x524]
cmp ecx, dword [ebp - 0x528]
jge 0x46b0b1
mov edx, dword [ebp - 0x28]
add edx, 1
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
mov dword [edx + 8], 1
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46b0bb
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46b0cd
mov dword [ebp - 0x60], 1
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], ecx
jmp 0x46b200
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x46b133
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x14]
jae 0x46b11b
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
add eax, 0x48
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46b11b
mov dword [ebp - 0x254], 1
jmp 0x46b125
mov dword [ebp - 0x254], 0
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x25c], eax
jmp 0x46b1a4
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
sub eax, dword [edx + 0x48]
cmp dword [ebp - 0x1c], eax
ja 0x46b18e
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + ecx + 0x50]
cmp edx, ecx
jne 0x46b18e
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 1
je 0x46b182
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 1]
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
movzx edx, byte [eax + edx + 0x50]
cmp ecx, edx
jne 0x46b18e
mov dword [ebp - 0x258], 1
jmp 0x46b198
mov dword [ebp - 0x258], 0
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0
je 0x46b200
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x52c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x530], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x52c]
cmp ecx, dword [ebp - 0x530]
jge 0x46b1f6
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46b200
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46b291
cmp dword [ebp - 0x18], 0x100
jae 0x46b291
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0x18]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b714c]
and ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b715c]
xor ecx, eax
je 0x46b291
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x534], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x538], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x534]
cmp ecx, dword [ebp - 0x538]
jge 0x46b287
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46b291
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46b322
cmp dword [ebp - 0x18], 0x100
jae 0x46b2cf
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0x18]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b714c]
and ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 0x4b715c]
xor ecx, eax
je 0x46b322
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x53c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x540], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x53c]
cmp ecx, dword [ebp - 0x540]
jge 0x46b318
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46b322
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x4c]
jbe 0x46b638
mov ecx, dword [ebp - 0x1c]
sub ecx, 1
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x48]
cmp eax, dword [edx + 0x18]
jae 0x46b350
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x48]
mov dword [ecx + 0x18], edx
cmp dword [ebp - 0x3c], 0
je 0x46b375
mov eax, dword [ebp - 0x48]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x46b375
mov edx, dword [ebp - 0x48]
sub edx, 1
mov dword [ebp - 0x48], edx
jmp 0x46b356
mov eax, dword [ebp - 0x48]
movzx ecx, byte [eax]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x3c], 0
je 0x46b548
cmp dword [ebp - 0x20], 0xc0
jb 0x46b548
mov edx, dword [ebp - 0x20]
and edx, 0x20
jne 0x46b3c2
mov eax, dword [ebp - 0x20]
and eax, 0x1f
shl eax, 6
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x48]
movzx ecx, byte [edx + ecx]
and ecx, 0x3f
or eax, ecx
mov dword [ebp - 0x20], eax
jmp 0x46b548
mov edx, dword [ebp - 0x20]
and edx, 0x10
jne 0x46b405
mov eax, dword [ebp - 0x20]
and eax, 0xf
shl eax, 0xc
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x48]
movzx ecx, byte [edx + ecx]
and ecx, 0x3f
shl ecx, 6
or eax, ecx
mov edx, 1
shl edx, 1
mov ecx, dword [ebp - 0x48]
movzx edx, byte [ecx + edx]
and edx, 0x3f
or eax, edx
mov dword [ebp - 0x20], eax
jmp 0x46b548
mov eax, dword [ebp - 0x20]
and eax, 8
jne 0x46b45f
mov ecx, dword [ebp - 0x20]
and ecx, 7
shl ecx, 0x12
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x48]
movzx edx, byte [eax + edx]
and edx, 0x3f
shl edx, 0xc
or ecx, edx
mov eax, 1
shl eax, 1
mov edx, dword [ebp - 0x48]
movzx eax, byte [edx + eax]
and eax, 0x3f
shl eax, 6
or ecx, eax
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x48]
movzx eax, byte [edx + eax]
and eax, 0x3f
or ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x46b548
mov ecx, dword [ebp - 0x20]
and ecx, 4
jne 0x46b4cd
mov edx, dword [ebp - 0x20]
and edx, 3
shl edx, 0x18
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x48]
movzx eax, byte [ecx + eax]
and eax, 0x3f
shl eax, 0x12
or edx, eax
mov ecx, 1
shl ecx, 1
mov eax, dword [ebp - 0x48]
movzx ecx, byte [eax + ecx]
and ecx, 0x3f
shl ecx, 0xc
or edx, ecx
mov eax, 1
imul ecx, eax, 3
mov eax, dword [ebp - 0x48]
movzx ecx, byte [eax + ecx]
and ecx, 0x3f
shl ecx, 6
or edx, ecx
mov eax, 1
shl eax, 2
mov ecx, dword [ebp - 0x48]
movzx eax, byte [ecx + eax]
and eax, 0x3f
or edx, eax
mov dword [ebp - 0x20], edx
jmp 0x46b548
mov ecx, dword [ebp - 0x20]
and ecx, 1
shl ecx, 0x1e
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x48]
movzx edx, byte [eax + edx]
and edx, 0x3f
shl edx, 0x18
or ecx, edx
mov eax, 1
shl eax, 1
mov edx, dword [ebp - 0x48]
movzx eax, byte [edx + eax]
and eax, 0x3f
shl eax, 0x12
or ecx, eax
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x48]
movzx eax, byte [edx + eax]
and eax, 0x3f
shl eax, 0xc
or ecx, eax
mov edx, 1
shl edx, 2
mov eax, dword [ebp - 0x48]
movzx edx, byte [eax + edx]
and edx, 0x3f
shl edx, 6
or ecx, edx
mov eax, 1
imul edx, eax, 5
mov eax, dword [ebp - 0x48]
movzx edx, byte [eax + edx]
and edx, 0x3f
or ecx, edx
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x2c], 0xaa
je 0x46b55e
cmp dword [ebp - 0x2c], 0xa9
jne 0x46b5fa
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x20]
and ecx, 0x8000007f
jns 0x46b585
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
movzx ecx, byte [eax + 0x4ba041]
mov dword [ebp - 0x1a8], ecx
mov edx, dword [ebp - 0x1a8]
mov eax, dword [edx*4 + 0x4b7af0]
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 1
je 0x46b5e2
cmp dword [ebp - 0x260], 3
je 0x46b5e2
cmp dword [ebp - 0x1a8], 0xc
je 0x46b5e2
cmp dword [ebp - 0x1a8], 0x10
je 0x46b5e2
mov dword [ebp - 0x264], 0
jmp 0x46b5ec
mov dword [ebp - 0x264], 1
mov ecx, dword [ebp - 0x264]
mov dword [ebp - 0x1b0], ecx
jmp 0x46b636
cmp dword [ebp - 0x20], 0x100
jae 0x46b620
mov edx, dword [ebp - 0xc8]
add edx, dword [ebp - 0x20]
movzx eax, byte [edx]
and eax, 0x10
je 0x46b620
mov dword [ebp - 0x268], 1
jmp 0x46b62a
mov dword [ebp - 0x268], 0
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x1b0], ecx
jmp 0x46b642
mov dword [ebp - 0x1b0], 0
cmp dword [ebp - 0x30], 0
jle 0x46b79b
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edx + 0x1c]
jb 0x46b6ab
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x164], ecx
cmp dword [ebp - 0x3c], 0
je 0x46b69f
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x164]
cmp eax, dword [edx + 0x14]
jae 0x46b69f
mov ecx, dword [ebp - 0x164]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x46b69f
mov eax, dword [ebp - 0x164]
add eax, 1
mov dword [ebp - 0x164], eax
jmp 0x46b669
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x164]
mov dword [ecx + 0x1c], edx
cmp dword [ebp - 0x2c], 0xaa
je 0x46b6c1
cmp dword [ebp - 0x2c], 0xa9
jne 0x46b75d
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46b6e8
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
movzx ecx, byte [eax + 0x4ba041]
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x1ac]
mov eax, dword [edx*4 + 0x4b7af0]
mov dword [ebp - 0x26c], eax
cmp dword [ebp - 0x26c], 1
je 0x46b745
cmp dword [ebp - 0x26c], 3
je 0x46b745
cmp dword [ebp - 0x1ac], 0xc
je 0x46b745
cmp dword [ebp - 0x1ac], 0x10
je 0x46b745
mov dword [ebp - 0x270], 0
jmp 0x46b74f
mov dword [ebp - 0x270], 1
mov ecx, dword [ebp - 0x270]
mov dword [ebp - 0x1b4], ecx
jmp 0x46b799
cmp dword [ebp - 0x18], 0x100
jae 0x46b783
mov edx, dword [ebp - 0xc8]
add edx, dword [ebp - 0x18]
movzx eax, byte [edx]
and eax, 0x10
je 0x46b783
mov dword [ebp - 0x274], 1
jmp 0x46b78d
mov dword [ebp - 0x274], 0
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x1b4], ecx
jmp 0x46b7a5
mov dword [ebp - 0x1b4], 0
mov edx, dword [ebp - 0x1b0]
cmp edx, dword [ebp - 0x1b4]
jne 0x46b7bf
mov dword [ebp - 0x278], 1
jmp 0x46b7c9
mov dword [ebp - 0x278], 0
cmp dword [ebp - 0x2c], 4
je 0x46b7e4
cmp dword [ebp - 0x2c], 0xa9
je 0x46b7e4
mov dword [ebp - 0x27c], 0
jmp 0x46b7ee
mov dword [ebp - 0x27c], 1
mov eax, dword [ebp - 0x278]
cmp eax, dword [ebp - 0x27c]
jne 0x46b84f
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x544], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x548], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x544]
cmp ecx, dword [ebp - 0x548]
jge 0x46b845
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46b84f
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46be76
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46b885
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
add eax, 0x4ba040
mov dword [ebp - 0xb4], eax
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0xd
ja case.default.0x46b8c5
mov ecx, dword [ebp - 0x280]
jmp dword [ecx*4 + 0x4726d8]
mov dword [ebp - 0x68], 1
jmp 0x46bdfc
mov edx, dword [ebp - 0xb4]
movzx eax, byte [edx + 1]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 9
je 0x46b90f
cmp dword [ebp - 0xa0], 5
je 0x46b90f
cmp dword [ebp - 0xa0], 8
je 0x46b90f
mov dword [ebp - 0x284], 0
jmp 0x46b919
mov dword [ebp - 0x284], 1
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x68], ecx
jmp 0x46bdfc
mov edx, dword [ebp - 0xb4]
movzx eax, byte [edx + 1]
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
cmp dword [eax*4 + 0x4b7af0], ecx
jne 0x46b954
mov dword [ebp - 0x288], 1
jmp 0x46b95e
mov dword [ebp - 0x288], 0
mov edx, dword [ebp - 0x288]
mov dword [ebp - 0x68], edx
jmp 0x46bdfc
mov eax, dword [ebp - 0xb4]
movzx ecx, byte [eax + 1]
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
cmp ecx, edx
jne 0x46b994
mov dword [ebp - 0x28c], 1
jmp 0x46b99e
mov dword [ebp - 0x28c], 0
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x68], eax
jmp 0x46bdfc
mov ecx, dword [ebp - 0xb4]
movzx edx, byte [ecx]
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
cmp edx, eax
jne 0x46b9d3
mov dword [ebp - 0x290], 1
jmp 0x46b9dd
mov dword [ebp - 0x290], 0
mov ecx, dword [ebp - 0x290]
mov dword [ebp - 0x68], ecx
jmp 0x46bdfc
mov edx, dword [ebp - 0xb4]
movzx eax, byte [edx]
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
je 0x46ba69
mov edx, dword [ebp - 0xb4]
movzx esi, word [edx + 8]
and esi, 0x3ff
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov edx, 1
shl edx, 1
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46ba4d
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b9d48]
jne 0x46ba69
mov dword [ebp - 0x294], 0
jmp 0x46ba73
mov dword [ebp - 0x294], 1
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x68], eax
jmp 0x46bdfc
mov ecx, dword [ebp - 0xb4]
movzx edx, byte [ecx + 1]
mov dword [ebp - 0xa0], edx
mov eax, dword [ebp - 0xa0]
cmp dword [eax*4 + 0x4b7af0], 1
je 0x46babd
mov ecx, dword [ebp - 0xa0]
cmp dword [ecx*4 + 0x4b7af0], 3
je 0x46babd
mov dword [ebp - 0x298], 0
jmp 0x46bac7
mov dword [ebp - 0x298], 1
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x68], edx
jmp 0x46bdfc
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0x20
ja 0x46bb08
cmp dword [ebp - 0x50], 0x20
je case.0x46bb78.0
mov ecx, dword [ebp - 0x50]
sub ecx, 9
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x50], 4
ja case.0x46bb78.10
mov edx, dword [ebp - 0x50]
jmp dword [edx*4 + 0x472710]
cmp dword [ebp - 0x50], 0x2000
ja 0x46bb4b
cmp dword [ebp - 0x50], 0x2000
je case.0x46bb78.0
cmp dword [ebp - 0x50], 0x1680
ja 0x46bb40
cmp dword [ebp - 0x50], 0x1680
je case.0x46bb78.0
cmp dword [ebp - 0x50], 0x85
je case.0x46bb78.0
cmp dword [ebp - 0x50], 0xa0
je case.0x46bb78.0
jmp case.0x46bb78.10
cmp dword [ebp - 0x50], 0x180e
je case.0x46bb78.0
jmp case.0x46bb78.10
cmp dword [ebp - 0x50], 0x3000
ja 0x46bb7f
cmp dword [ebp - 0x50], 0x3000
je case.0x46bb78.0
mov eax, dword [ebp - 0x50]
sub eax, 0x2001
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0x5e
ja case.0x46bb78.10
mov ecx, dword [ebp - 0x50]
movzx edx, byte [ecx + 0x47272c]
jmp dword [edx*4 + 0x472724]
jmp case.0x46bb78.10
mov dword [ebp - 0x68], 1
jmp 0x46bbbd
mov eax, dword [ebp - 0xb4]
movzx ecx, byte [eax + 1]
cmp dword [ecx*4 + 0x4b7af0], 6
jne 0x46bbaa
mov dword [ebp - 0x29c], 1
jmp 0x46bbb4
mov dword [ebp - 0x29c], 0
mov edx, dword [ebp - 0x29c]
mov dword [ebp - 0x68], edx
jmp 0x46bdfc
mov eax, dword [ebp - 0xb4]
movzx ecx, byte [eax + 1]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0xa0]
cmp dword [edx*4 + 0x4b7af0], 1
je 0x46bc10
mov eax, dword [ebp - 0xa0]
cmp dword [eax*4 + 0x4b7af0], 3
je 0x46bc10
cmp dword [ebp - 0xa0], 0xc
je 0x46bc10
cmp dword [ebp - 0xa0], 0x10
je 0x46bc10
mov dword [ebp - 0x2a0], 0
jmp 0x46bc1a
mov dword [ebp - 0x2a0], 1
mov ecx, dword [ebp - 0x2a0]
mov dword [ebp - 0x68], ecx
jmp 0x46bdfc
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
lea edx, [ecx*4 + 0x4b9a70]
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [eax]
jae 0x46bc59
mov dword [ebp - 0x68], 0
jmp 0x46bc98
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x54c], edx
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax]
mov dword [ebp - 0x550], ecx
mov edx, dword [ebp - 0x178]
add edx, 4
mov dword [ebp - 0x178], edx
mov eax, dword [ebp - 0x54c]
cmp eax, dword [ebp - 0x550]
jne 0x46bc96
mov dword [ebp - 0x68], 1
jmp 0x46bc98
jmp 0x46bc43
jmp 0x46bdfc
cmp dword [ebp - 0x18], 0x24
je 0x46bcd6
cmp dword [ebp - 0x18], 0x40
je 0x46bcd6
cmp dword [ebp - 0x18], 0x60
je 0x46bcd6
cmp dword [ebp - 0x18], 0xa0
jb 0x46bcc1
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x46bcd6
cmp dword [ebp - 0x18], 0xe000
jae 0x46bcd6
mov dword [ebp - 0x2a4], 0
jmp 0x46bce0
mov dword [ebp - 0x2a4], 1
mov ecx, dword [ebp - 0x2a4]
mov dword [ebp - 0x68], ecx
jmp 0x46bdfc
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, word [eax*2 + 0x4be2f8]
shl edx, 7
mov eax, dword [ebp - 0x18]
and eax, 0x8000007f
jns 0x46bd14
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx ecx, word [edx*2 + 0x4c26f8]
imul edx, ecx, 0xc
movzx eax, word [edx + 0x4ba048]
sar eax, 0xb
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
cmp eax, ecx
jne 0x46bd49
mov dword [ebp - 0x2a8], 1
jmp 0x46bd53
mov dword [ebp - 0x2a8], 0
mov edx, dword [ebp - 0x2a8]
mov dword [ebp - 0x68], edx
jmp 0x46bdfc
mov eax, dword [ebp - 0xb4]
movzx esi, word [eax + 0xa]
and esi, 0xfff
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
and ecx, 0x8000001f
jns 0x46bda6
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b94e8]
je 0x46bdc2
mov dword [ebp - 0x2ac], 1
jmp 0x46bdcc
mov dword [ebp - 0x2ac], 0
mov eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x68], eax
jmp 0x46bdfc
cmp dword [ebp - 0x2c], 0x10
je 0x46bde9
mov dword [ebp - 0x2b0], 1
jmp 0x46bdf3
mov dword [ebp - 0x2b0], 0
mov ecx, dword [ebp - 0x2b0]
mov dword [ebp - 0x68], ecx
cmp dword [ebp - 0x2c], 0x10
jne 0x46be0e
mov dword [ebp - 0x2b4], 1
jmp 0x46be18
mov dword [ebp - 0x2b4], 0
mov edx, dword [ebp - 0x68]
cmp edx, dword [ebp - 0x2b4]
jne 0x46be76
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x554], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x558], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x554]
cmp eax, dword [ebp - 0x558]
jge 0x46be6c
mov ecx, dword [ebp - 0x28]
add ecx, 3
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46be76
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jle 0x46bedd
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x55c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x560], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x55c]
cmp ecx, dword [ebp - 0x560]
jge 0x46bed3
mov edx, dword [ebp - 0x28]
add edx, 2
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46bedd
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46c0f3
cmp dword [ebp - 0x20], 0xc
jne 0x46bf42
mov eax, dword [ebp - 0x1c]
add eax, 1
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x14]
jb 0x46bf42
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46bf42
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x44], 0
jne 0x46bf42
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 2
jne 0x46bf42
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx + 0x50]
cmp dword [ebp - 0x18], eax
jne 0x46bf42
mov dword [ebp - 0x60], 1
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], ecx
jmp 0x46c0f3
cmp dword [ebp - 0x18], 0x100
jb 0x46bf61
cmp dword [ebp - 0x20], 7
je 0x46bf61
cmp dword [ebp - 0x20], 9
je 0x46bf61
cmp dword [ebp - 0x20], 0xb
jne 0x46c07d
cmp dword [ebp - 0x18], 0x100
jae 0x46c0f3
cmp dword [ebp - 0x20], 0xc
jne 0x46c057
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x46bfd9
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x14]
jae 0x46bfc1
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
add eax, 0x48
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46bfc1
mov dword [ebp - 0x2b8], 1
jmp 0x46bfcb
mov dword [ebp - 0x2b8], 0
mov eax, dword [ebp - 0x2b8]
mov dword [ebp - 0x2c0], eax
jmp 0x46c04a
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
sub eax, dword [edx + 0x48]
cmp dword [ebp - 0x1c], eax
ja 0x46c034
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + ecx + 0x50]
cmp edx, ecx
jne 0x46c034
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 1
je 0x46c028
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 1]
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
movzx edx, byte [eax + edx + 0x50]
cmp ecx, edx
jne 0x46c034
mov dword [ebp - 0x2bc], 1
jmp 0x46c03e
mov dword [ebp - 0x2bc], 0
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2c0], eax
cmp dword [ebp - 0x2c0], 0
jne 0x46c0f3
mov ecx, dword [ebp - 0xc8]
add ecx, dword [ebp - 0x18]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4b714c]
and edx, ecx
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4b715c]
xor edx, ecx
je 0x46c0f3
cmp dword [ebp - 0x24], 0
jle 0x46c09b
cmp dword [ebp - 0x2c], 0x5f
jne 0x46c09b
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x564], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x564]
cmp edx, dword [ebp - 0x568]
jge 0x46c0e9
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46c0f3
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x56c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x570], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x56c]
cmp edx, dword [ebp - 0x570]
jge 0x46c141
mov eax, dword [ebp - 0x28]
add eax, 2
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46c14b
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46c356
cmp dword [ebp - 0x20], 0xc
jne 0x46c1b0
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov edx, dword [ebp + 8]
cmp ecx, dword [edx + 0x14]
jb 0x46c1b0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0x20
je 0x46c1b0
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
jne 0x46c1b0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 2
jne 0x46c1b0
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx + 0x50]
cmp dword [ebp - 0x18], ecx
jne 0x46c1b0
mov dword [ebp - 0x60], 1
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], edx
jmp 0x46c356
cmp dword [ebp - 0x18], 0x100
jb 0x46c1cf
cmp dword [ebp - 0x20], 7
je 0x46c1cf
cmp dword [ebp - 0x20], 9
je 0x46c1cf
cmp dword [ebp - 0x20], 0xb
jne 0x46c2eb
cmp dword [ebp - 0x18], 0x100
jae 0x46c356
cmp dword [ebp - 0x20], 0xc
jne 0x46c2c5
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
je 0x46c247
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ecx + 0x14]
jae 0x46c22f
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x48
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46c22f
mov dword [ebp - 0x2c4], 1
jmp 0x46c239
mov dword [ebp - 0x2c4], 0
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2cc], ecx
jmp 0x46c2b8
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x48]
cmp dword [ebp - 0x1c], ecx
ja 0x46c2a2
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x46c2a2
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 1
je 0x46c296
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 1]
mov eax, 1
shl eax, 0
mov ecx, dword [ebp + 8]
movzx eax, byte [ecx + eax + 0x50]
cmp edx, eax
jne 0x46c2a2
mov dword [ebp - 0x2c8], 1
jmp 0x46c2ac
mov dword [ebp - 0x2c8], 0
mov ecx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2cc], ecx
cmp dword [ebp - 0x2cc], 0
jne 0x46c356
mov edx, dword [ebp - 0xc8]
add edx, dword [ebp - 0x18]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0x4b714c]
and eax, edx
mov ecx, dword [ebp - 0x20]
movzx edx, byte [ecx + 0x4b715c]
xor eax, edx
je 0x46c356
cmp dword [ebp - 0x2c], 0x60
jne 0x46c303
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x574], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x578], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x574]
cmp edx, dword [ebp - 0x578]
jge 0x46c34c
mov eax, dword [ebp - 0x28]
add eax, 2
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46c356
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x57c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x580], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x57c]
cmp ecx, dword [ebp - 0x580]
jge 0x46c3a4
mov edx, dword [ebp - 0x28]
add edx, 2
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46c3ae
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46c5b6
cmp dword [ebp - 0x20], 0xc
jne 0x46c413
mov eax, dword [ebp - 0x1c]
add eax, 1
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x14]
jb 0x46c413
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46c413
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x44], 0
jne 0x46c413
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 2
jne 0x46c413
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx + 0x50]
cmp dword [ebp - 0x18], eax
jne 0x46c413
mov dword [ebp - 0x60], 1
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], ecx
jmp 0x46c5b6
cmp dword [ebp - 0x18], 0x100
jb 0x46c432
cmp dword [ebp - 0x20], 7
je 0x46c432
cmp dword [ebp - 0x20], 9
je 0x46c432
cmp dword [ebp - 0x20], 0xb
jne 0x46c54e
cmp dword [ebp - 0x18], 0x100
jae 0x46c5b6
cmp dword [ebp - 0x20], 0xc
jne 0x46c528
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x46c4aa
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x14]
jae 0x46c492
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
add eax, 0x48
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46c492
mov dword [ebp - 0x2d0], 1
jmp 0x46c49c
mov dword [ebp - 0x2d0], 0
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d8], eax
jmp 0x46c51b
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
sub eax, dword [edx + 0x48]
cmp dword [ebp - 0x1c], eax
ja 0x46c505
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + ecx + 0x50]
cmp edx, ecx
jne 0x46c505
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 1
je 0x46c4f9
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 1]
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
movzx edx, byte [eax + edx + 0x50]
cmp ecx, edx
jne 0x46c505
mov dword [ebp - 0x2d4], 1
jmp 0x46c50f
mov dword [ebp - 0x2d4], 0
mov eax, dword [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
cmp dword [ebp - 0x2d8], 0
jne 0x46c5b6
mov ecx, dword [ebp - 0xc8]
add ecx, dword [ebp - 0x18]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4b714c]
and edx, ecx
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4b715c]
xor edx, ecx
je 0x46c5b6
cmp dword [ebp - 0x2c], 0x5e
jne 0x46c566
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x584], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x588], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x584]
cmp ecx, dword [ebp - 0x588]
jge 0x46c5ac
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46c5b6
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x30], 0
jle 0x46c83c
cmp dword [ebp - 0x20], 0xc
jne 0x46c629
mov edx, dword [ebp - 0x1c]
add edx, 1
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x14]
jb 0x46c629
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 0x20
je 0x46c629
mov eax, dword [ebp + 8]
cmp dword [eax + 0x44], 0
jne 0x46c629
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x48], 2
jne 0x46c629
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax + 0x50]
cmp dword [ebp - 0x18], edx
jne 0x46c629
mov dword [ebp - 0x60], 1
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x9c], eax
jmp 0x46c83c
cmp dword [ebp - 0x18], 0x100
jb 0x46c648
cmp dword [ebp - 0x20], 7
je 0x46c648
cmp dword [ebp - 0x20], 9
je 0x46c648
cmp dword [ebp - 0x20], 0xb
jne 0x46c768
cmp dword [ebp - 0x18], 0x100
jae 0x46c83c
cmp dword [ebp - 0x20], 0xc
jne 0x46c73e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x44], 0
je 0x46c6c0
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edx + 0x14]
jae 0x46c6a8
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp + 8]
add edx, 0x48
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x44]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46c6a8
mov dword [ebp - 0x2dc], 1
jmp 0x46c6b2
mov dword [ebp - 0x2dc], 0
mov edx, dword [ebp - 0x2dc]
mov dword [ebp - 0x2e4], edx
jmp 0x46c731
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x14]
sub edx, dword [ecx + 0x48]
cmp dword [ebp - 0x1c], edx
ja 0x46c71b
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax]
mov edx, 1
imul eax, edx, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + eax + 0x50]
cmp ecx, eax
jne 0x46c71b
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x48], 1
je 0x46c70f
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx + 1]
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp + 8]
movzx ecx, byte [edx + ecx + 0x50]
cmp eax, ecx
jne 0x46c71b
mov dword [ebp - 0x2e0], 1
jmp 0x46c725
mov dword [ebp - 0x2e0], 0
mov edx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2e4], edx
cmp dword [ebp - 0x2e4], 0
jne 0x46c83c
mov eax, dword [ebp - 0xc8]
add eax, dword [ebp - 0x18]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0x4b714c]
and ecx, eax
mov edx, dword [ebp - 0x20]
movzx eax, byte [edx + 0x4b715c]
xor ecx, eax
je 0x46c83c
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
cmp dword [ebp - 0x24], ecx
jl 0x46c7ed
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x58c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x590], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x58c]
cmp eax, dword [ebp - 0x590]
jge 0x46c7e1
mov ecx, dword [ebp - 0x28]
add ecx, 4
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46c7eb
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46c83c
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x594], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x598], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x594]
cmp edx, dword [ebp - 0x598]
jge 0x46c832
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46c83c
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x59c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5a0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x59c]
cmp edx, dword [ebp - 0x5a0]
jge 0x46c88a
mov eax, dword [ebp - 0x28]
add eax, 4
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46c894
mov eax, 0xffffffd5
jmp 0x4723a1
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x30], 0
jle 0x46cb2d
cmp dword [ebp - 0x20], 0xc
jne 0x46c902
mov eax, dword [ebp - 0x1c]
add eax, 1
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x14]
jb 0x46c902
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46c902
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x44], 0
jne 0x46c902
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 2
jne 0x46c902
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx + 0x50]
cmp dword [ebp - 0x18], eax
jne 0x46c902
mov dword [ebp - 0x60], 1
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x9c], ecx
jmp 0x46cb2d
cmp dword [ebp - 0x18], 0x100
jb 0x46c921
cmp dword [ebp - 0x20], 7
je 0x46c921
cmp dword [ebp - 0x20], 9
je 0x46c921
cmp dword [ebp - 0x20], 0xb
jne 0x46ca41
cmp dword [ebp - 0x18], 0x100
jae 0x46cb2d
cmp dword [ebp - 0x20], 0xc
jne 0x46ca17
mov edx, dword [ebp + 8]
cmp dword [edx + 0x44], 0
je 0x46c999
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x14]
jae 0x46c981
mov edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp + 8]
add eax, 0x48
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x46c981
mov dword [ebp - 0x2e8], 1
jmp 0x46c98b
mov dword [ebp - 0x2e8], 0
mov eax, dword [ebp - 0x2e8]
mov dword [ebp - 0x2f0], eax
jmp 0x46ca0a
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x14]
sub eax, dword [edx + 0x48]
cmp dword [ebp - 0x1c], eax
ja 0x46c9f4
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + ecx + 0x50]
cmp edx, ecx
jne 0x46c9f4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x48], 1
je 0x46c9e8
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 1]
mov edx, 1
shl edx, 0
mov eax, dword [ebp + 8]
movzx edx, byte [eax + edx + 0x50]
cmp ecx, edx
jne 0x46c9f4
mov dword [ebp - 0x2ec], 1
jmp 0x46c9fe
mov dword [ebp - 0x2ec], 0
mov eax, dword [ebp - 0x2ec]
mov dword [ebp - 0x2f0], eax
cmp dword [ebp - 0x2f0], 0
jne 0x46cb2d
mov ecx, dword [ebp - 0xc8]
add ecx, dword [ebp - 0x18]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4b714c]
and edx, ecx
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4b715c]
xor edx, ecx
je 0x46cb2d
cmp dword [ebp - 0x2c], 0x61
jne 0x46ca59
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
cmp dword [ebp - 0x24], ecx
jl 0x46cade
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x5a4], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x5a8], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x5a4]
cmp eax, dword [ebp - 0x5a8]
jge 0x46cad2
mov ecx, dword [ebp - 0x28]
add ecx, 4
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46cadc
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46cb2d
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x5ac], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5b0], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x5ac]
cmp edx, dword [ebp - 0x5b0]
jge 0x46cb23
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46cb2d
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jle 0x46cb94
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x5b4], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x5b8], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x5b4]
cmp ecx, dword [ebp - 0x5b8]
jge 0x46cb8a
mov edx, dword [ebp - 0x28]
add edx, 4
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46cb94
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46d1e8
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46cbc5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
add eax, 0x4ba040
mov dword [ebp - 0xb8], eax
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x2f4], eax
cmp dword [ebp - 0x2f4], 0xd
ja case.default.0x46cc04
mov ecx, dword [ebp - 0x2f4]
jmp dword [ecx*4 + 0x47278c]
mov dword [ebp - 0x6c], 1
jmp 0x46d148
mov edx, dword [ebp - 0xb8]
movzx eax, byte [edx + 1]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 9
je 0x46cc4e
cmp dword [ebp - 0xa4], 5
je 0x46cc4e
cmp dword [ebp - 0xa4], 8
je 0x46cc4e
mov dword [ebp - 0x2f8], 0
jmp 0x46cc58
mov dword [ebp - 0x2f8], 1
mov ecx, dword [ebp - 0x2f8]
mov dword [ebp - 0x6c], ecx
jmp 0x46d148
mov edx, dword [ebp - 0xb8]
movzx eax, byte [edx + 1]
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
cmp dword [eax*4 + 0x4b7af0], edx
jne 0x46cc94
mov dword [ebp - 0x2fc], 1
jmp 0x46cc9e
mov dword [ebp - 0x2fc], 0
mov eax, dword [ebp - 0x2fc]
mov dword [ebp - 0x6c], eax
jmp 0x46d148
mov ecx, dword [ebp - 0xb8]
movzx edx, byte [ecx + 1]
mov eax, 1
imul ecx, eax, 3
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x46ccd5
mov dword [ebp - 0x300], 1
jmp 0x46ccdf
mov dword [ebp - 0x300], 0
mov edx, dword [ebp - 0x300]
mov dword [ebp - 0x6c], edx
jmp 0x46d148
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax]
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
cmp ecx, eax
jne 0x46cd15
mov dword [ebp - 0x304], 1
jmp 0x46cd1f
mov dword [ebp - 0x304], 0
mov ecx, dword [ebp - 0x304]
mov dword [ebp - 0x6c], ecx
jmp 0x46d148
mov edx, dword [ebp - 0xb8]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
cmp eax, edx
je 0x46cdae
mov eax, dword [ebp - 0xb8]
movzx esi, word [eax + 8]
and esi, 0x3ff
mov ecx, 1
imul edx, ecx, 3
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + edx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46cd92
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b9d48]
jne 0x46cdae
mov dword [ebp - 0x308], 0
jmp 0x46cdb8
mov dword [ebp - 0x308], 1
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x6c], eax
jmp 0x46d148
mov ecx, dword [ebp - 0xb8]
movzx edx, byte [ecx + 1]
mov dword [ebp - 0xa4], edx
mov eax, dword [ebp - 0xa4]
cmp dword [eax*4 + 0x4b7af0], 1
je 0x46ce02
mov ecx, dword [ebp - 0xa4]
cmp dword [ecx*4 + 0x4b7af0], 3
je 0x46ce02
mov dword [ebp - 0x30c], 0
jmp 0x46ce0c
mov dword [ebp - 0x30c], 1
mov edx, dword [ebp - 0x30c]
mov dword [ebp - 0x6c], edx
jmp 0x46d148
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0x20
ja 0x46ce4d
cmp dword [ebp - 0x54], 0x20
je case.0x46cebd.0
mov ecx, dword [ebp - 0x54]
sub ecx, 9
mov dword [ebp - 0x54], ecx
cmp dword [ebp - 0x54], 4
ja case.0x46cebd.10
mov edx, dword [ebp - 0x54]
jmp dword [edx*4 + 0x4727c4]
cmp dword [ebp - 0x54], 0x2000
ja 0x46ce90
cmp dword [ebp - 0x54], 0x2000
je case.0x46cebd.0
cmp dword [ebp - 0x54], 0x1680
ja 0x46ce85
cmp dword [ebp - 0x54], 0x1680
je case.0x46cebd.0
cmp dword [ebp - 0x54], 0x85
je case.0x46cebd.0
cmp dword [ebp - 0x54], 0xa0
je case.0x46cebd.0
jmp case.0x46cebd.10
cmp dword [ebp - 0x54], 0x180e
je case.0x46cebd.0
jmp case.0x46cebd.10
cmp dword [ebp - 0x54], 0x3000
ja 0x46cec4
cmp dword [ebp - 0x54], 0x3000
je case.0x46cebd.0
mov eax, dword [ebp - 0x54]
sub eax, 0x2001
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0x5e
ja case.0x46cebd.10
mov ecx, dword [ebp - 0x54]
movzx edx, byte [ecx + 0x4727e0]
jmp dword [edx*4 + 0x4727d8]
jmp case.0x46cebd.10
mov dword [ebp - 0x6c], 1
jmp 0x46cf02
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax + 1]
cmp dword [ecx*4 + 0x4b7af0], 6
jne 0x46ceef
mov dword [ebp - 0x310], 1
jmp 0x46cef9
mov dword [ebp - 0x310], 0
mov edx, dword [ebp - 0x310]
mov dword [ebp - 0x6c], edx
jmp 0x46d148
mov eax, dword [ebp - 0xb8]
movzx ecx, byte [eax + 1]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0xa4]
cmp dword [edx*4 + 0x4b7af0], 1
je 0x46cf55
mov eax, dword [ebp - 0xa4]
cmp dword [eax*4 + 0x4b7af0], 3
je 0x46cf55
cmp dword [ebp - 0xa4], 0xc
je 0x46cf55
cmp dword [ebp - 0xa4], 0x10
je 0x46cf55
mov dword [ebp - 0x314], 0
jmp 0x46cf5f
mov dword [ebp - 0x314], 1
mov ecx, dword [ebp - 0x314]
mov dword [ebp - 0x6c], ecx
jmp 0x46d148
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
lea eax, [edx*4 + 0x4b9a70]
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x18]
cmp edx, dword [ecx]
jae 0x46cf9f
mov dword [ebp - 0x6c], 0
jmp 0x46cfde
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x5bc], eax
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ecx]
mov dword [ebp - 0x5c0], edx
mov eax, dword [ebp - 0x17c]
add eax, 4
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x5bc]
cmp ecx, dword [ebp - 0x5c0]
jne 0x46cfdc
mov dword [ebp - 0x6c], 1
jmp 0x46cfde
jmp 0x46cf89
jmp 0x46d148
cmp dword [ebp - 0x18], 0x24
je 0x46d01c
cmp dword [ebp - 0x18], 0x40
je 0x46d01c
cmp dword [ebp - 0x18], 0x60
je 0x46d01c
cmp dword [ebp - 0x18], 0xa0
jb 0x46d007
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x46d01c
cmp dword [ebp - 0x18], 0xe000
jae 0x46d01c
mov dword [ebp - 0x318], 0
jmp 0x46d026
mov dword [ebp - 0x318], 1
mov edx, dword [ebp - 0x318]
mov dword [ebp - 0x6c], edx
jmp 0x46d148
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46d05b
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
movzx ecx, word [eax + 0x4ba048]
sar ecx, 0xb
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
cmp ecx, eax
jne 0x46d091
mov dword [ebp - 0x31c], 1
jmp 0x46d09b
mov dword [ebp - 0x31c], 0
mov ecx, dword [ebp - 0x31c]
mov dword [ebp - 0x6c], ecx
jmp 0x46d148
mov edx, dword [ebp - 0xb8]
movzx esi, word [edx + 0xa]
and esi, 0xfff
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46d0f2
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b94e8]
je 0x46d10e
mov dword [ebp - 0x320], 1
jmp 0x46d118
mov dword [ebp - 0x320], 0
mov eax, dword [ebp - 0x320]
mov dword [ebp - 0x6c], eax
jmp 0x46d148
cmp dword [ebp - 0x2c], 0x10
je 0x46d135
mov dword [ebp - 0x324], 1
jmp 0x46d13f
mov dword [ebp - 0x324], 0
mov ecx, dword [ebp - 0x324]
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0x20], 0x10
jne 0x46d15a
mov dword [ebp - 0x328], 1
jmp 0x46d164
mov dword [ebp - 0x328], 0
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x328]
jne 0x46d1e8
cmp dword [ebp - 0x24], 0
jle 0x46d190
cmp dword [ebp - 0x2c], 0x18b
jne 0x46d190
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x5c4], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x5c8], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x5c4]
cmp eax, dword [ebp - 0x5c8]
jge 0x46d1de
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x28]
mov dword [ecx], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46d1e8
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0
jle 0x46d24f
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x5cc], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5d0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x5cc]
cmp edx, dword [ebp - 0x5d0]
jge 0x46d245
mov eax, dword [ebp - 0x28]
add eax, 2
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46d24f
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46d313
mov dword [ebp - 0x32c], 0
cmp dword [ebp - 0x24], 0
jle 0x46d284
cmp dword [ebp - 0x2c], 0x19f
jne 0x46d284
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
sub edx, 0xc
mov dword [ebp - 8], edx
lea eax, [ebp - 0x32c]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00479f00
add esp, 0x18
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x5d4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5d8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x5d4]
cmp edx, dword [ebp - 0x5d8]
jge 0x46d309
mov eax, dword [ebp - 0x28]
neg eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x32c]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46d313
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
jle 0x46d37a
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x5dc], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x5e0], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x5dc]
cmp eax, dword [ebp - 0x5e0]
jge 0x46d370
mov ecx, dword [ebp - 0x28]
add ecx, 2
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46d37a
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle case.default.0x46d3d1
mov dword [ebp - 0x330], 0
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xe4], edx
cmp dword [ebp - 0xe4], 0x85
ja 0x46d3d8
cmp dword [ebp - 0xe4], 0x85
je case.0x46d3d1.1
mov eax, dword [ebp - 0xe4]
sub eax, 0xa
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 3
ja case.default.0x46d3d1
mov ecx, dword [ebp - 0xe4]
jmp dword [ecx*4 + 0x472840]
cmp dword [ebp - 0xe4], 0x2028
je case.0x46d3d1.1
cmp dword [ebp - 0xe4], 0x2029
je case.0x46d3d1.1
jmp case.default.0x46d3d1
mov edx, dword [ebp + 8]
movzx eax, word [edx + 0x54]
cmp eax, 2
jne 0x46d406
jmp case.default.0x46d3d1
jmp case.0x46d3d1.0
mov ecx, dword [ebp - 0x1c]
add ecx, 1
cmp ecx, dword [ebp - 0x64]
jae case.0x46d3d1.0
mov edx, dword [ebp - 0x1c]
movzx eax, byte [edx + 1]
cmp eax, 0xa
jne case.0x46d3d1.0
mov dword [ebp - 0x330], 1
cmp dword [ebp - 0x24], 0
jle 0x46d44a
cmp dword [ebp - 0x2c], 0x1b3
jne 0x46d44a
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
sub edx, 0xc
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x5e4], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x5e8], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x5e4]
cmp ecx, dword [ebp - 0x5e8]
jge 0x46d4a6
mov edx, dword [ebp - 0x28]
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x330]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp case.default.0x46d3d1
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0
jle 0x46d517
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x5ec], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5f0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x5ec]
cmp edx, dword [ebp - 0x5f0]
jge 0x46d50d
mov eax, dword [ebp - 0x28]
add eax, 2
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46d517
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46d64a
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xe8], ecx
cmp dword [ebp - 0xe8], 0x85
ja 0x46d567
cmp dword [ebp - 0xe8], 0x85
je case.0x46d560.0
mov edx, dword [ebp - 0xe8]
sub edx, 0xa
mov dword [ebp - 0xe8], edx
cmp dword [ebp - 0xe8], 3
ja case.default.0x46d560
mov eax, dword [ebp - 0xe8]
jmp dword [eax*4 + 0x472850]
cmp dword [ebp - 0xe8], 0x2028
je case.0x46d560.0
cmp dword [ebp - 0xe8], 0x2029
je case.0x46d560.0
jmp case.default.0x46d560
mov dword [ebp - 0x334], 1
jmp 0x46d597
mov dword [ebp - 0x334], 0
cmp dword [ebp - 0x20], 0x15
jne 0x46d5a9
mov dword [ebp - 0x338], 1
jmp 0x46d5b3
mov dword [ebp - 0x338], 0
mov ecx, dword [ebp - 0x334]
cmp ecx, dword [ebp - 0x338]
jne 0x46d64a
cmp dword [ebp - 0x24], 0
jle 0x46d5e6
cmp dword [ebp - 0x2c], 0x1db
jne 0x46d5e6
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x5f4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x5f8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x5f4]
cmp edx, dword [ebp - 0x5f8]
jge 0x46d640
mov eax, dword [ebp - 0x28]
neg eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46d64a
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0
jle 0x46d6b1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x5fc], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x600], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x5fc]
cmp edx, dword [ebp - 0x600]
jge 0x46d6a7
mov eax, dword [ebp - 0x28]
add eax, 2
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46d6b1
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46d838
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x84], ecx
cmp dword [ebp - 0x84], 0x2000
ja 0x46d726
cmp dword [ebp - 0x84], 0x2000
je case.0x46d766.0
cmp dword [ebp - 0x84], 0xa0
ja 0x46d70c
cmp dword [ebp - 0x84], 0xa0
je case.0x46d766.0
cmp dword [ebp - 0x84], 9
je case.0x46d766.0
cmp dword [ebp - 0x84], 0x20
je case.0x46d766.0
jmp case.0x46d766.10
cmp dword [ebp - 0x84], 0x1680
je case.0x46d766.0
cmp dword [ebp - 0x84], 0x180e
je case.0x46d766.0
jmp case.0x46d766.10
cmp dword [ebp - 0x84], 0x3000
ja 0x46d76d
cmp dword [ebp - 0x84], 0x3000
je case.0x46d766.0
mov edx, dword [ebp - 0x84]
sub edx, 0x2001
mov dword [ebp - 0x84], edx
cmp dword [ebp - 0x84], 0x5e
ja case.0x46d766.10
mov eax, dword [ebp - 0x84]
movzx ecx, byte [eax + 0x472868]
jmp dword [ecx*4 + 0x472860]
jmp case.0x46d766.10
mov dword [ebp - 0x33c], 1
jmp 0x46d785
mov dword [ebp - 0x33c], 0
cmp dword [ebp - 0x20], 0x13
jne 0x46d797
mov dword [ebp - 0x340], 1
jmp 0x46d7a1
mov dword [ebp - 0x340], 0
mov edx, dword [ebp - 0x33c]
cmp edx, dword [ebp - 0x340]
jne 0x46d838
cmp dword [ebp - 0x24], 0
jle 0x46d7d4
cmp dword [ebp - 0x2c], 0x1c7
jne 0x46d7d4
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x604], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x608], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x604]
cmp eax, dword [ebp - 0x608]
jge 0x46d82e
mov ecx, dword [ebp - 0x28]
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46d838
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0x24], 4
jmp 0x46d84d
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x60c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x610], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x60c]
cmp ecx, dword [ebp - 0x610]
jge 0x46d896
mov edx, dword [ebp - 0x28]
add edx, 4
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46d8a0
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46def2
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46d8d1
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
add eax, 0x4ba040
mov dword [ebp - 0xbc], eax
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
mov dword [ebp - 0x344], eax
cmp dword [ebp - 0x344], 0xd
ja case.default.0x46d910
mov ecx, dword [ebp - 0x344]
jmp dword [ecx*4 + 0x4728c8]
mov dword [ebp - 0x70], 1
jmp 0x46de54
mov edx, dword [ebp - 0xbc]
movzx eax, byte [edx + 1]
mov dword [ebp - 0xa8], eax
cmp dword [ebp - 0xa8], 9
je 0x46d95a
cmp dword [ebp - 0xa8], 5
je 0x46d95a
cmp dword [ebp - 0xa8], 8
je 0x46d95a
mov dword [ebp - 0x348], 0
jmp 0x46d964
mov dword [ebp - 0x348], 1
mov ecx, dword [ebp - 0x348]
mov dword [ebp - 0x70], ecx
jmp 0x46de54
mov edx, dword [ebp - 0xbc]
movzx eax, byte [edx + 1]
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
cmp dword [eax*4 + 0x4b7af0], edx
jne 0x46d9a0
mov dword [ebp - 0x34c], 1
jmp 0x46d9aa
mov dword [ebp - 0x34c], 0
mov eax, dword [ebp - 0x34c]
mov dword [ebp - 0x70], eax
jmp 0x46de54
mov ecx, dword [ebp - 0xbc]
movzx edx, byte [ecx + 1]
mov eax, 1
imul ecx, eax, 3
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
jne 0x46d9e1
mov dword [ebp - 0x350], 1
jmp 0x46d9eb
mov dword [ebp - 0x350], 0
mov edx, dword [ebp - 0x350]
mov dword [ebp - 0x70], edx
jmp 0x46de54
mov eax, dword [ebp - 0xbc]
movzx ecx, byte [eax]
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
cmp ecx, eax
jne 0x46da21
mov dword [ebp - 0x354], 1
jmp 0x46da2b
mov dword [ebp - 0x354], 0
mov ecx, dword [ebp - 0x354]
mov dword [ebp - 0x70], ecx
jmp 0x46de54
mov edx, dword [ebp - 0xbc]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
cmp eax, edx
je 0x46daba
mov eax, dword [ebp - 0xbc]
movzx esi, word [eax + 8]
and esi, 0x3ff
mov ecx, 1
imul edx, ecx, 3
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax + edx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46da9e
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b9d48]
jne 0x46daba
mov dword [ebp - 0x358], 0
jmp 0x46dac4
mov dword [ebp - 0x358], 1
mov eax, dword [ebp - 0x358]
mov dword [ebp - 0x70], eax
jmp 0x46de54
mov ecx, dword [ebp - 0xbc]
movzx edx, byte [ecx + 1]
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xa8]
cmp dword [eax*4 + 0x4b7af0], 1
je 0x46db0e
mov ecx, dword [ebp - 0xa8]
cmp dword [ecx*4 + 0x4b7af0], 3
je 0x46db0e
mov dword [ebp - 0x35c], 0
jmp 0x46db18
mov dword [ebp - 0x35c], 1
mov edx, dword [ebp - 0x35c]
mov dword [ebp - 0x70], edx
jmp 0x46de54
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0x20
ja 0x46db59
cmp dword [ebp - 0x58], 0x20
je case.0x46dbc9.0
mov ecx, dword [ebp - 0x58]
sub ecx, 9
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x58], 4
ja case.0x46dbc9.10
mov edx, dword [ebp - 0x58]
jmp dword [edx*4 + 0x472900]
cmp dword [ebp - 0x58], 0x2000
ja 0x46db9c
cmp dword [ebp - 0x58], 0x2000
je case.0x46dbc9.0
cmp dword [ebp - 0x58], 0x1680
ja 0x46db91
cmp dword [ebp - 0x58], 0x1680
je case.0x46dbc9.0
cmp dword [ebp - 0x58], 0x85
je case.0x46dbc9.0
cmp dword [ebp - 0x58], 0xa0
je case.0x46dbc9.0
jmp case.0x46dbc9.10
cmp dword [ebp - 0x58], 0x180e
je case.0x46dbc9.0
jmp case.0x46dbc9.10
cmp dword [ebp - 0x58], 0x3000
ja 0x46dbd0
cmp dword [ebp - 0x58], 0x3000
je case.0x46dbc9.0
mov eax, dword [ebp - 0x58]
sub eax, 0x2001
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0x5e
ja case.0x46dbc9.10
mov ecx, dword [ebp - 0x58]
movzx edx, byte [ecx + 0x47291c]
jmp dword [edx*4 + 0x472914]
jmp case.0x46dbc9.10
mov dword [ebp - 0x70], 1
jmp 0x46dc0e
mov eax, dword [ebp - 0xbc]
movzx ecx, byte [eax + 1]
cmp dword [ecx*4 + 0x4b7af0], 6
jne 0x46dbfb
mov dword [ebp - 0x360], 1
jmp 0x46dc05
mov dword [ebp - 0x360], 0
mov edx, dword [ebp - 0x360]
mov dword [ebp - 0x70], edx
jmp 0x46de54
mov eax, dword [ebp - 0xbc]
movzx ecx, byte [eax + 1]
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0xa8]
cmp dword [edx*4 + 0x4b7af0], 1
je 0x46dc61
mov eax, dword [ebp - 0xa8]
cmp dword [eax*4 + 0x4b7af0], 3
je 0x46dc61
cmp dword [ebp - 0xa8], 0xc
je 0x46dc61
cmp dword [ebp - 0xa8], 0x10
je 0x46dc61
mov dword [ebp - 0x364], 0
jmp 0x46dc6b
mov dword [ebp - 0x364], 1
mov ecx, dword [ebp - 0x364]
mov dword [ebp - 0x70], ecx
jmp 0x46de54
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
lea eax, [edx*4 + 0x4b9a70]
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x180]
mov edx, dword [ebp - 0x18]
cmp edx, dword [ecx]
jae 0x46dcab
mov dword [ebp - 0x70], 0
jmp 0x46dcea
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx]
mov dword [ebp - 0x618], edx
mov eax, dword [ebp - 0x180]
add eax, 4
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x614]
cmp ecx, dword [ebp - 0x618]
jne 0x46dce8
mov dword [ebp - 0x70], 1
jmp 0x46dcea
jmp 0x46dc95
jmp 0x46de54
cmp dword [ebp - 0x18], 0x24
je 0x46dd28
cmp dword [ebp - 0x18], 0x40
je 0x46dd28
cmp dword [ebp - 0x18], 0x60
je 0x46dd28
cmp dword [ebp - 0x18], 0xa0
jb 0x46dd13
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x46dd28
cmp dword [ebp - 0x18], 0xe000
jae 0x46dd28
mov dword [ebp - 0x368], 0
jmp 0x46dd32
mov dword [ebp - 0x368], 1
mov edx, dword [ebp - 0x368]
mov dword [ebp - 0x70], edx
jmp 0x46de54
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46dd67
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
movzx ecx, word [eax + 0x4ba048]
sar ecx, 0xb
mov edx, 1
imul eax, edx, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
cmp ecx, eax
jne 0x46dd9d
mov dword [ebp - 0x36c], 1
jmp 0x46dda7
mov dword [ebp - 0x36c], 0
mov ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x70], ecx
jmp 0x46de54
mov edx, dword [ebp - 0xbc]
movzx esi, word [edx + 0xa]
and esi, 0xfff
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
imul edx, ecx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46ddfe
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b94e8]
je 0x46de1a
mov dword [ebp - 0x370], 1
jmp 0x46de24
mov dword [ebp - 0x370], 0
mov eax, dword [ebp - 0x370]
mov dword [ebp - 0x70], eax
jmp 0x46de54
cmp dword [ebp - 0x2c], 0x10
je 0x46de41
mov dword [ebp - 0x374], 1
jmp 0x46de4b
mov dword [ebp - 0x374], 0
mov ecx, dword [ebp - 0x374]
mov dword [ebp - 0x70], ecx
cmp dword [ebp - 0x20], 0x10
jne 0x46de66
mov dword [ebp - 0x378], 1
jmp 0x46de70
mov dword [ebp - 0x378], 0
mov edx, dword [ebp - 0x70]
cmp edx, dword [ebp - 0x378]
jne 0x46def2
cmp dword [ebp - 0x2c], 0x18a
je 0x46de8d
cmp dword [ebp - 0x2c], 0x18c
jne 0x46de9f
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x61c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x620], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x61c]
cmp edx, dword [ebp - 0x620]
jge 0x46dee8
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46def2
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0x24], 2
jmp 0x46df07
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x624], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x628], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x624]
cmp ecx, dword [ebp - 0x628]
jge 0x46df50
mov edx, dword [ebp - 0x28]
add edx, 2
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46df5a
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46e01c
mov dword [ebp - 0x37c], 0
cmp dword [ebp - 0x2c], 0x19e
je 0x46df80
cmp dword [ebp - 0x2c], 0x1a0
jne 0x46df92
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
lea edx, [ebp - 0x37c]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.00479f00
add esp, 0x18
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x62c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x630], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x62c]
cmp eax, dword [ebp - 0x630]
jge 0x46e012
mov ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x24]
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x37c]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46e01c
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0x24], 2
jmp 0x46e031
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x634], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x638], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x634]
cmp ecx, dword [ebp - 0x638]
jge 0x46e07a
mov edx, dword [ebp - 0x28]
add edx, 2
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46e084
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle case.default.0x46e0db
mov dword [ebp - 0x380], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0x85
ja 0x46e0e2
cmp dword [ebp - 0xec], 0x85
je case.0x46e0db.1
mov ecx, dword [ebp - 0xec]
sub ecx, 0xa
mov dword [ebp - 0xec], ecx
cmp dword [ebp - 0xec], 3
ja case.default.0x46e0db
mov edx, dword [ebp - 0xec]
jmp dword [edx*4 + 0x47297c]
cmp dword [ebp - 0xec], 0x2028
je case.0x46e0db.1
cmp dword [ebp - 0xec], 0x2029
je case.0x46e0db.1
jmp case.default.0x46e0db
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x54]
cmp ecx, 2
jne 0x46e110
jmp case.default.0x46e0db
jmp case.0x46e0db.0
mov edx, dword [ebp - 0x1c]
add edx, 1
cmp edx, dword [ebp - 0x64]
jae case.0x46e0db.0
mov eax, dword [ebp - 0x1c]
movzx ecx, byte [eax + 1]
cmp ecx, 0xa
jne case.0x46e0db.0
mov dword [ebp - 0x380], 1
cmp dword [ebp - 0x2c], 0x1b2
je 0x46e145
cmp dword [ebp - 0x2c], 0x1b4
jne 0x46e157
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x63c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x640], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x63c]
cmp ecx, dword [ebp - 0x640]
jge 0x46e1ae
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x24]
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x380]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp case.default.0x46e0db
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0x24], 2
jmp 0x46e1cd
mov dword [ebp - 0x24], 0
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x644], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x648], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x644]
cmp edx, dword [ebp - 0x648]
jge 0x46e216
mov eax, dword [ebp - 0x28]
add eax, 2
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46e220
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46e351
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xf0], ecx
cmp dword [ebp - 0xf0], 0x85
ja 0x46e270
cmp dword [ebp - 0xf0], 0x85
je case.0x46e269.0
mov edx, dword [ebp - 0xf0]
sub edx, 0xa
mov dword [ebp - 0xf0], edx
cmp dword [ebp - 0xf0], 3
ja case.default.0x46e269
mov eax, dword [ebp - 0xf0]
jmp dword [eax*4 + 0x47298c]
cmp dword [ebp - 0xf0], 0x2028
je case.0x46e269.0
cmp dword [ebp - 0xf0], 0x2029
je case.0x46e269.0
jmp case.default.0x46e269
mov dword [ebp - 0x384], 1
jmp 0x46e2a0
mov dword [ebp - 0x384], 0
cmp dword [ebp - 0x20], 0x15
jne 0x46e2b2
mov dword [ebp - 0x388], 1
jmp 0x46e2bc
mov dword [ebp - 0x388], 0
mov ecx, dword [ebp - 0x384]
cmp ecx, dword [ebp - 0x388]
jne 0x46e351
cmp dword [ebp - 0x2c], 0x1da
je 0x46e2e0
cmp dword [ebp - 0x2c], 0x1dc
jne 0x46e2f2
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x64c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x650], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x64c]
cmp ecx, dword [ebp - 0x650]
jge 0x46e347
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x24]
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46e351
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0x24], 2
jmp 0x46e366
mov dword [ebp - 0x24], 0
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x654], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x658], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x654]
cmp ecx, dword [ebp - 0x658]
jge 0x46e3af
mov edx, dword [ebp - 0x28]
add edx, 2
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46e3b9
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x46e53e
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0x2000
ja 0x46e42e
cmp dword [ebp - 0x88], 0x2000
je case.0x46e46e.0
cmp dword [ebp - 0x88], 0xa0
ja 0x46e414
cmp dword [ebp - 0x88], 0xa0
je case.0x46e46e.0
cmp dword [ebp - 0x88], 9
je case.0x46e46e.0
cmp dword [ebp - 0x88], 0x20
je case.0x46e46e.0
jmp case.0x46e46e.10
cmp dword [ebp - 0x88], 0x1680
je case.0x46e46e.0
cmp dword [ebp - 0x88], 0x180e
je case.0x46e46e.0
jmp case.0x46e46e.10
cmp dword [ebp - 0x88], 0x3000
ja 0x46e475
cmp dword [ebp - 0x88], 0x3000
je case.0x46e46e.0
mov ecx, dword [ebp - 0x88]
sub ecx, 0x2001
mov dword [ebp - 0x88], ecx
cmp dword [ebp - 0x88], 0x5e
ja case.0x46e46e.10
mov edx, dword [ebp - 0x88]
movzx eax, byte [edx + 0x4729a4]
jmp dword [eax*4 + 0x47299c]
jmp case.0x46e46e.10
mov dword [ebp - 0x38c], 1
jmp 0x46e48d
mov dword [ebp - 0x38c], 0
cmp dword [ebp - 0x20], 0x13
jne 0x46e49f
mov dword [ebp - 0x390], 1
jmp 0x46e4a9
mov dword [ebp - 0x390], 0
mov ecx, dword [ebp - 0x38c]
cmp ecx, dword [ebp - 0x390]
jne 0x46e53e
cmp dword [ebp - 0x2c], 0x1c6
je 0x46e4cd
cmp dword [ebp - 0x2c], 0x1c8
jne 0x46e4df
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x65c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x660], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x65c]
cmp ecx, dword [ebp - 0x660]
jge 0x46e534
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x24]
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46e53e
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x2c], 0x189
je 0x46e59f
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x664], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x668], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x664]
cmp ecx, dword [ebp - 0x668]
jge 0x46e595
mov edx, dword [ebp - 0x28]
add edx, 6
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46e59f
mov eax, 0xffffffd5
jmp 0x4723a1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x30], 0
jle 0x46ec77
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, word [eax*2 + 0x4be2f8]
shl edx, 7
mov eax, dword [ebp - 0x18]
and eax, 0x8000007f
jns 0x46e5d8
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx ecx, word [edx*2 + 0x4c26f8]
imul edx, ecx, 0xc
add edx, 0x4ba040
mov dword [ebp - 0xc0], edx
mov eax, 1
shl eax, 2
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
mov dword [ebp - 0x394], edx
cmp dword [ebp - 0x394], 0xd
ja case.default.0x46e619
mov eax, dword [ebp - 0x394]
jmp dword [eax*4 + 0x472a04]
mov dword [ebp - 0x74], 1
jmp 0x46eb5d
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx + 1]
mov dword [ebp - 0xac], edx
cmp dword [ebp - 0xac], 9
je 0x46e663
cmp dword [ebp - 0xac], 5
je 0x46e663
cmp dword [ebp - 0xac], 8
je 0x46e663
mov dword [ebp - 0x398], 0
jmp 0x46e66d
mov dword [ebp - 0x398], 1
mov eax, dword [ebp - 0x398]
mov dword [ebp - 0x74], eax
jmp 0x46eb5d
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx + 1]
mov eax, 1
imul ecx, eax, 5
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + ecx]
cmp dword [edx*4 + 0x4b7af0], ecx
jne 0x46e6a9
mov dword [ebp - 0x39c], 1
jmp 0x46e6b3
mov dword [ebp - 0x39c], 0
mov edx, dword [ebp - 0x39c]
mov dword [ebp - 0x74], edx
jmp 0x46eb5d
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax + 1]
mov edx, 1
imul eax, edx, 5
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
cmp ecx, eax
jne 0x46e6ea
mov dword [ebp - 0x3a0], 1
jmp 0x46e6f4
mov dword [ebp - 0x3a0], 0
mov ecx, dword [ebp - 0x3a0]
mov dword [ebp - 0x74], ecx
jmp 0x46eb5d
mov edx, dword [ebp - 0xc0]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 5
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
cmp eax, edx
jne 0x46e72a
mov dword [ebp - 0x3a4], 1
jmp 0x46e734
mov dword [ebp - 0x3a4], 0
mov eax, dword [ebp - 0x3a4]
mov dword [ebp - 0x74], eax
jmp 0x46eb5d
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 5
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + ecx]
cmp edx, ecx
je 0x46e7c3
mov edx, dword [ebp - 0xc0]
movzx esi, word [edx + 8]
and esi, 0x3ff
mov eax, 1
imul ecx, eax, 5
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
imul edx, ecx, 5
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46e7a7
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b9d48]
jne 0x46e7c3
mov dword [ebp - 0x3a8], 0
jmp 0x46e7cd
mov dword [ebp - 0x3a8], 1
mov eax, dword [ebp - 0x3a8]
mov dword [ebp - 0x74], eax
jmp 0x46eb5d
mov ecx, dword [ebp - 0xc0]
movzx edx, byte [ecx + 1]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xac]
cmp dword [eax*4 + 0x4b7af0], 1
je 0x46e817
mov ecx, dword [ebp - 0xac]
cmp dword [ecx*4 + 0x4b7af0], 3
je 0x46e817
mov dword [ebp - 0x3ac], 0
jmp 0x46e821
mov dword [ebp - 0x3ac], 1
mov edx, dword [ebp - 0x3ac]
mov dword [ebp - 0x74], edx
jmp 0x46eb5d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0x20
ja 0x46e862
cmp dword [ebp - 0x5c], 0x20
je case.0x46e8d2.0
mov ecx, dword [ebp - 0x5c]
sub ecx, 9
mov dword [ebp - 0x5c], ecx
cmp dword [ebp - 0x5c], 4
ja case.0x46e8d2.10
mov edx, dword [ebp - 0x5c]
jmp dword [edx*4 + 0x472a3c]
cmp dword [ebp - 0x5c], 0x2000
ja 0x46e8a5
cmp dword [ebp - 0x5c], 0x2000
je case.0x46e8d2.0
cmp dword [ebp - 0x5c], 0x1680
ja 0x46e89a
cmp dword [ebp - 0x5c], 0x1680
je case.0x46e8d2.0
cmp dword [ebp - 0x5c], 0x85
je case.0x46e8d2.0
cmp dword [ebp - 0x5c], 0xa0
je case.0x46e8d2.0
jmp case.0x46e8d2.10
cmp dword [ebp - 0x5c], 0x180e
je case.0x46e8d2.0
jmp case.0x46e8d2.10
cmp dword [ebp - 0x5c], 0x3000
ja 0x46e8d9
cmp dword [ebp - 0x5c], 0x3000
je case.0x46e8d2.0
mov eax, dword [ebp - 0x5c]
sub eax, 0x2001
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0x5e
ja case.0x46e8d2.10
mov ecx, dword [ebp - 0x5c]
movzx edx, byte [ecx + 0x472a58]
jmp dword [edx*4 + 0x472a50]
jmp case.0x46e8d2.10
mov dword [ebp - 0x74], 1
jmp 0x46e917
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax + 1]
cmp dword [ecx*4 + 0x4b7af0], 6
jne 0x46e904
mov dword [ebp - 0x3b0], 1
jmp 0x46e90e
mov dword [ebp - 0x3b0], 0
mov edx, dword [ebp - 0x3b0]
mov dword [ebp - 0x74], edx
jmp 0x46eb5d
mov eax, dword [ebp - 0xc0]
movzx ecx, byte [eax + 1]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xac]
cmp dword [edx*4 + 0x4b7af0], 1
je 0x46e96a
mov eax, dword [ebp - 0xac]
cmp dword [eax*4 + 0x4b7af0], 3
je 0x46e96a
cmp dword [ebp - 0xac], 0xc
je 0x46e96a
cmp dword [ebp - 0xac], 0x10
je 0x46e96a
mov dword [ebp - 0x3b4], 0
jmp 0x46e974
mov dword [ebp - 0x3b4], 1
mov ecx, dword [ebp - 0x3b4]
mov dword [ebp - 0x74], ecx
jmp 0x46eb5d
mov edx, 1
imul eax, edx, 5
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
lea eax, [edx*4 + 0x4b9a70]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x18]
cmp edx, dword [ecx]
jae 0x46e9b4
mov dword [ebp - 0x74], 0
jmp 0x46e9f3
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x66c], eax
mov ecx, dword [ebp - 0x184]
mov edx, dword [ecx]
mov dword [ebp - 0x670], edx
mov eax, dword [ebp - 0x184]
add eax, 4
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x66c]
cmp ecx, dword [ebp - 0x670]
jne 0x46e9f1
mov dword [ebp - 0x74], 1
jmp 0x46e9f3
jmp 0x46e99e
jmp 0x46eb5d
cmp dword [ebp - 0x18], 0x24
je 0x46ea31
cmp dword [ebp - 0x18], 0x40
je 0x46ea31
cmp dword [ebp - 0x18], 0x60
je 0x46ea31
cmp dword [ebp - 0x18], 0xa0
jb 0x46ea1c
cmp dword [ebp - 0x18], 0xd7ff
jbe 0x46ea31
cmp dword [ebp - 0x18], 0xe000
jae 0x46ea31
mov dword [ebp - 0x3b8], 0
jmp 0x46ea3b
mov dword [ebp - 0x3b8], 1
mov edx, dword [ebp - 0x3b8]
mov dword [ebp - 0x74], edx
jmp 0x46eb5d
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x18]
and ecx, 0x8000007f
jns 0x46ea70
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
movzx ecx, word [eax + 0x4ba048]
sar ecx, 0xb
mov edx, 1
imul eax, edx, 5
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + eax]
cmp ecx, eax
jne 0x46eaa6
mov dword [ebp - 0x3bc], 1
jmp 0x46eab0
mov dword [ebp - 0x3bc], 0
mov ecx, dword [ebp - 0x3bc]
mov dword [ebp - 0x74], ecx
jmp 0x46eb5d
mov edx, dword [ebp - 0xc0]
movzx esi, word [edx + 0xa]
and esi, 0xfff
mov eax, 1
imul ecx, eax, 5
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
mov ecx, 1
imul edx, ecx, 5
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
mov ecx, edx
and ecx, 0x8000001f
jns 0x46eb07
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
and edx, dword [eax + esi*4 + 0x4b94e8]
je 0x46eb23
mov dword [ebp - 0x3c0], 1
jmp 0x46eb2d
mov dword [ebp - 0x3c0], 0
mov eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x74], eax
jmp 0x46eb5d
cmp dword [ebp - 0x2c], 0x10
je 0x46eb4a
mov dword [ebp - 0x3c4], 1
jmp 0x46eb54
mov dword [ebp - 0x3c4], 0
mov ecx, dword [ebp - 0x3c4]
mov dword [ebp - 0x74], ecx
cmp dword [ebp - 0x20], 0x10
jne 0x46eb6f
mov dword [ebp - 0x3c8], 1
jmp 0x46eb79
mov dword [ebp - 0x3c8], 0
mov edx, dword [ebp - 0x74]
cmp edx, dword [ebp - 0x3c8]
jne 0x46ec77
cmp dword [ebp - 0x2c], 0x18d
jne 0x46eba3
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
cmp dword [ebp - 0x24], edx
jl 0x46ec28
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x674], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x678], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x674]
cmp ecx, dword [ebp - 0x678]
jge 0x46ec1c
mov edx, dword [ebp - 0x28]
add edx, 6
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46ec26
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46ec77
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x67c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x680], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x67c]
cmp eax, dword [ebp - 0x680]
jge 0x46ec6d
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x28]
mov dword [ecx], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46ec77
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x2c], 0x19d
je 0x46ecd8
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x684], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x688], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x684]
cmp eax, dword [ebp - 0x688]
jge 0x46ecce
mov ecx, dword [ebp - 0x28]
add ecx, 4
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46ecd8
mov eax, 0xffffffd5
jmp 0x4723a1
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x30], 0
jle 0x46ee4f
mov dword [ebp - 0x1b8], 0
cmp dword [ebp - 0x2c], 0x1a1
jne 0x46ed10
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
sub edx, 0xc
mov dword [ebp - 8], edx
lea eax, [ebp - 0x1b8]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00479f00
add esp, 0x18
mov dword [ebp - 0x68c], eax
mov ecx, dword [ebp - 0x68c]
cmp ecx, dword [ebp - 0x64]
jb 0x46ed5f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46ed5f
mov dword [ebp - 0x100], 1
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
cmp dword [ebp - 0x24], ecx
jl 0x46edf2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x690], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x694], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x690]
cmp eax, dword [ebp - 0x694]
jge 0x46ede6
mov ecx, dword [ebp - 0x28]
add ecx, 4
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1b8]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46edf0
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46ee4f
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x698], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x69c], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x698]
cmp ecx, dword [ebp - 0x69c]
jge 0x46ee45
mov edx, dword [ebp - 0x28]
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x1b8]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46ee4f
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x2c], 0x1b1
je 0x46eeb0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x6a0], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x6a4], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x6a0]
cmp eax, dword [ebp - 0x6a4]
jge 0x46eea6
mov ecx, dword [ebp - 0x28]
add ecx, 4
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x46eeb0
mov eax, 0xffffffd5
jmp 0x4723a1
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x30], 0
jle case.default.0x46ef10
mov dword [ebp - 0x1bc], 0
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xf4], ecx
cmp dword [ebp - 0xf4], 0x85
ja 0x46ef17
cmp dword [ebp - 0xf4], 0x85
je case.0x46ef10.1
mov edx, dword [ebp - 0xf4]
sub edx, 0xa
mov dword [ebp - 0xf4], edx
cmp dword [ebp - 0xf4], 3
ja case.default.0x46ef10
mov eax, dword [ebp - 0xf4]
jmp dword [eax*4 + 0x472ab8]
cmp dword [ebp - 0xf4], 0x2028
je case.0x46ef10.1
cmp dword [ebp - 0xf4], 0x2029
je case.0x46ef10.1
jmp case.default.0x46ef10
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x54]
cmp edx, 2
jne 0x46ef45
jmp case.default.0x46ef10
jmp case.0x46ef10.0
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, dword [ebp - 0x64]
jae case.0x46ef10.0
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 1]
cmp edx, 0xa
jne case.0x46ef10.0
mov dword [ebp - 0x1bc], 1
cmp dword [ebp - 0x2c], 0x1b5
jne 0x46ef83
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
cmp dword [ebp - 0x24], edx
jl 0x46f016
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x6a8], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x6ac], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x6a8]
cmp ecx, dword [ebp - 0x6ac]
jge 0x46f00a
mov edx, dword [ebp - 0x28]
add edx, 4
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1bc]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f014
mov eax, 0xffffffd5
jmp 0x4723a1
jmp case.default.0x46ef10
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x6b0], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x6b4], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x6b0]
cmp edx, dword [ebp - 0x6b4]
jge 0x46f069
mov eax, dword [ebp - 0x28]
neg eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1bc]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp case.default.0x46ef10
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x2c], 0x1d9
je 0x46f0d4
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x6b8], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x6bc], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x6b8]
cmp ecx, dword [ebp - 0x6bc]
jge 0x46f0ca
mov edx, dword [ebp - 0x28]
add edx, 4
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x46f0d4
mov eax, 0xffffffd5
jmp 0x4723a1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x30], 0
jle 0x46f292
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0xf8], edx
cmp dword [ebp - 0xf8], 0x85
ja 0x46f12d
cmp dword [ebp - 0xf8], 0x85
je case.0x46f126.0
mov eax, dword [ebp - 0xf8]
sub eax, 0xa
mov dword [ebp - 0xf8], eax
cmp dword [ebp - 0xf8], 3
ja case.default.0x46f126
mov ecx, dword [ebp - 0xf8]
jmp dword [ecx*4 + 0x472ac8]
cmp dword [ebp - 0xf8], 0x2028
je case.0x46f126.0
cmp dword [ebp - 0xf8], 0x2029
je case.0x46f126.0
jmp case.default.0x46f126
mov dword [ebp - 0x3cc], 1
jmp 0x46f15d
mov dword [ebp - 0x3cc], 0
cmp dword [ebp - 0x20], 0x15
jne 0x46f16f
mov dword [ebp - 0x3d0], 1
jmp 0x46f179
mov dword [ebp - 0x3d0], 0
mov edx, dword [ebp - 0x3cc]
cmp edx, dword [ebp - 0x3d0]
jne 0x46f292
cmp dword [ebp - 0x2c], 0x1dd
jne 0x46f1a6
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
cmp dword [ebp - 0x24], edx
jl 0x46f237
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x6c0], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x6c4], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x6c0]
cmp ecx, dword [ebp - 0x6c4]
jge 0x46f22b
mov edx, dword [ebp - 0x28]
add edx, 4
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46f235
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46f292
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x6c8], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x6cc], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x6c8]
cmp ecx, dword [ebp - 0x6cc]
jge 0x46f288
mov edx, dword [ebp - 0x28]
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
mov dword [eax + 8], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f292
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x2c], 0x1c5
je 0x46f2f3
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x6d0], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x6d4], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x6d0]
cmp edx, dword [ebp - 0x6d4]
jge 0x46f2e9
mov eax, dword [ebp - 0x28]
add eax, 4
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46f2f3
mov eax, 0xffffffd5
jmp 0x4723a1
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x30], 0
jle 0x46f505
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0x2000
ja 0x46f371
cmp dword [ebp - 0x8c], 0x2000
je case.0x46f3b1.0
cmp dword [ebp - 0x8c], 0xa0
ja 0x46f357
cmp dword [ebp - 0x8c], 0xa0
je case.0x46f3b1.0
cmp dword [ebp - 0x8c], 9
je case.0x46f3b1.0
cmp dword [ebp - 0x8c], 0x20
je case.0x46f3b1.0
jmp case.0x46f3b1.10
cmp dword [ebp - 0x8c], 0x1680
je case.0x46f3b1.0
cmp dword [ebp - 0x8c], 0x180e
je case.0x46f3b1.0
jmp case.0x46f3b1.10
cmp dword [ebp - 0x8c], 0x3000
ja 0x46f3b8
cmp dword [ebp - 0x8c], 0x3000
je case.0x46f3b1.0
mov ecx, dword [ebp - 0x8c]
sub ecx, 0x2001
mov dword [ebp - 0x8c], ecx
cmp dword [ebp - 0x8c], 0x5e
ja case.0x46f3b1.10
mov edx, dword [ebp - 0x8c]
movzx eax, byte [edx + 0x472ae0]
jmp dword [eax*4 + 0x472ad8]
jmp case.0x46f3b1.10
mov dword [ebp - 0x3d4], 1
jmp 0x46f3d0
mov dword [ebp - 0x3d4], 0
cmp dword [ebp - 0x20], 0x13
jne 0x46f3e2
mov dword [ebp - 0x3d8], 1
jmp 0x46f3ec
mov dword [ebp - 0x3d8], 0
mov ecx, dword [ebp - 0x3d4]
cmp ecx, dword [ebp - 0x3d8]
jne 0x46f505
cmp dword [ebp - 0x2c], 0x1c9
jne 0x46f419
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
cmp dword [ebp - 0x24], ecx
jl 0x46f4aa
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x6d8], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x6dc], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x6d8]
cmp eax, dword [ebp - 0x6dc]
jge 0x46f49e
mov ecx, dword [ebp - 0x28]
add ecx, 4
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46f4a8
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46f505
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x6e0], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x6e4], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x6e0]
cmp eax, dword [ebp - 0x6e4]
jge 0x46f4fb
mov ecx, dword [ebp - 0x28]
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46f505
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46f56f
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
jne 0x46f56f
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x6e8], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x6ec], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x6e8]
cmp edx, dword [ebp - 0x6ec]
jge 0x46f565
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax + 1]
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46f56f
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jne 0x46f57f
jmp 0x4722f1
cmp dword [ebp - 0x114], 0
je 0x46f6b4
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
jne 0x46f5f0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x6f0], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x6f4], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x6f0]
cmp ecx, dword [ebp - 0x6f4]
jge 0x46f5e1
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + edx + 1]
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f5eb
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46f6b2
cmp dword [ebp - 0x18], 0x80
jae 0x46f60d
mov edx, dword [ebp - 0x118]
add edx, dword [ebp - 0x18]
movzx eax, byte [edx]
mov dword [ebp - 0x3dc], eax
jmp 0x46f650
mov eax, dword [ebp - 0x18]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, word [eax*2 + 0x4be2f8]
shl ecx, 7
mov edx, dword [ebp - 0x18]
and edx, 0x8000007f
jns 0x46f634
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x4c26f8]
imul ecx, eax, 0xc
mov edx, dword [ebp - 0x18]
add edx, dword [ecx + 0x4ba044]
mov dword [ebp - 0x3dc], edx
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x3dc]
jne 0x46f6b2
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x6fc], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x6f8]
cmp ecx, dword [ebp - 0x6fc]
jge 0x46f6a8
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + edx + 1]
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f6b2
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x46f723
mov edx, dword [ebp - 0x3e0]
add edx, dword [ebp - 0x18]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x3e0]
add ecx, dword [ebp - 0x20]
movzx edx, byte [ecx]
cmp eax, edx
jne 0x46f723
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x700], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x704], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x700]
cmp eax, dword [ebp - 0x704]
jge 0x46f719
mov ecx, dword [ebp - 0x28]
add ecx, 2
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f723
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46f7ec
mov dword [ebp - 0x3e4], 0
lea edx, [ebp - 0x3e4]
push edx
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.00479f00
add esp, 0x18
mov dword [ebp - 0x708], eax
mov eax, dword [ebp - 0x708]
cmp eax, dword [ebp - 0x64]
jb 0x46f78b
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x3c]
and edx, 0x20
je 0x46f78b
mov dword [ebp - 0x100], 1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x70c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x710], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x70c]
cmp eax, dword [ebp - 0x710]
jge 0x46f7e2
mov ecx, dword [ebp - 0x28]
add ecx, 1
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x3e4]
mov dword [ecx + 8], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46f7ec
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle case.default.0x46f83e
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xfc], ecx
cmp dword [ebp - 0xfc], 0x85
ja 0x46f845
cmp dword [ebp - 0xfc], 0x85
je case.0x46f83e.1
mov edx, dword [ebp - 0xfc]
sub edx, 0xa
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0xfc], 3
ja case.default.0x46f83e
mov eax, dword [ebp - 0xfc]
jmp dword [eax*4 + 0x472b40]
cmp dword [ebp - 0xfc], 0x2028
je case.0x46f83e.1
cmp dword [ebp - 0xfc], 0x2029
je case.0x46f83e.1
jmp case.default.0x46f83e
mov ecx, dword [ebp + 8]
movzx edx, word [ecx + 0x54]
cmp edx, 2
jne case.0x46f83e.0
jmp case.default.0x46f83e
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x718], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x714]
cmp eax, dword [ebp - 0x718]
jge 0x46f8bc
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f8c6
mov eax, 0xffffffd5
jmp 0x4723a1
jmp case.default.0x46f83e
mov edx, dword [ebp - 0x1c]
add edx, 1
cmp edx, dword [ebp - 0x64]
jb 0x46f943
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x720], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x71c]
cmp eax, dword [ebp - 0x720]
jge 0x46f91f
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46f929
mov eax, 0xffffffd5
jmp 0x4723a1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x20
je 0x46f93e
mov dword [ebp - 0x100], 1
jmp case.default.0x46f83e
mov ecx, dword [ebp - 0x1c]
movzx edx, byte [ecx + 1]
cmp edx, 0xa
jne 0x46f9b0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x724], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x728], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x724]
cmp eax, dword [ebp - 0x728]
jge 0x46f9a4
mov ecx, dword [ebp - 0x28]
add ecx, 1
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], 1
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46f9ae
mov eax, 0xffffffd5
jmp 0x4723a1
jmp case.default.0x46f83e
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x72c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x730], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x72c]
cmp eax, dword [ebp - 0x730]
jge 0x46f9f9
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp case.default.0x46f83e
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46fac7
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0x85
ja 0x46fa58
cmp dword [ebp - 0x104], 0x85
je case.0x46fa51.0
mov eax, dword [ebp - 0x104]
sub eax, 0xa
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 3
ja case.default.0x46fa51
mov ecx, dword [ebp - 0x104]
jmp dword [ecx*4 + 0x472b50]
cmp dword [ebp - 0x104], 0x2028
je case.0x46fa51.0
cmp dword [ebp - 0x104], 0x2029
je case.0x46fa51.0
jmp case.default.0x46fa51
jmp 0x46fac7
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x734], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x738], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x734]
cmp edx, dword [ebp - 0x738]
jge 0x46fabd
mov eax, dword [ebp - 0x28]
add eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x46fac7
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle case.default.0x46fb15
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x108], ecx
cmp dword [ebp - 0x108], 0x85
ja 0x46fb1c
cmp dword [ebp - 0x108], 0x85
je case.0x46fb15.0
mov edx, dword [ebp - 0x108]
sub edx, 0xa
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x108], 3
ja case.default.0x46fb15
mov eax, dword [ebp - 0x108]
jmp dword [eax*4 + 0x472b60]
cmp dword [ebp - 0x108], 0x2028
je case.0x46fb15.0
cmp dword [ebp - 0x108], 0x2029
je case.0x46fb15.0
jmp case.default.0x46fb15
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x740], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x73c]
cmp ecx, dword [ebp - 0x740]
jge 0x46fb7f
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp case.default.0x46fb15
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46fca1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0x2000
ja 0x46fc03
cmp dword [ebp - 0x90], 0x2000
je case.0x46fc43.0
cmp dword [ebp - 0x90], 0xa0
ja 0x46fbe9
cmp dword [ebp - 0x90], 0xa0
je case.0x46fc43.0
cmp dword [ebp - 0x90], 9
je case.0x46fc43.0
cmp dword [ebp - 0x90], 0x20
je case.0x46fc43.0
jmp case.0x46fc43.10
cmp dword [ebp - 0x90], 0x1680
je case.0x46fc43.0
cmp dword [ebp - 0x90], 0x180e
je case.0x46fc43.0
jmp case.0x46fc43.10
cmp dword [ebp - 0x90], 0x3000
ja 0x46fc4a
cmp dword [ebp - 0x90], 0x3000
je case.0x46fc43.0
mov ecx, dword [ebp - 0x90]
sub ecx, 0x2001
mov dword [ebp - 0x90], ecx
cmp dword [ebp - 0x90], 0x5e
ja case.0x46fc43.10
mov edx, dword [ebp - 0x90]
movzx eax, byte [edx + 0x472b78]
jmp dword [eax*4 + 0x472b70]
jmp case.0x46fc43.10
jmp 0x46fca1
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x744], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x748], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x744]
cmp ecx, dword [ebp - 0x748]
jge 0x46fc97
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46fca1
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle case.0x46fd61.10
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0x2000
ja 0x46fd21
cmp dword [ebp - 0x94], 0x2000
je case.0x46fd61.0
cmp dword [ebp - 0x94], 0xa0
ja 0x46fd04
cmp dword [ebp - 0x94], 0xa0
je case.0x46fd61.0
cmp dword [ebp - 0x94], 9
je case.0x46fd61.0
cmp dword [ebp - 0x94], 0x20
je case.0x46fd61.0
jmp case.0x46fd61.10
cmp dword [ebp - 0x94], 0x1680
je case.0x46fd61.0
cmp dword [ebp - 0x94], 0x180e
je case.0x46fd61.0
jmp case.0x46fd61.10
cmp dword [ebp - 0x94], 0x3000
ja 0x46fd68
cmp dword [ebp - 0x94], 0x3000
je case.0x46fd61.0
mov ecx, dword [ebp - 0x94]
sub ecx, 0x2001
mov dword [ebp - 0x94], ecx
cmp dword [ebp - 0x94], 0x5e
ja case.0x46fd61.10
mov edx, dword [ebp - 0x94]
movzx eax, byte [edx + 0x472be0]
jmp dword [eax*4 + 0x472bd8]
jmp case.0x46fd61.10
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x74c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x750], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x74c]
cmp ecx, dword [ebp - 0x750]
jge 0x46fdb3
mov edx, dword [ebp - 0x28]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp case.0x46fd61.10
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46fe27
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x46fe27
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x754], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x758], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x754]
cmp ecx, dword [ebp - 0x758]
jge 0x46fe1d
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + edx + 1]
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x46fe27
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
cmp dword [ebp - 0x30], 0
jle 0x46ff08
cmp dword [ebp - 0x114], 0
je 0x46fe8c
cmp dword [ebp - 0x20], 0x80
jb 0x46fe8c
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, word [eax*2 + 0x4be2f8]
shl edx, 7
mov eax, dword [ebp - 0x20]
and eax, 0x8000007f
jns 0x46fe6e
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx ecx, word [edx*2 + 0x4c26f8]
imul edx, ecx, 0xc
mov eax, dword [ebp - 0x20]
add eax, dword [edx + 0x4ba044]
mov dword [ebp - 0x3e8], eax
jmp 0x46fe9e
mov ecx, dword [ebp - 0x118]
add ecx, dword [ebp - 0x20]
movzx edx, byte [ecx]
mov dword [ebp - 0x3e8], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x46ff08
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x3e8]
je 0x46ff08
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x75c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x760], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x75c]
cmp edx, dword [ebp - 0x760]
jge 0x46fefe
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax + 1]
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x46ff08
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0xc4], 1
mov eax, dword [ebp - 0x2c]
sub eax, 0xd
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
jle 0x46ff86
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x764], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x768], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x764]
cmp eax, dword [ebp - 0x768]
jge 0x46ff7c
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 1]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x46ff86
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x4700db
mov dword [ebp - 0x1c0], 0xffffffff
cmp dword [ebp - 0xc4], 0
je 0x47000c
cmp dword [ebp - 0x114], 0
je 0x46fffa
cmp dword [ebp - 0x20], 0x80
jb 0x46fffa
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, word [eax*2 + 0x4be2f8]
shl ecx, 7
mov edx, dword [ebp - 0x20]
and edx, 0x8000007f
jns 0x46ffdc
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x4c26f8]
imul ecx, eax, 0xc
mov edx, dword [ebp - 0x20]
add edx, dword [ecx + 0x4ba044]
mov dword [ebp - 0x1c0], edx
jmp 0x47000c
mov eax, dword [ebp - 0x118]
add eax, dword [ebp - 0x20]
movzx ecx, byte [eax]
mov dword [ebp - 0x1c0], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
je 0x47002b
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c0]
je 0x47002b
mov dword [ebp - 0x3ec], 0
jmp 0x470035
mov dword [ebp - 0x3ec], 1
cmp dword [ebp - 0x2c], 0x3b
jae 0x470047
mov dword [ebp - 0x3f0], 1
jmp 0x470051
mov dword [ebp - 0x3f0], 0
mov ecx, dword [ebp - 0x3ec]
cmp ecx, dword [ebp - 0x3f0]
jne 0x4700db
cmp dword [ebp - 0x24], 0
jle 0x470083
cmp dword [ebp - 0x2c], 0x2b
je 0x470071
cmp dword [ebp - 0x2c], 0x45
jne 0x470083
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x76c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x770], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x76c]
cmp edx, dword [ebp - 0x770]
jge 0x4700d1
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x4700db
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0xc4], 1
mov edx, dword [ebp - 0x2c]
sub edx, 0xd
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x774], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x778], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x774]
cmp eax, dword [ebp - 0x778]
jge 0x470140
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 1]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x47014a
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x470298
mov dword [ebp - 0x1c4], 0xffffffff
cmp dword [ebp - 0xc4], 0
je 0x4701d0
cmp dword [ebp - 0x114], 0
je 0x4701be
cmp dword [ebp - 0x20], 0x80
jb 0x4701be
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, word [eax*2 + 0x4be2f8]
shl ecx, 7
mov edx, dword [ebp - 0x20]
and edx, 0x8000007f
jns 0x4701a0
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x4c26f8]
imul ecx, eax, 0xc
mov edx, dword [ebp - 0x20]
add edx, dword [ecx + 0x4ba044]
mov dword [ebp - 0x1c4], edx
jmp 0x4701d0
mov eax, dword [ebp - 0x118]
add eax, dword [ebp - 0x20]
movzx ecx, byte [eax]
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
je 0x4701ef
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c4]
je 0x4701ef
mov dword [ebp - 0x3f4], 0
jmp 0x4701f9
mov dword [ebp - 0x3f4], 1
cmp dword [ebp - 0x2c], 0x3b
jae 0x47020b
mov dword [ebp - 0x3f8], 1
jmp 0x470215
mov dword [ebp - 0x3f8], 0
mov ecx, dword [ebp - 0x3f4]
cmp ecx, dword [ebp - 0x3f8]
jne 0x470298
cmp dword [ebp - 0x2c], 0x2c
je 0x47022f
cmp dword [ebp - 0x2c], 0x46
jne 0x470241
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x77c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x780], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x77c]
cmp ecx, dword [ebp - 0x780]
jge 0x47028e
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + edx + 1]
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x470298
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0xc4], 1
mov edx, dword [ebp - 0x2c]
sub edx, 0xd
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x784], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x788], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x784]
cmp eax, dword [ebp - 0x788]
jge 0x4702fd
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 1]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x470307
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x30], 0
jle 0x47044e
mov dword [ebp - 0x1c8], 0xffffffff
cmp dword [ebp - 0xc4], 0
je 0x47038d
cmp dword [ebp - 0x114], 0
je 0x47037b
cmp dword [ebp - 0x20], 0x80
jb 0x47037b
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx ecx, word [eax*2 + 0x4be2f8]
shl ecx, 7
mov edx, dword [ebp - 0x20]
and edx, 0x8000007f
jns 0x47035d
dec edx
or edx, 0xffffff80
inc edx
add ecx, edx
movzx eax, word [ecx*2 + 0x4c26f8]
imul ecx, eax, 0xc
mov edx, dword [ebp - 0x20]
add edx, dword [ecx + 0x4ba044]
mov dword [ebp - 0x1c8], edx
jmp 0x47038d
mov eax, dword [ebp - 0x118]
add eax, dword [ebp - 0x20]
movzx ecx, byte [eax]
mov dword [ebp - 0x1c8], ecx
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x20]
je 0x4703ac
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x1c8]
je 0x4703ac
mov dword [ebp - 0x3fc], 0
jmp 0x4703b6
mov dword [ebp - 0x3fc], 1
cmp dword [ebp - 0x2c], 0x3b
jae 0x4703c8
mov dword [ebp - 0x400], 1
jmp 0x4703d2
mov dword [ebp - 0x400], 0
mov ecx, dword [ebp - 0x3fc]
cmp ecx, dword [ebp - 0x400]
jne 0x47044e
cmp dword [ebp - 0x2c], 0x2a
je 0x4703ec
cmp dword [ebp - 0x2c], 0x44
jne 0x4703fe
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x78c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x790], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x78c]
cmp ecx, dword [ebp - 0x790]
jge 0x470444
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x47044e
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0xc4], 1
mov eax, dword [ebp - 0x2c]
sub eax, 0xd
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x30], 0
jle 0x470624
mov dword [ebp - 0x1cc], 0xffffffff
cmp dword [ebp - 0xc4], 0
je 0x4704f5
cmp dword [ebp - 0x114], 0
je 0x4704e3
cmp dword [ebp - 0x20], 0x80
jb 0x4704e3
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, word [eax*2 + 0x4be2f8]
shl eax, 7
mov ecx, dword [ebp - 0x20]
and ecx, 0x8000007f
jns 0x4704c5
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4c26f8]
imul eax, edx, 0xc
mov ecx, dword [ebp - 0x20]
add ecx, dword [eax + 0x4ba044]
mov dword [ebp - 0x1cc], ecx
jmp 0x4704f5
mov edx, dword [ebp - 0x118]
add edx, dword [ebp - 0x20]
movzx eax, byte [edx]
mov dword [ebp - 0x1cc], eax
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x20]
je 0x470514
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 0x1cc]
je 0x470514
mov dword [ebp - 0x404], 0
jmp 0x47051e
mov dword [ebp - 0x404], 1
cmp dword [ebp - 0x2c], 0x3b
jae 0x470530
mov dword [ebp - 0x408], 1
jmp 0x47053a
mov dword [ebp - 0x408], 0
mov eax, dword [ebp - 0x404]
cmp eax, dword [ebp - 0x408]
jne 0x470624
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
cmp dword [ebp - 0x24], ecx
jl 0x4705d5
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x794], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x798], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x794]
cmp eax, dword [ebp - 0x798]
jge 0x4705c9
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 3]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x4705d3
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x470624
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x79c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x7a0], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x79c]
cmp ecx, dword [ebp - 0x7a0]
jge 0x47061a
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x470624
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0xc4], 1
mov ecx, dword [ebp - 0x2c]
sub ecx, 0xd
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x7a4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x7a8], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x7a4]
cmp edx, dword [ebp - 0x7a8]
jge 0x470689
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax + 3]
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x470693
mov eax, 0xffffffd5
jmp 0x4723a1
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x30], 0
jle 0x47086e
mov dword [ebp - 0x1d0], 0xffffffff
cmp dword [ebp - 0xc4], 0
je 0x470721
cmp dword [ebp - 0x114], 0
je 0x47070f
cmp dword [ebp - 0x20], 0x80
jb 0x47070f
mov eax, dword [ebp - 0x20]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, word [eax*2 + 0x4be2f8]
shl edx, 7
mov eax, dword [ebp - 0x20]
and eax, 0x8000007f
jns 0x4706f1
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx ecx, word [edx*2 + 0x4c26f8]
imul edx, ecx, 0xc
mov eax, dword [ebp - 0x20]
add eax, dword [edx + 0x4ba044]
mov dword [ebp - 0x1d0], eax
jmp 0x470721
mov ecx, dword [ebp - 0x118]
add ecx, dword [ebp - 0x20]
movzx edx, byte [ecx]
mov dword [ebp - 0x1d0], edx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x470740
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1d0]
je 0x470740
mov dword [ebp - 0x40c], 0
jmp 0x47074a
mov dword [ebp - 0x40c], 1
cmp dword [ebp - 0x2c], 0x3b
jae 0x47075c
mov dword [ebp - 0x410], 1
jmp 0x470766
mov dword [ebp - 0x410], 0
mov edx, dword [ebp - 0x40c]
cmp edx, dword [ebp - 0x410]
jne 0x47086e
cmp dword [ebp - 0x2c], 0x2d
je 0x470784
cmp dword [ebp - 0x2c], 0x47
jne 0x470796
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x24]
add edx, 1
mov dword [ebp - 0x24], edx
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
cmp dword [ebp - 0x24], edx
jl 0x47081f
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x7ac], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x7b0], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x7ac]
cmp ecx, dword [ebp - 0x7b0]
jge 0x470813
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + edx + 3]
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x47081d
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x47086e
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x7b4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x7b8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x7b4]
cmp edx, dword [ebp - 0x7b8]
jge 0x470864
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x47086e
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov dword [ebp - 0x11c], 0
cmp dword [ebp - 0x2c], 0x70
je 0x47091f
mov edx, dword [ebp - 0x14]
add edx, 0x21
mov dword [ebp - 0x98], edx
cmp dword [ebp - 0x30], 0
jle 0x47091d
cmp dword [ebp - 0x18], 0xff
jbe 0x4708d0
cmp dword [ebp - 0x2c], 0x6f
jne 0x4708b8
mov dword [ebp - 0x414], 1
jmp 0x4708c2
mov dword [ebp - 0x414], 0
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x41c], eax
jmp 0x470911
mov ecx, dword [ebp - 0x18]
shr ecx, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx + 1]
mov ecx, dword [ebp - 0x18]
and ecx, 7
mov edx, 1
shl edx, cl
and eax, edx
je 0x4708fb
mov dword [ebp - 0x418], 1
jmp 0x470905
mov dword [ebp - 0x418], 0
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x41c], eax
mov ecx, dword [ebp - 0x41c]
mov dword [ebp - 0x11c], ecx
jmp 0x47096d
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x30], 0
jle 0x47096d
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x14]
add ecx, 3
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.0047ad90
add esp, 0xc
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x98]
sub eax, dword [ebp - 0x7c]
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx]
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x188]
sub eax, 0x62
mov dword [ebp - 0x188], eax
cmp dword [ebp - 0x188], 0xb
ja case.default.0x4709ad
mov ecx, dword [ebp - 0x188]
jmp dword [ecx*4 + 0x472c40]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x7bc], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x7c0], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x7bc]
cmp edx, dword [ebp - 0x7c0]
jge 0x470a00
mov eax, dword [ebp - 0x120]
add eax, 1
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x470a0a
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x11c], 0
je 0x470a83
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx]
cmp edx, 0x6a
jne 0x470a33
mov eax, dword [ebp - 0xc]
sub eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 8]
sub ecx, 0xc
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x7c4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x7c8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x7c4]
cmp edx, dword [ebp - 0x7c8]
jge 0x470a79
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x470a83
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x470e8a
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
jle 0x470aed
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x7cc], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x7d0], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x7cc]
cmp eax, dword [ebp - 0x7d0]
jge 0x470ae3
mov ecx, dword [ebp - 0x120]
add ecx, 1
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x470aed
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x11c], 0
je 0x470b74
cmp dword [ebp - 0x24], 0
jle 0x470b1c
mov edx, dword [ebp - 0x98]
movzx eax, byte [edx]
cmp eax, 0x6b
jne 0x470b1c
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
sub edx, 0xc
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x7d4], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x7d8], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x7d4]
cmp ecx, dword [ebp - 0x7d8]
jge 0x470b6a
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x470b74
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x470e8a
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x7dc], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x7e0], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x7dc]
cmp ecx, dword [ebp - 0x7e0]
jge 0x470bc5
mov edx, dword [ebp - 0x120]
add edx, 1
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x470bcf
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x11c], 0
je 0x470c4e
mov eax, dword [ebp - 0x98]
movzx ecx, byte [eax]
cmp ecx, 0x6c
jne 0x470bf8
mov edx, dword [ebp - 0xc]
sub edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
sub eax, 0xc
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x7e4], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x7e8], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x7e4]
cmp ecx, dword [ebp - 0x7e8]
jge 0x470c44
mov edx, dword [ebp - 0x120]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x470c4e
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x470e8a
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x98]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x98]
movzx edx, byte [eax + edx]
or ecx, edx
cmp dword [ebp - 0x24], ecx
jl 0x470cdf
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x7ec], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x7f0], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x7ec]
cmp eax, dword [ebp - 0x7f0]
jge 0x470cd5
mov ecx, dword [ebp - 0x120]
add ecx, 5
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x470cdf
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x11c], 0
je 0x470e2c
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 2
mov ecx, dword [ebp - 0x98]
movzx eax, byte [ecx + eax]
or edx, eax
mov dword [ebp - 0x420], edx
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx]
cmp edx, 0x6d
jne 0x470d68
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x98]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x98]
movzx eax, byte [ecx + eax]
or edx, eax
cmp dword [ebp - 0x24], edx
jl 0x470d68
mov ecx, dword [ebp - 0xc]
sub ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 8]
sub edx, 0xc
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
cmp ecx, dword [ebp - 0x420]
jl 0x470ddd
cmp dword [ebp - 0x420], 0
je 0x470ddd
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x7f4], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x7f8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x7f4]
cmp edx, dword [ebp - 0x7f8]
jge 0x470dd1
mov eax, dword [ebp - 0x120]
add eax, 5
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x470ddb
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x470e2c
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x7fc], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x800], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x7fc]
cmp ecx, dword [ebp - 0x800]
jge 0x470e22
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x28]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x470e2c
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x470e8a
cmp dword [ebp - 0x11c], 0
je 0x470e8a
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x804], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x808], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x804]
cmp ecx, dword [ebp - 0x808]
jge 0x470e80
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x120]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x470e8a
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, dword [ebp - 0x1e0]
add eax, 1
mov dword [ebp - 0x1e0], eax
jmp 0x4722f1
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
or eax, ecx
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x130], eax
mov edx, dword [ebp + 0x2c]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 8], 0x3ea
jae 0x470f1e
mov ecx, dword [ebp + 8]
push ecx
push 2
lea edx, [ebp - 0xcc]
push edx
call fcn.004690d0
add esp, 0xc
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x470f15
mov eax, dword [ebp - 0x124]
jmp 0x4723a1
mov eax, dword [ebp - 0xcc]
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 0x2c]
lea ecx, [eax + edx*4]
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 8]
shl eax, 2
sub ecx, eax
mov dword [ebp - 0x424], ecx
mov ecx, dword [ebp - 0x424]
add ecx, 8
mov dword [ebp - 0x80c], ecx
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 8]
sub eax, 0x3ea
mov ecx, dword [ebp - 0xcc]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x130]
movzx eax, byte [edx]
cmp eax, 0x78
jne 0x470fab
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x130]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x130]
movzx ecx, byte [edx + ecx]
or eax, ecx
add eax, dword [ebp - 0x130]
mov dword [ebp - 0x130], eax
jmp 0x470f67
mov edx, dword [ebp + 0x2c]
push edx
mov eax, dword [ebp + 0x28]
push eax
push 0x3e8
mov ecx, dword [ebp - 0x80c]
push ecx
push 2
mov edx, dword [ebp - 0x424]
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004691d0
add esp, 0x28
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 8]
add edx, 0x3ea
mov eax, dword [ebp - 0xcc]
mov dword [eax + 8], edx
cmp dword [ebp - 0x124], 0
jge 0x47101e
cmp dword [ebp - 0x124], 0xffffffff
je 0x47101e
mov eax, dword [ebp - 0x124]
jmp 0x4723a1
cmp dword [ebp - 0x124], 0
jl 0x471033
mov dword [ebp - 0x428], 1
jmp 0x47103d
mov dword [ebp - 0x428], 0
cmp dword [ebp - 0x2c], 0x7f
je 0x471058
cmp dword [ebp - 0x2c], 0x81
je 0x471058
mov dword [ebp - 0x42c], 0
jmp 0x471062
mov dword [ebp - 0x42c], 1
mov ecx, dword [ebp - 0x428]
cmp ecx, dword [ebp - 0x42c]
jne 0x4710c9
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x810], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x814], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x810]
cmp edx, dword [ebp - 0x814]
jge 0x4710bf
mov eax, dword [ebp - 0x130]
add eax, 3
sub eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x4710c9
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 0x14]
movzx ecx, byte [edx + ecx]
or eax, ecx
mov dword [ebp - 0x1d4], eax
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
cmp edx, 0x76
je 0x47111e
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
cmp eax, 0x77
jne 0x471177
lea ecx, [ebp - 0x818]
push ecx
push 3
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.00468f60
add esp, 0x1c
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
jge 0x47115d
mov eax, dword [ebp - 0x12c]
jmp 0x4723a1
cmp dword [ebp - 0x12c], 0
jle 0x47116b
jmp 0x4722f1
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x818]
mov dword [ebp - 0x14], ecx
mov edx, 1
imul eax, edx, 3
mov ecx, dword [ebp - 0x14]
mov dl, byte [ecx + eax]
mov byte [ebp - 0x31], dl
movzx eax, byte [ebp - 0x31]
cmp eax, 0x91
je 0x4711ab
movzx ecx, byte [ebp - 0x31]
cmp ecx, 0x92
je 0x4711ab
movzx edx, byte [ebp - 0x31]
cmp edx, 0x94
jne 0x4711b5
mov eax, 0xffffffd8
jmp 0x4723a1
movzx eax, byte [ebp - 0x31]
cmp eax, 0x95
je 0x4711cc
movzx ecx, byte [ebp - 0x31]
cmp ecx, 0xa3
jne 0x47122b
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x81c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x820], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x81c]
cmp edx, dword [ebp - 0x820]
jge 0x47121c
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax + 3]
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x471226
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471638
movzx eax, byte [ebp - 0x31]
cmp eax, 0x96
jne 0x47128e
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x824], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x828], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x824]
cmp ecx, dword [ebp - 0x828]
jge 0x47127f
mov edx, dword [ebp - 0x28]
add edx, 4
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x471289
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471638
movzx eax, byte [ebp - 0x31]
cmp eax, 0x93
jne 0x471399
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
imul edx, ecx, 5
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + edx]
or eax, edx
mov dword [ebp - 0x82c], eax
cmp dword [ebp - 0x82c], 0xffff
je 0x4712dc
mov eax, 0xffffffd8
jmp 0x4723a1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x64], 0
je 0x47133a
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x830], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x834], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x830]
cmp ecx, dword [ebp - 0x834]
jge 0x47132e
mov edx, dword [ebp - 0x28]
add edx, 6
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x471338
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471394
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x838], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x83c], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x838]
cmp eax, dword [ebp - 0x83c]
jge 0x47138a
mov ecx, dword [ebp - 0x1d4]
mov edx, dword [ebp - 0x28]
lea eax, [edx + ecx + 3]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x471394
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471638
mov ecx, dword [ebp - 0x14]
add ecx, 3
mov dword [ebp - 0x18c], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x18c]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x18c]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x134], ecx
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0xd0], eax
mov ecx, dword [ebp - 0xd0]
cmp dword [ecx + 8], 0x3ea
jae 0x471429
mov edx, dword [ebp + 8]
push edx
push 2
lea eax, [ebp - 0xd0]
push eax
call fcn.004690d0
add esp, 0xc
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x471420
mov eax, dword [ebp - 0x128]
jmp 0x4723a1
mov ecx, dword [ebp - 0xd0]
mov dword [ebp + 0x2c], ecx
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 0x2c]
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
shl ecx, 2
sub edx, ecx
mov dword [ebp - 0x430], edx
mov edx, dword [ebp - 0x430]
add edx, 8
mov dword [ebp - 0x840], edx
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 8]
sub ecx, 0x3ea
mov edx, dword [ebp - 0xd0]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax]
cmp ecx, 0x78
jne 0x4714b7
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x134]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x134]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x134]
mov dword [ebp - 0x134], ecx
jmp 0x471473
mov eax, dword [ebp + 0x2c]
push eax
mov ecx, dword [ebp + 0x28]
push ecx
push 0x3e8
mov edx, dword [ebp - 0x840]
push edx
push 2
mov eax, dword [ebp - 0x430]
push eax
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x18c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004691d0
add esp, 0x28
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 8]
add eax, 0x3ea
mov ecx, dword [ebp - 0xd0]
mov dword [ecx + 8], eax
cmp dword [ebp - 0x128], 0
jge 0x47152c
cmp dword [ebp - 0x128], 0xffffffff
je 0x47152c
mov eax, dword [ebp - 0x128]
jmp 0x4723a1
cmp dword [ebp - 0x128], 0
jl 0x471541
mov dword [ebp - 0x434], 1
jmp 0x47154b
mov dword [ebp - 0x434], 0
movzx edx, byte [ebp - 0x31]
cmp edx, 0x7f
je 0x47156b
movzx eax, byte [ebp - 0x31]
cmp eax, 0x81
je 0x47156b
mov dword [ebp - 0x438], 0
jmp 0x471575
mov dword [ebp - 0x438], 1
mov ecx, dword [ebp - 0x434]
cmp ecx, dword [ebp - 0x438]
jne 0x4715de
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x844], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x848], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x844]
cmp edx, dword [ebp - 0x848]
jge 0x4715d2
mov eax, dword [ebp - 0x134]
add eax, 3
sub eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x4715dc
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471638
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x84c], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x850], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x84c]
cmp ecx, dword [ebp - 0x850]
jge 0x47162e
mov edx, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x28]
lea ecx, [eax + edx + 3]
mov edx, dword [ebp - 8]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x471638
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov edx, dword [ebp + 0x2c]
mov dword [ebp - 0xd4], edx
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x14]
movzx edx, byte [ecx + eax]
shl edx, 8
mov eax, 1
shl eax, 1
mov ecx, dword [ebp - 0x14]
movzx eax, byte [ecx + eax]
or edx, eax
add edx, dword [ebp - 0x7c]
mov dword [ebp - 0x190], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x190]
cmp edx, dword [ecx + 0xc]
jne 0x47168b
mov dword [ebp - 0x43c], 0
jmp 0x4716ba
mov eax, 1
imul ecx, eax, 3
mov edx, dword [ebp - 0x190]
movzx eax, byte [edx + ecx]
shl eax, 8
mov ecx, 1
shl ecx, 2
mov edx, dword [ebp - 0x190]
movzx ecx, byte [edx + ecx]
or eax, ecx
mov dword [ebp - 0x43c], eax
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x440], edx
mov eax, dword [ebp - 0xd4]
cmp dword [eax + 8], 0x7d0
jae 0x471707
mov ecx, dword [ebp + 8]
push ecx
push 0x3e8
lea edx, [ebp - 0xd4]
push edx
call fcn.004690d0
add esp, 0xc
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
je 0x4716fe
mov eax, dword [ebp - 0x78]
jmp 0x4723a1
mov eax, dword [ebp - 0xd4]
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 0x2c]
lea ecx, [eax + edx*4]
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 8]
shl eax, 2
sub ecx, eax
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x13c]
add ecx, 0xfa0
mov dword [ebp - 0x854], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 8]
sub eax, 0x7d0
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x138], eax
jmp 0x47176f
mov ecx, dword [ebp - 0x138]
mov edx, dword [ecx]
mov dword [ebp - 0x138], edx
cmp dword [ebp - 0x138], 0
je 0x4717b4
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x440]
cmp ecx, dword [eax + 0xc]
jne 0x4717b2
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edx + 4]
jne 0x4717b2
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x138]
mov eax, dword [ecx + 0x1c]
cmp eax, dword [edx + 8]
jne 0x4717b2
mov eax, 0xffffffcc
jmp 0x4723a1
jmp 0x471761
mov ecx, dword [ebp - 0x440]
mov dword [ebp - 0x8c8], ecx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x8d0], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov dword [ebp - 0x8cc], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x8d4], eax
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x8d4]
mov dword [ecx + 0x64], edx
mov eax, dword [ebp + 0x2c]
push eax
mov ecx, dword [ebp + 0x28]
push ecx
push 0x3e8
mov edx, dword [ebp - 0x854]
push edx
push 0x3e8
mov eax, dword [ebp - 0x13c]
push eax
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x190]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004691d0
add esp, 0x28
mov dword [ebp - 0x78], eax
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx + 8]
add eax, 0x7d0
mov ecx, dword [ebp - 0xd4]
mov dword [ecx + 8], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x8d4]
mov dword [edx + 0x64], eax
cmp dword [ebp - 0x78], 0
jne 0x471861
mov eax, 0xffffffd9
jmp 0x4723a1
cmp dword [ebp - 0x78], 0
jle 0x4719f2
mov ecx, dword [ebp - 0x78]
lea edx, [ecx + ecx - 2]
mov dword [ebp - 0x78], edx
jmp 0x471880
mov eax, dword [ebp - 0x78]
sub eax, 2
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0
jl 0x4719f0
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x13c]
mov ecx, dword [edx + ecx*4 + 4]
sub ecx, dword [esi + eax*4]
mov dword [ebp - 0x198], ecx
cmp dword [ebp - 0x3c], 0
je 0x471929
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x194], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x4c]
add ecx, dword [eax + edx*4 + 4]
mov dword [ebp - 0x858], ecx
mov edx, dword [ebp - 0x194]
cmp edx, dword [ebp - 0x858]
jae 0x471929
mov eax, dword [ebp - 0x194]
movzx ecx, byte [eax]
and ecx, 0xc0
mov dword [ebp - 0x85c], ecx
mov edx, dword [ebp - 0x194]
add edx, 1
mov dword [ebp - 0x194], edx
cmp dword [ebp - 0x85c], 0x80
jne 0x471927
mov eax, dword [ebp - 0x198]
sub eax, 1
mov dword [ebp - 0x198], eax
jmp 0x4718da
cmp dword [ebp - 0x198], 0
jbe 0x471998
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x860], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x864], edx
mov eax, dword [ebp - 0x10]
add eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x860]
cmp ecx, dword [ebp - 0x864]
jge 0x47198c
mov edx, dword [ebp - 0x28]
add edx, 3
neg edx
mov eax, dword [ebp - 4]
mov dword [eax], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 0x198]
sub edx, 1
mov eax, dword [ebp - 4]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x471996
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4719eb
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x868], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x86c], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x868]
cmp edx, dword [ebp - 0x86c]
jge 0x4719e1
mov eax, dword [ebp - 0x28]
add eax, 3
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x4719eb
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471877
jmp 0x471a00
cmp dword [ebp - 0x78], 0xffffffff
je 0x471a00
mov eax, dword [ebp - 0x78]
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x168], ecx
mov edx, dword [ebp + 0x2c]
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0xd8]
cmp dword [eax + 8], 0x3ea
jae 0x471a5e
mov ecx, dword [ebp + 8]
push ecx
push 2
lea edx, [ebp - 0xd8]
push edx
call fcn.004690d0
add esp, 0xc
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
je 0x471a55
mov eax, dword [ebp - 0x140]
jmp 0x4723a1
mov eax, dword [ebp - 0xd8]
mov dword [ebp + 0x2c], eax
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 0x2c]
lea ecx, [eax + edx*4]
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
shl eax, 2
sub ecx, eax
mov dword [ebp - 0x19c], ecx
mov ecx, dword [ebp - 0x19c]
add ecx, 8
mov dword [ebp - 0x870], ecx
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx + 8]
sub eax, 0x3ea
mov ecx, dword [ebp - 0xd8]
mov dword [ecx + 8], eax
cmp dword [ebp - 0x2c], 0x99
jne 0x471ace
mov dword [ebp - 0x444], 1
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
mov dword [ebp - 0x2c], ecx
jmp 0x471ad8
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x1d8], 0
jmp 0x471af3
mov edx, dword [ebp - 0x1d8]
add edx, 1
mov dword [ebp - 0x1d8], edx
mov eax, dword [ebp + 0x2c]
push eax
mov ecx, dword [ebp + 0x28]
push ecx
push 0x3e8
mov edx, dword [ebp - 0x870]
push edx
push 2
mov eax, dword [ebp - 0x19c]
push eax
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x168]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004691d0
add esp, 0x28
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
jge 0x471b53
cmp dword [ebp - 0x140], 0xffffffff
je 0x471b51
mov eax, dword [ebp - 0x140]
jmp 0x4723a1
jmp 0x471b96
mov edx, 4
shl edx, 0
mov eax, 4
imul ecx, eax, 0
mov eax, dword [ebp - 0x19c]
mov esi, dword [ebp - 0x19c]
mov edx, dword [eax + edx]
sub edx, dword [esi + ecx]
mov dword [ebp - 0x148], edx
jne 0x471b7f
jmp 0x471b96
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x168], eax
jmp 0x471ae4
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 8]
add edx, 0x3ea
mov eax, dword [ebp - 0xd8]
mov dword [eax + 8], edx
cmp dword [ebp - 0x1d8], 0
ja 0x471bc4
cmp dword [ebp - 0x444], 0
je 0x471d7c
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x144], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x144]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x144]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0x144]
mov dword [ebp - 0x144], ecx
mov eax, dword [ebp - 0x144]
movzx ecx, byte [eax]
cmp ecx, 0x78
je 0x471bcd
mov edx, dword [ebp - 0x144]
sub edx, dword [ebp - 0x7c]
add edx, 3
mov dword [ebp - 0x44c], edx
mov eax, dword [ebp - 0x10c]
add eax, 1
cmp eax, dword [ebp - 0xc]
jl 0x471c9d
cmp dword [ebp - 0x10], 0
jne 0x471c9d
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], 0
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x874], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x878], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x874]
cmp edx, dword [ebp - 0x878]
jge 0x471c8e
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x44c]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x471c98
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x471d7c
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x168]
mov dword [ebp - 0x448], edx
mov eax, dword [ebp - 0x448]
sub eax, dword [ebp - 0x16c]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x3c], 0
je 0x471d18
mov ecx, dword [ebp - 0x16c]
cmp ecx, dword [ebp - 0x448]
jae 0x471d18
mov edx, dword [ebp - 0x16c]
movzx eax, byte [edx]
and eax, 0xc0
mov dword [ebp - 0x87c], eax
mov ecx, dword [ebp - 0x16c]
add ecx, 1
mov dword [ebp - 0x16c], ecx
cmp dword [ebp - 0x87c], 0x80
jne 0x471d16
mov edx, dword [ebp - 0x148]
sub edx, 1
mov dword [ebp - 0x148], edx
jmp 0x471cca
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x880], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x884], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x880]
cmp eax, dword [ebp - 0x884]
jge 0x471d72
mov ecx, dword [ebp - 0x44c]
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x148]
sub ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x471d7c
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov ecx, dword [ebp + 0x2c]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0xdc]
cmp dword [edx + 8], 0x3ea
jae 0x471dd1
mov eax, dword [ebp + 8]
push eax
push 2
lea ecx, [ebp - 0xdc]
push ecx
call fcn.004690d0
add esp, 0xc
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0
je 0x471dc8
mov eax, dword [ebp - 0x154]
jmp 0x4723a1
mov edx, dword [ebp - 0xdc]
mov dword [ebp + 0x2c], edx
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 0x2c]
lea eax, [edx + ecx*4]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 8]
shl edx, 2
sub eax, edx
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x14c]
add eax, 8
mov dword [ebp - 0x888], eax
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ecx + 8]
sub edx, 0x3ea
mov eax, dword [ebp - 0xdc]
mov dword [eax + 8], edx
mov ecx, dword [ebp + 0x2c]
push ecx
mov edx, dword [ebp + 0x28]
push edx
push 0x3e8
mov eax, dword [ebp - 0x888]
push eax
push 2
mov ecx, dword [ebp - 0x14c]
push ecx
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004691d0
add esp, 0x28
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0xdc]
mov ecx, dword [eax + 8]
add ecx, 0x3ea
mov edx, dword [ebp - 0xdc]
mov dword [edx + 8], ecx
cmp dword [ebp - 0x154], 0
jl 0x47222e
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xb0], eax
mov ecx, 4
shl ecx, 0
mov edx, 4
imul eax, edx, 0
mov edx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x14c]
mov ecx, dword [edx + ecx]
sub ecx, dword [esi + eax]
mov dword [ebp - 0x150], ecx
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax + edx]
shl ecx, 8
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0xb0]
movzx edx, byte [eax + edx]
or ecx, edx
add ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
cmp ecx, 0x78
je 0x471eaf
mov edx, dword [ebp - 0xb0]
sub edx, dword [ebp - 0x7c]
add edx, 3
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp - 0xb0]
movzx ecx, byte [eax]
cmp ecx, 0x7a
je 0x471f2b
mov edx, dword [ebp - 0xb0]
movzx eax, byte [edx]
cmp eax, 0x7b
je 0x471f2b
mov dword [ebp - 0x450], 0xffffffff
jmp 0x471f64
mov ecx, dword [ebp - 0xb0]
sub ecx, dword [ebp - 0x7c]
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0xb0]
movzx edx, byte [eax + edx]
shl edx, 8
mov eax, 1
shl eax, 1
mov esi, dword [ebp - 0xb0]
movzx eax, byte [esi + eax]
or edx, eax
sub ecx, edx
mov dword [ebp - 0x450], ecx
mov ecx, dword [ebp - 0x450]
mov dword [ebp - 0x1a4], ecx
cmp dword [ebp - 0x150], 0
jne 0x471fd1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x890], eax
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x88c]
cmp edx, dword [ebp - 0x890]
jge 0x471fc2
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x1dc]
mov dword [eax], ecx
mov edx, dword [ebp - 8]
mov dword [edx + 4], 0
mov eax, dword [ebp - 8]
add eax, 0xc
mov dword [ebp - 8], eax
jmp 0x471fcc
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x47222c
mov ecx, dword [ebp - 0x10c]
add ecx, 1
cmp ecx, dword [ebp - 0xc]
jl 0x4720ce
cmp dword [ebp - 0x10], 0
jne 0x4720ce
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x150]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x894], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x898], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x894]
cmp eax, dword [ebp - 0x898]
jge 0x472049
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1dc]
mov dword [ecx], edx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 4]
add ecx, 0xc
mov dword [ebp - 4], ecx
jmp 0x472053
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x1a4], 0
jl 0x4720c9
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10c], 0xffffffff
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x89c], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x8a0], ecx
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x89c]
cmp eax, dword [ebp - 0x8a0]
jge 0x4720bf
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x1a4]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 8]
add ecx, 0xc
mov dword [ebp - 8], ecx
jmp 0x4720c9
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x47222c
cmp dword [ebp - 0x3c], 0
je 0x47215b
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x4c]
add edx, dword [ecx + eax]
mov dword [ebp - 0x1a0], edx
mov eax, 4
shl eax, 0
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ebp - 0x4c]
add edx, dword [ecx + eax]
mov dword [ebp - 0x8a4], edx
mov eax, dword [ebp - 0x1a0]
cmp eax, dword [ebp - 0x8a4]
jae 0x47215b
mov ecx, dword [ebp - 0x1a0]
movzx edx, byte [ecx]
and edx, 0xc0
mov dword [ebp - 0x8a8], edx
mov eax, dword [ebp - 0x1a0]
add eax, 1
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x8a8], 0x80
jne 0x472159
mov ecx, dword [ebp - 0x150]
sub ecx, 1
mov dword [ebp - 0x150], ecx
jmp 0x47210c
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x8ac], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x8b0], eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x8ac]
cmp edx, dword [ebp - 0x8b0]
jge 0x4721b5
mov eax, dword [ebp - 0x1dc]
neg eax
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 0x150]
sub eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 4]
add edx, 0xc
mov dword [ebp - 4], edx
jmp 0x4721bf
mov eax, 0xffffffd5
jmp 0x4723a1
cmp dword [ebp - 0x1a4], 0
jl 0x47222c
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x8b4], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x8b8], ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x8b4]
cmp eax, dword [ebp - 0x8b8]
jge 0x472222
mov ecx, dword [ebp - 0x1a4]
neg ecx
mov edx, dword [ebp - 4]
mov dword [edx], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x150]
sub ecx, 1
mov edx, dword [ebp - 4]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 4]
add eax, 0xc
mov dword [ebp - 4], eax
jmp 0x47222c
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x472242
cmp dword [ebp - 0x154], 0xffffffff
je 0x472242
mov eax, dword [ebp - 0x154]
jmp 0x4723a1
jmp 0x4722f1
lea ecx, [ebp - 0x8c4]
push ecx
push 0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.00468f60
add esp, 0x1c
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
jge 0x472286
mov eax, dword [ebp - 0x12c]
jmp 0x4723a1
cmp dword [ebp - 0x12c], 0
jne 0x4722e5
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x8bc], ecx
mov edx, dword [ebp + 0x24]
mov dword [ebp - 0x8c0], edx
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x8bc]
cmp ecx, dword [ebp - 0x8c0]
jge 0x4722db
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x8c4]
mov eax, dword [ebp - 8]
mov dword [eax], edx
mov ecx, dword [ebp - 8]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 8]
add edx, 0xc
mov dword [ebp - 8], edx
jmp 0x4722e5
mov eax, 0xffffffd5
jmp 0x4723a1
jmp 0x4722f1
mov eax, 0xffffffd6
jmp 0x4723a1
jmp 0x469aa7
cmp dword [ebp - 0x10], 0
jg 0x472367
cmp dword [ebp - 0x9c], 0
je 0x472365
mov eax, 4
shl eax, 0
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x1e0]
cmp edx, dword [ecx + eax]
je 0x472365
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
and ecx, 0x20
jne 0x47233c
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
and eax, 0x10
je 0x472365
cmp dword [ebp - 0x80], 0
jge 0x472365
cmp dword [ebp - 0x60], 0
jne 0x47235e
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x64]
jb 0x472365
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [edx + 0x18]
ja 0x47235e
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4c], 0
je 0x472365
mov dword [ebp - 0x80], 0xfffffffe
jmp 0x472375
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edx
jmp 0x4697c3
cmp dword [ebp - 0x80], 0
jl 0x47239e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x3c]
or edx, dword [ecx + 0x40]
and edx, 0x20000000
je 0x47239e
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x64]
jae 0x47239e
mov dword [ebp - 0x80], 0xffffffff
mov eax, dword [ebp - 0x80]
pop esi
mov esp, ebp
pop ebp
ret