Function at 0x4674a0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x79b0
call fcn.0047beb0
mov eax, dword [0x4e8544]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov dword [ebp - 0x7970], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x787c], eax
mov dword [ebp - 0x78c0], 0
mov dword [ebp - 0x7944], 0
mov dword [ebp - 0x78b8], 0
mov dword [ebp - 0x78bc], 0
mov byte [ebp - 0x7875], 0
mov byte [ebp - 0x7885], 0
mov byte [ebp - 0x787d], 0
mov byte [ebp - 0x7886], 0
mov dword [ebp - 0x78ac], 0
lea ecx, [ebp - 0x786c]
mov dword [ebp - 0x7870], ecx
lea edx, [ebp - 0x7804]
mov dword [ebp - 0x78b0], edx
mov eax, dword [ebp - 0x78b0]
mov dword [eax], 0
mov ecx, dword [ebp - 0x78b0]
mov dword [ecx + 4], 0x1e00
mov edx, dword [ebp - 0x78b0]
mov dword [edx + 8], 0x1dfd
cmp dword [ebp + 0xc], 0
jne 0x46756a
cmp dword [ebp + 0x10], 0
jne 0x46756a
mov dword [ebp + 0xc], 0x4ebdc6
mov eax, dword [ebp + 0x18]
and eax, 0x1fffbf00
je 0x46757e
mov eax, 0xffffffde
jmp 0x468f37
cmp dword [ebp - 0x787c], 0
je 0x467599
cmp dword [ebp + 0xc], 0
je 0x467599
cmp dword [ebp + 0x24], 0
je 0x467599
cmp dword [ebp + 0x1c], 0
jne 0x4675a3
mov eax, 0xffffffcd
jmp 0x468f37
cmp dword [ebp + 0x10], 0xffffffff
jne 0x4675c2
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00476710
add esp, 4
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x7970], 1
cmp dword [ebp + 0x28], 0x14
jae 0x4675d2
mov eax, 0xffffffd5
jmp 0x468f37
mov edx, dword [ebp + 0x14]
cmp edx, dword [ebp + 0x10]
jbe 0x4675e4
mov eax, 0xffffffdf
jmp 0x468f37
mov eax, dword [ebp + 0x18]
and eax, 0x30
je 0x46760a
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x40]
or edx, dword [ebp + 0x18]
and edx, 0x20000000
je 0x46760a
mov eax, 0xffffffde
jmp 0x468f37
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x40]
and ecx, 0x4000000
je 0x467625
mov eax, 0xffffffbe
jmp 0x468f37
mov edx, dword [ebp - 0x787c]
cmp dword [edx + 0x38], 0x50435245
je 0x46763e
mov eax, 0xffffffe1
jmp 0x468f37
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x48]
and ecx, 7
cmp ecx, 1
je 0x467659
mov eax, 0xffffffe0
jmp 0x468f37
mov edx, dword [ebp - 0x787c]
mov eax, dword [edx + 0x48]
and eax, 0x30000
shr eax, 0xe
or eax, dword [ebp + 0x18]
mov dword [ebp + 0x18], eax
mov ecx, dword [ebp + 0x18]
and ecx, 0x40
je 0x4676c5
mov edx, 4
imul eax, edx, 0
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + eax]
and edx, 0xfffffffe
jne 0x4676bb
mov eax, 4
shl eax, 0
mov ecx, dword [ebp + 0x24]
cmp dword [ecx + eax], 1
jl 0x4676bb
mov ecx, 4
shl ecx, 0
mov eax, dword [ebp + 0x28]
sub eax, 2
xor edx, edx
mov esi, 3
div esi
mov edx, dword [ebp + 0x24]
cmp dword [edx + ecx], eax
jle 0x4676c5
mov eax, 0xffffffda
jmp 0x468f37
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x40]
and ecx, 0x80000
je 0x4676e2
mov dword [ebp - 0x7934], 1
jmp 0x4676ec
mov dword [ebp - 0x7934], 0
mov edx, dword [ebp - 0x7934]
mov dword [ebp - 0x7898], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x7874], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp + 0x10]
mov dword [ebp - 0x7884], ecx
mov edx, dword [ebp - 0x7874]
sub edx, 1
mov dword [ebp - 0x794c], edx
mov eax, dword [ebp + 0x18]
and eax, 0x80000040
jne 0x467746
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x40]
and edx, 0x80000000
jne 0x467746
mov dword [ebp - 0x796c], 0
jmp 0x467750
mov dword [ebp - 0x796c], 1
mov eax, dword [ebp - 0x796c]
mov dword [ebp - 0x78cc], eax
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x48]
and edx, 0x200
je 0x467779
mov dword [ebp - 0x78d4], 1
jmp 0x467783
mov dword [ebp - 0x78d4], 0
mov eax, dword [ebp - 0x78d4]
mov dword [ebp - 0x7920], eax
cmp dword [ebp - 0x78cc], 0
jne 0x4677b5
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x40]
and edx, 0x100
je 0x4677b5
mov dword [ebp - 0x78d8], 1
jmp 0x4677bf
mov dword [ebp - 0x78d8], 0
mov eax, dword [ebp - 0x78d8]
mov dword [ebp - 0x7958], eax
mov ecx, dword [ebp - 0x7884]
mov dword [ebp - 0x7950], ecx
mov edx, dword [ebp - 0x7870]
lea eax, [ebp - 0x79b0]
mov dword [edx + 0x58], eax
mov dword [ebp - 0x79b0], 2
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x7998], ecx
mov edx, dword [ebp - 0x7884]
sub edx, dword [ebp + 0xc]
mov dword [ebp - 0x7994], edx
mov dword [ebp - 0x7974], 0
mov dword [ebp - 0x79a8], 1
mov dword [ebp - 0x79a4], 0
mov dword [ebp - 0x799c], 0
cmp dword [ebp + 0x20], 0
jne 0x467890
mov eax, dword [ebp - 0x7870]
mov dword [eax + 0x60], 0
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ebp - 0x7870]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [0x4b5d34]
mov dword [edx + 0x30], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [0x4b5d38]
mov dword [ecx + 0x34], edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [0x4b5d30]
mov dword [eax + 0x28], ecx
jmp 0x467927
mov edx, dword [ebp + 0x20]
cmp dword [edx + 0x1c], 0xffffffff
je 0x4678c3
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x40]
and ecx, 0x800000
jne 0x4678b4
mov eax, 0xffffffc8
jmp 0x468f37
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0xc]
add eax, dword [edx + 0x1c]
mov dword [ebp - 0x7950], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp + 0x20]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x60], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp + 0x20]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x5c], eax
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp - 0x7870]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x30], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x34], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x28], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [eax + 0x50]
jbe 0x46794d
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x50]
mov dword [edx + 0x30], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov ecx, dword [edx + 0x34]
cmp ecx, dword [eax + 0x54]
jbe 0x467973
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x54]
mov dword [edx + 0x34], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov ecx, dword [edx + 0x28]
cmp ecx, dword [eax + 0x4c]
jbe 0x467999
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x4c]
mov dword [edx + 0x28], ecx
mov edx, dword [ebp - 0x787c]
movzx eax, word [edx + 0x6e]
mov ecx, dword [ebp - 0x787c]
movzx edx, word [ecx + 0x6c]
imul eax, edx
mov ecx, dword [ebp - 0x787c]
lea edx, [ecx + eax + 0x70]
mov eax, dword [ebp - 0x7870]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp - 0x787c]
mov eax, dword [edx + 0xc]
mov dword [ecx + 0x20], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp + 0xc]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x7884]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp + 0x14]
mov dword [edx + 0x24], eax
mov ecx, dword [ebp - 0x787c]
movzx edx, word [ecx + 0x64]
test edx, edx
jg 0x467a27
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x48]
and ecx, 0x2000
jne 0x467a27
mov dword [ebp - 0x78dc], 0
jmp 0x467a31
mov dword [ebp - 0x78dc], 1
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x78dc]
mov dword [edx + 0x4c], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp + 0x18]
mov dword [ecx + 0x3c], edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x40]
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 0x7870]
mov dword [eax + 0x38], 0
mov ecx, dword [ebp - 0x7870]
mov dword [ecx + 0x2c], 0
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x787c]
mov cx, word [eax + 0x60]
mov word [edx + 0x54], cx
mov edx, dword [ebp - 0x7870]
mov dword [edx + 0x44], 0
mov eax, dword [ebp - 0x787c]
movzx ecx, word [eax + 0x62]
mov dword [ebp - 0x78c4], ecx
mov edx, dword [ebp - 0x78c4]
sub edx, 1
mov dword [ebp - 0x78c4], edx
cmp dword [ebp - 0x78c4], 5
ja case.default.0x467acb
mov eax, dword [ebp - 0x78c4]
jmp dword [eax*4 + 0x468f48]
mov ecx, dword [ebp - 0x7870]
mov dword [ecx + 0x48], 1
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0x7870]
mov byte [ecx + eax + 0x50], 0xd
jmp 0x467b98
mov edx, dword [ebp - 0x7870]
mov dword [edx + 0x48], 1
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x7870]
mov byte [edx + ecx + 0x50], 0xa
jmp 0x467b98
mov eax, dword [ebp - 0x7870]
mov dword [eax + 0x48], 1
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x7870]
mov byte [eax + edx + 0x50], 0
jmp 0x467b98
mov ecx, dword [ebp - 0x7870]
mov dword [ecx + 0x48], 2
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp - 0x7870]
mov byte [ecx + eax + 0x50], 0xd
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x7870]
mov byte [eax + edx + 0x50], 0xa
jmp 0x467b98
mov ecx, dword [ebp - 0x7870]
mov dword [ecx + 0x44], 1
jmp 0x467b98
mov edx, dword [ebp - 0x7870]
mov dword [edx + 0x44], 2
jmp 0x467b98
mov eax, 0xffffffd4
jmp 0x468f37
cmp dword [ebp - 0x7898], 0
je 0x467cc3
mov eax, dword [ebp + 0x18]
and eax, 0x40000000
jne 0x467cc3
mov ecx, dword [ebp - 0x7874]
mov dword [ebp - 0x789c], ecx
cmp dword [ebp + 0x14], 0
jbe 0x467c6f
mov edx, dword [ebp - 0x7874]
cmp edx, dword [ebp - 0x7884]
jae 0x467bf8
mov eax, dword [ebp - 0x7874]
movzx ecx, byte [eax]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x467bf8
mov eax, 0xffffffdc
jmp 0x468f37
mov edx, dword [ebp - 0x787c]
movzx eax, word [edx + 0x64]
mov dword [ebp - 0x78d0], eax
jmp 0x467c19
mov ecx, dword [ebp - 0x78d0]
sub ecx, 1
mov dword [ebp - 0x78d0], ecx
cmp dword [ebp - 0x78d0], 0
jbe 0x467c6f
mov edx, dword [ebp - 0x789c]
cmp edx, dword [ebp + 0xc]
jbe 0x467c6f
mov eax, dword [ebp - 0x789c]
sub eax, 1
mov dword [ebp - 0x789c], eax
mov ecx, dword [ebp - 0x789c]
cmp ecx, dword [ebp + 0xc]
jbe 0x467c6d
mov edx, dword [ebp - 0x789c]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x467c6d
mov ecx, dword [ebp - 0x789c]
sub ecx, 1
mov dword [ebp - 0x789c], ecx
jmp 0x467c3c
jmp 0x467c0a
mov edx, dword [ebp + 0x1c]
add edx, 0x2c
push edx
mov eax, dword [ebp - 0x789c]
sub eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub ecx, eax
push ecx
mov edx, dword [ebp - 0x789c]
push edx
call fcn.004799b0
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + 0x34], eax
mov edx, dword [ebp + 0x1c]
cmp dword [edx + 0x34], 0
je 0x467cc3
mov eax, dword [ebp - 0x789c]
sub eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
add eax, dword [ecx + 0x2c]
mov edx, dword [ebp + 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x34]
jmp 0x468f37
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x48]
and edx, 0x10
je 0x467d9f
mov dword [ebp - 0x78c0], 1
mov eax, dword [ebp - 0x787c]
mov cl, byte [eax + 0x58]
mov byte [ebp - 0x7885], cl
mov dl, byte [ebp - 0x7885]
mov byte [ebp - 0x7875], dl
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x48]
and ecx, 0x20
je 0x467d9d
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x20]
movzx ecx, byte [ebp - 0x7875]
mov dl, byte [eax + ecx + 0x100]
mov byte [ebp - 0x7885], dl
movzx eax, byte [ebp - 0x7875]
cmp eax, 0x7f
jle 0x467d9d
cmp dword [ebp - 0x7898], 0
jne 0x467d9d
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x40]
and edx, 0x20000
je 0x467d9d
movzx ecx, byte [ebp - 0x7875]
movzx eax, byte [ebp - 0x7875]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, word [eax*2 + 0x4bf380]
shl edx, 7
movzx eax, byte [ebp - 0x7875]
and eax, 0x8000007f
jns 0x467d84
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx edx, word [edx*2 + 0x4c3780]
imul eax, edx, 0xc
add ecx, dword [eax + 0x4bb0cc]
mov byte [ebp - 0x7885], cl
jmp 0x467dc5
cmp dword [ebp - 0x7920], 0
jne 0x467dc5
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x48]
and edx, 0x40
je 0x467dc5
mov eax, dword [ebp - 0x787c]
add eax, 0x14
mov dword [ebp - 0x78ac], eax
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x48]
and edx, 0x80
je 0x467ea5
mov dword [ebp - 0x7944], 1
mov eax, dword [ebp - 0x787c]
mov cl, byte [eax + 0x5c]
mov byte [ebp - 0x7886], cl
mov dl, byte [ebp - 0x7886]
mov byte [ebp - 0x787d], dl
mov eax, dword [ebp - 0x787c]
mov ecx, dword [eax + 0x48]
and ecx, 0x100
je 0x467ea5
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x20]
movzx ecx, byte [ebp - 0x787d]
mov dl, byte [eax + ecx + 0x100]
mov byte [ebp - 0x7886], dl
movzx eax, byte [ebp - 0x787d]
cmp eax, 0x7f
jle 0x467ea5
cmp dword [ebp - 0x7898], 0
jne 0x467ea5
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x40]
and edx, 0x20000
je 0x467ea5
movzx ecx, byte [ebp - 0x787d]
movzx eax, byte [ebp - 0x787d]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx edx, word [eax*2 + 0x4bf380]
shl edx, 7
movzx eax, byte [ebp - 0x787d]
and eax, 0x8000007f
jns 0x467e8c
dec eax
or eax, 0xffffff80
inc eax
add edx, eax
movzx edx, word [edx*2 + 0x4c3780]
imul eax, edx, 0xc
add ecx, dword [eax + 0x4bb0cc]
mov byte [ebp - 0x7886], cl
mov ecx, dword [ebp + 0x1c]
movzx edx, byte [ecx + 0x31]
and edx, 1
je 0x467eda
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx + 4]
call edx
add esp, 8
mov eax, dword [ebp + 0x1c]
movzx ecx, byte [eax + 0x31]
and ecx, 0xfffffffe
mov edx, dword [ebp + 0x1c]
mov byte [edx + 0x31], cl
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x787c]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp + 0x1c]
mov dword [edx + 0x10], 0
mov eax, dword [ebp + 0x1c]
mov dword [eax + 0x14], 0
mov ecx, dword [ebp + 0x1c]
mov byte [ecx + 0x30], 1
mov edx, dword [ebp - 0x787c]
mov eax, dword [edx + 0x40]
and eax, 0x10000
jne 0x468b28
mov ecx, dword [ebp + 0x18]
and ecx, 0x40
jne 0x468b28
cmp dword [ebp - 0x7958], 0
je 0x4681f4
mov edx, dword [ebp - 0x7874]
mov dword [ebp - 0x788c], edx
cmp dword [ebp - 0x7898], 0
je 0x4680b4
mov eax, dword [ebp - 0x788c]
cmp eax, dword [ebp - 0x7884]
jae 0x4680af
mov ecx, dword [ebp - 0x7870]
cmp dword [ecx + 0x44], 0
je 0x467fd5
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x788c]
cmp eax, dword [edx + 0x14]
jae 0x467fba
mov ecx, dword [ebp - 0x7898]
push ecx
mov edx, dword [ebp - 0x7870]
add edx, 0x48
push edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x44]
push eax
mov ecx, dword [ebp - 0x788c]
push ecx
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x467fba
mov dword [ebp - 0x78e0], 1
jmp 0x467fc4
mov dword [ebp - 0x78e0], 0
mov edx, dword [ebp - 0x78e0]
mov dword [ebp - 0x78e8], edx
jmp 0x46805e
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x7870]
mov edx, dword [eax + 0x14]
sub edx, dword [ecx + 0x48]
cmp dword [ebp - 0x788c], edx
ja 0x468048
mov eax, dword [ebp - 0x788c]
movzx ecx, byte [eax]
mov edx, 1
imul eax, edx, 0
mov edx, dword [ebp - 0x7870]
movzx eax, byte [edx + eax + 0x50]
cmp ecx, eax
jne 0x468048
mov ecx, dword [ebp - 0x7870]
cmp dword [ecx + 0x48], 1
je 0x46803c
mov edx, dword [ebp - 0x788c]
movzx eax, byte [edx + 1]
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x7870]
movzx ecx, byte [edx + ecx + 0x50]
cmp eax, ecx
jne 0x468048
mov dword [ebp - 0x78e4], 1
jmp 0x468052
mov dword [ebp - 0x78e4], 0
mov edx, dword [ebp - 0x78e4]
mov dword [ebp - 0x78e8], edx
cmp dword [ebp - 0x78e8], 0
jne 0x4680af
mov eax, dword [ebp - 0x788c]
add eax, 1
mov dword [ebp - 0x788c], eax
mov ecx, dword [ebp - 0x788c]
cmp ecx, dword [ebp - 0x7884]
jae 0x4680aa
mov edx, dword [ebp - 0x788c]
movzx eax, byte [edx]
and eax, 0xc0
cmp eax, 0x80
jne 0x4680aa
mov ecx, dword [ebp - 0x788c]
add ecx, 1
mov dword [ebp - 0x788c], ecx
jmp 0x468076
jmp 0x467f47
jmp 0x4681e8
mov edx, dword [ebp - 0x788c]
cmp edx, dword [ebp - 0x7884]
jae 0x4681e8
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x44], 0
je 0x468142
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp - 0x788c]
cmp edx, dword [ecx + 0x14]
jae 0x468127
mov eax, dword [ebp - 0x7898]
push eax
mov ecx, dword [ebp - 0x7870]
add ecx, 0x48
push ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x788c]
push eax
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x468127
mov dword [ebp - 0x78ec], 1
jmp 0x468131
mov dword [ebp - 0x78ec], 0
mov ecx, dword [ebp - 0x78ec]
mov dword [ebp - 0x78f4], ecx
jmp 0x4681cb
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x7870]
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x48]
cmp dword [ebp - 0x788c], ecx
ja 0x4681b5
mov edx, dword [ebp - 0x788c]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp - 0x7870]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x4681b5
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x48], 1
je 0x4681a9
mov ecx, dword [ebp - 0x788c]
movzx edx, byte [ecx + 1]
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x7870]
movzx eax, byte [ecx + eax + 0x50]
cmp edx, eax
jne 0x4681b5
mov dword [ebp - 0x78f0], 1
jmp 0x4681bf
mov dword [ebp - 0x78f0], 0
mov ecx, dword [ebp - 0x78f0]
mov dword [ebp - 0x78f4], ecx
cmp dword [ebp - 0x78f4], 0
jne 0x4681e8
mov edx, dword [ebp - 0x788c]
add edx, 1
mov dword [ebp - 0x788c], edx
jmp 0x4680b4
mov eax, dword [ebp - 0x788c]
mov dword [ebp - 0x7884], eax
cmp dword [ebp - 0x78cc], 0
je 0x468327
cmp dword [ebp - 0x78c0], 0
jne 0x468217
cmp dword [ebp - 0x78ac], 0
je 0x468322
mov ecx, dword [ebp - 0x7874]
cmp ecx, dword [ebp - 0x7884]
jae 0x468231
mov dword [ebp - 0x78f8], 1
jmp 0x46823b
mov dword [ebp - 0x78f8], 0
mov edx, dword [ebp - 0x78f8]
mov dword [ebp - 0x78b4], edx
cmp dword [ebp - 0x78b4], 0
je 0x468314
mov eax, dword [ebp - 0x7874]
mov cl, byte [eax]
mov byte [ebp - 0x788d], cl
cmp dword [ebp - 0x78c0], 0
je 0x46829b
movzx edx, byte [ebp - 0x788d]
movzx eax, byte [ebp - 0x7875]
cmp edx, eax
je 0x46828f
movzx ecx, byte [ebp - 0x788d]
movzx edx, byte [ebp - 0x7885]
cmp ecx, edx
jne 0x46829b
mov dword [ebp - 0x78fc], 1
jmp 0x4682a5
mov dword [ebp - 0x78fc], 0
mov eax, dword [ebp - 0x78fc]
mov dword [ebp - 0x78b4], eax
cmp dword [ebp - 0x78b4], 0
jne 0x468314
cmp dword [ebp - 0x78ac], 0
je 0x468314
movzx eax, byte [ebp - 0x788d]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov ecx, dword [ebp - 0x78ac]
movzx edx, byte [ecx + eax]
movzx ecx, byte [ebp - 0x788d]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
je 0x4682fe
mov dword [ebp - 0x7900], 1
jmp 0x468308
mov dword [ebp - 0x7900], 0
mov ecx, dword [ebp - 0x7900]
mov dword [ebp - 0x78b4], ecx
cmp dword [ebp - 0x78b4], 0
jne 0x468322
jmp 0x468edd
jmp 0x468969
cmp dword [ebp - 0x78c0], 0
je 0x46858d
movzx edx, byte [ebp - 0x7875]
movzx eax, byte [ebp - 0x7885]
cmp edx, eax
je 0x468525
mov dword [ebp - 0x78a8], 0
mov dword [ebp - 0x78a0], 0
mov ecx, dword [ebp - 0x7884]
sub ecx, dword [ebp - 0x7874]
mov dword [ebp - 0x790c], ecx
cmp dword [ebp - 0x78b8], 0
je 0x468387
mov edx, dword [ebp - 0x7874]
cmp edx, dword [ebp - 0x78b8]
jbe 0x4683dc
mov eax, dword [ebp - 0x790c]
push eax
movzx ecx, byte [ebp - 0x7875]
push ecx
mov edx, dword [ebp - 0x7874]
push edx
call fcn.0047f180
add esp, 0xc
mov dword [ebp - 0x78a8], eax
cmp dword [ebp - 0x78a8], 0
jne 0x4683c2
mov eax, dword [ebp - 0x7884]
mov dword [ebp - 0x7904], eax
jmp 0x4683ce
mov ecx, dword [ebp - 0x78a8]
mov dword [ebp - 0x7904], ecx
mov edx, dword [ebp - 0x7904]
mov dword [ebp - 0x78b8], edx
jmp 0x46840e
mov eax, dword [ebp - 0x78b8]
cmp eax, dword [ebp - 0x7884]
jne 0x4683f6
mov dword [ebp - 0x7908], 0
jmp 0x468402
mov ecx, dword [ebp - 0x78b8]
mov dword [ebp - 0x7908], ecx
mov edx, dword [ebp - 0x7908]
mov dword [ebp - 0x78a8], edx
cmp dword [ebp - 0x78bc], 0
je 0x468425
mov eax, dword [ebp - 0x7874]
cmp eax, dword [ebp - 0x78bc]
jbe 0x46847a
mov ecx, dword [ebp - 0x790c]
push ecx
movzx edx, byte [ebp - 0x7885]
push edx
mov eax, dword [ebp - 0x7874]
push eax
call fcn.0047f180
add esp, 0xc
mov dword [ebp - 0x78a0], eax
cmp dword [ebp - 0x78a0], 0
jne 0x468460
mov ecx, dword [ebp - 0x7884]
mov dword [ebp - 0x7910], ecx
jmp 0x46846c
mov edx, dword [ebp - 0x78a0]
mov dword [ebp - 0x7910], edx
mov eax, dword [ebp - 0x7910]
mov dword [ebp - 0x78bc], eax
jmp 0x4684ac
mov ecx, dword [ebp - 0x78bc]
cmp ecx, dword [ebp - 0x7884]
jne 0x468494
mov dword [ebp - 0x7914], 0
jmp 0x4684a0
mov edx, dword [ebp - 0x78bc]
mov dword [ebp - 0x7914], edx
mov eax, dword [ebp - 0x7914]
mov dword [ebp - 0x78a0], eax
cmp dword [ebp - 0x78a8], 0
jne 0x4684e6
cmp dword [ebp - 0x78a0], 0
jne 0x4684cc
mov ecx, dword [ebp - 0x7884]
mov dword [ebp - 0x7918], ecx
jmp 0x4684d8
mov edx, dword [ebp - 0x78a0]
mov dword [ebp - 0x7918], edx
mov eax, dword [ebp - 0x7918]
mov dword [ebp - 0x7874], eax
jmp 0x468523
cmp dword [ebp - 0x78a0], 0
je 0x46850b
mov ecx, dword [ebp - 0x78a8]
cmp ecx, dword [ebp - 0x78a0]
jb 0x46850b
mov edx, dword [ebp - 0x78a0]
mov dword [ebp - 0x791c], edx
jmp 0x468517
mov eax, dword [ebp - 0x78a8]
mov dword [ebp - 0x791c], eax
mov ecx, dword [ebp - 0x791c]
mov dword [ebp - 0x7874], ecx
jmp 0x468564
mov edx, dword [ebp - 0x7884]
sub edx, dword [ebp - 0x7874]
push edx
movzx eax, byte [ebp - 0x7875]
push eax
mov ecx, dword [ebp - 0x7874]
push ecx
call fcn.0047f180
add esp, 0xc
mov dword [ebp - 0x7874], eax
cmp dword [ebp - 0x7874], 0
jne 0x468564
mov edx, dword [ebp - 0x7884]
mov dword [ebp - 0x7874], edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [eax + 0x3c]
and ecx, 0x30
jne 0x468588
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x7874]
cmp eax, dword [edx + 0x14]
jb 0x468588
jmp 0x468edd
jmp 0x468969
cmp dword [ebp - 0x7920], 0
je 0x4688e5
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x10]
add edx, dword [ebp + 0x14]
cmp dword [ebp - 0x7874], edx
jbe 0x4688e0
cmp dword [ebp - 0x7898], 0
je 0x468740
mov eax, dword [ebp - 0x7874]
cmp eax, dword [ebp - 0x7884]
jae 0x46873b
mov ecx, dword [ebp - 0x7870]
cmp dword [ecx + 0x44], 0
je 0x46864d
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x7874]
cmp eax, dword [edx + 0x10]
jbe 0x468632
mov ecx, dword [ebp - 0x7898]
push ecx
mov edx, dword [ebp - 0x7870]
add edx, 0x48
push edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x44]
push eax
mov ecx, dword [ebp - 0x7874]
push ecx
call fcn.004761b0
add esp, 0x14
test eax, eax
je 0x468632
mov dword [ebp - 0x7924], 1
jmp 0x46863c
mov dword [ebp - 0x7924], 0
mov edx, dword [ebp - 0x7924]
mov dword [ebp - 0x792c], edx
jmp 0x4686e8
mov eax, dword [ebp - 0x7870]
mov ecx, dword [eax + 0x10]
mov edx, dword [ebp - 0x7870]
add ecx, dword [edx + 0x48]
cmp dword [ebp - 0x7874], ecx
jb 0x4686d2
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x7874]
sub ecx, dword [eax + 0x48]
movzx edx, byte [ecx]
mov eax, 1
imul ecx, eax, 0
mov eax, dword [ebp - 0x7870]
movzx ecx, byte [eax + ecx + 0x50]
cmp edx, ecx
jne 0x4686d2
mov edx, dword [ebp - 0x7870]
cmp dword [edx + 0x48], 1
je 0x4686c6
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x7874]
sub ecx, dword [eax + 0x48]
movzx edx, byte [ecx + 1]
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x7870]
movzx eax, byte [ecx + eax + 0x50]
cmp edx, eax
jne 0x4686d2
mov dword [ebp - 0x7928], 1
jmp 0x4686dc
mov dword [ebp - 0x7928], 0
mov ecx, dword [ebp - 0x7928]
mov dword [ebp - 0x792c], ecx
cmp dword [ebp - 0x792c], 0
jne 0x46873b
mov edx, dword [ebp - 0x7874]
add edx, 1
mov dword [ebp - 0x7874], edx
mov eax, dword [ebp - 0x7874]
cmp eax, dword [ebp - 0x7884]
jae 0x468736
mov ecx, dword [ebp - 0x7874]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x468736
mov eax, dword [ebp - 0x7874]
add eax, 1
mov dword [ebp - 0x7874], eax
jmp 0x468700
jmp 0x4685bf
jmp 0x468886
mov ecx, dword [ebp - 0x7874]
cmp ecx, dword [ebp - 0x7884]
jae 0x468886
mov edx, dword [ebp - 0x7870]
cmp dword [edx + 0x44], 0
je 0x4687ce
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x7874]
cmp ecx, dword [eax + 0x10]
jbe 0x4687b3
mov edx, dword [ebp - 0x7898]
push edx
mov eax, dword [ebp - 0x7870]
add eax, 0x48
push eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x7870]
mov ecx, dword [eax + 0x44]
push ecx
mov edx, dword [ebp - 0x7874]
push edx
call fcn.004761b0
add esp, 0x14
test eax, eax
je 0x4687b3
mov dword [ebp - 0x7930], 1
jmp 0x4687bd
mov dword [ebp - 0x7930], 0
mov eax, dword [ebp - 0x7930]
mov dword [ebp - 0x7938], eax
jmp 0x468869
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x7870]
add edx, dword [eax + 0x48]
cmp dword [ebp - 0x7874], edx
jb 0x468853
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp - 0x7874]
sub edx, dword [ecx + 0x48]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp - 0x7870]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x468853
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x48], 1
je 0x468847
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp - 0x7874]
sub edx, dword [ecx + 0x48]
movzx eax, byte [edx + 1]
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x7870]
movzx ecx, byte [edx + ecx + 0x50]
cmp eax, ecx
jne 0x468853
mov dword [ebp - 0x7954], 1
jmp 0x46885d
mov dword [ebp - 0x7954], 0
mov edx, dword [ebp - 0x7954]
mov dword [ebp - 0x7938], edx
cmp dword [ebp - 0x7938], 0
jne 0x468886
mov eax, dword [ebp - 0x7874]
add eax, 1
mov dword [ebp - 0x7874], eax
jmp 0x468740
mov ecx, 1
imul edx, ecx, 0xffffffff
mov eax, dword [ebp - 0x7874]
movzx ecx, byte [eax + edx]
cmp ecx, 0xd
jne 0x4688e0
mov edx, dword [ebp - 0x7870]
cmp dword [edx + 0x44], 1
je 0x4688b5
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x44], 2
jne 0x4688e0
mov ecx, dword [ebp - 0x7874]
cmp ecx, dword [ebp - 0x7884]
jae 0x4688e0
mov edx, dword [ebp - 0x7874]
movzx eax, byte [edx]
cmp eax, 0xa
jne 0x4688e0
mov ecx, dword [ebp - 0x7874]
add ecx, 1
mov dword [ebp - 0x7874], ecx
jmp 0x468969
cmp dword [ebp - 0x78ac], 0
je 0x468969
mov edx, dword [ebp - 0x7874]
cmp edx, dword [ebp - 0x7884]
jae 0x468945
mov eax, dword [ebp - 0x7874]
movzx ecx, byte [eax]
mov dword [ebp - 0x793c], ecx
mov edx, dword [ebp - 0x793c]
shr edx, 3
mov eax, dword [ebp - 0x78ac]
movzx edx, byte [eax + edx]
mov ecx, dword [ebp - 0x793c]
and ecx, 7
mov eax, 1
shl eax, cl
and edx, eax
je 0x468934
jmp 0x468945
mov ecx, dword [ebp - 0x7874]
add ecx, 1
mov dword [ebp - 0x7874], ecx
jmp 0x4688ee
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x3c]
and eax, 0x30
jne 0x468969
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp - 0x7874]
cmp edx, dword [ecx + 0x14]
jb 0x468969
jmp 0x468edd
mov eax, dword [ebp - 0x7870]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x7884], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x3c]
and eax, 0x30
jne 0x468b28
mov ecx, dword [ebp - 0x7884]
sub ecx, dword [ebp - 0x7874]
mov edx, dword [ebp - 0x787c]
movzx eax, word [edx + 0x66]
cmp ecx, eax
jge 0x4689a9
jmp 0x468edd
cmp dword [ebp - 0x78c0], 0
je 0x4689be
mov dword [ebp - 0x7940], 1
jmp 0x4689c8
mov dword [ebp - 0x7940], 0
mov ecx, dword [ebp - 0x7874]
add ecx, dword [ebp - 0x7940]
mov dword [ebp - 0x7894], ecx
cmp dword [ebp - 0x7944], 0
je 0x468b28
mov edx, dword [ebp - 0x7894]
cmp edx, dword [ebp - 0x794c]
jbe 0x468b28
mov eax, dword [ebp - 0x7884]
sub eax, dword [ebp - 0x7874]
mov dword [ebp - 0x7948], eax
cmp dword [ebp - 0x7948], 0x1388
jb 0x468a34
cmp dword [ebp - 0x78cc], 0
jne 0x468b28
cmp dword [ebp - 0x7948], 0x4c4b40
jae 0x468b28
movzx ecx, byte [ebp - 0x787d]
movzx edx, byte [ebp - 0x7886]
cmp ecx, edx
je 0x468aca
mov eax, dword [ebp - 0x7894]
mov dword [ebp - 0x78c8], eax
mov ecx, dword [ebp - 0x7884]
sub ecx, dword [ebp - 0x78c8]
push ecx
movzx edx, byte [ebp - 0x787d]
push edx
mov eax, dword [ebp - 0x78c8]
push eax
call fcn.0047f180
add esp, 0xc
mov dword [ebp - 0x7894], eax
cmp dword [ebp - 0x7894], 0
jne 0x468ac8
mov ecx, dword [ebp - 0x7884]
sub ecx, dword [ebp - 0x78c8]
push ecx
movzx edx, byte [ebp - 0x7886]
push edx
mov eax, dword [ebp - 0x78c8]
push eax
call fcn.0047f180
add esp, 0xc
mov dword [ebp - 0x7894], eax
cmp dword [ebp - 0x7894], 0
jne 0x468ac8
mov ecx, dword [ebp - 0x7884]
mov dword [ebp - 0x7894], ecx
jmp 0x468b09
mov edx, dword [ebp - 0x7884]
sub edx, dword [ebp - 0x7894]
push edx
movzx eax, byte [ebp - 0x787d]
push eax
mov ecx, dword [ebp - 0x7894]
push ecx
call fcn.0047f180
add esp, 0xc
mov dword [ebp - 0x7894], eax
cmp dword [ebp - 0x7894], 0
jne 0x468b09
mov edx, dword [ebp - 0x7884]
mov dword [ebp - 0x7894], edx
mov eax, dword [ebp - 0x7894]
cmp eax, dword [ebp - 0x7884]
jb 0x468b1c
jmp 0x468edd
mov ecx, dword [ebp - 0x7894]
mov dword [ebp - 0x794c], ecx
mov edx, dword [ebp - 0x7874]
cmp edx, dword [ebp - 0x7950]
jbe 0x468b3b
jmp 0x468edd
mov eax, dword [ebp - 0x7870]
mov ecx, dword [ebp - 0x7874]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x7874]
mov dword [edx + 0x1c], eax
mov ecx, dword [ebp - 0x7870]
mov dword [ecx + 0x64], 0
lea edx, [ebp - 0x7804]
push edx
push 0
mov eax, dword [ebp + 0x28]
push eax
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp + 0x1c]
movzx eax, word [edx + 0x32]
shl eax, 1
push eax
mov ecx, dword [ebp + 0x1c]
add ecx, 0x38
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp - 0x7874]
push eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp - 0x7870]
push eax
call fcn.004691d0
add esp, 0x28
mov dword [ebp - 0x78a4], eax
cmp dword [ebp - 0x78a4], 0xffffffff
jne 0x468bc8
cmp dword [ebp - 0x78cc], 0
je 0x468ceb
cmp dword [ebp - 0x78a4], 0xfffffffe
jne 0x468c0c
mov ecx, dword [ebp + 0x1c]
movzx edx, word [ecx + 0x32]
test edx, edx
jle 0x468c0c
mov eax, dword [ebp - 0x7874]
sub eax, dword [ebp + 0xc]
mov ecx, 4
imul edx, ecx, 0
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + edx + 0x38], eax
mov edx, dword [ebp - 0x7884]
sub edx, dword [ebp + 0xc]
mov eax, 4
shl eax, 0
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + eax + 0x38], edx
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0x20], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x18]
sub edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
mov dword [eax + 0x24], edx
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x1c]
sub edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x1c]
mov dword [eax + 0x28], edx
mov ecx, dword [ebp - 0x7874]
sub ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x1c]
mov dword [edx + 0x2c], ecx
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x78a4]
mov dword [eax + 0x34], ecx
cmp dword [ebp - 0x78a4], 0
jl 0x468ccb
mov edx, dword [ebp + 0x18]
and edx, 0x4000
je 0x468ccb
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 0x7970]
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
call edx
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp + 0x1c]
cmp dword [edx + 0x10], 0
jne 0x468ca2
mov eax, 0xffffffd0
jmp 0x468f37
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 0x1c]
mov eax, dword [edx + 0x10]
push eax
call fcn.0047cfc0
add esp, 0xc
mov ecx, dword [ebp + 0x1c]
movzx edx, byte [ecx + 0x31]
or edx, 1
mov eax, dword [ebp + 0x1c]
mov byte [eax + 0x31], dl
jmp 0x468ce6
cmp dword [ebp - 0x78a4], 0
jge 0x468cdd
cmp dword [ebp - 0x78a4], 0xfffffffe
jne 0x468ce6
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0xc]
mov dword [ecx + 0x10], edx
jmp 0x468ee7
cmp dword [ebp - 0x7958], 0
je 0x468e0b
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x44], 0
je 0x468d74
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ebp - 0x7874]
cmp edx, dword [ecx + 0x14]
jae 0x468d59
mov eax, dword [ebp - 0x7898]
push eax
mov ecx, dword [ebp - 0x7870]
add ecx, 0x48
push ecx
mov edx, dword [ebp - 0x7870]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 0x44]
push edx
mov eax, dword [ebp - 0x7874]
push eax
call fcn.00475e60
add esp, 0x14
test eax, eax
je 0x468d59
mov dword [ebp - 0x795c], 1
jmp 0x468d63
mov dword [ebp - 0x795c], 0
mov ecx, dword [ebp - 0x795c]
mov dword [ebp - 0x7964], ecx
jmp 0x468dfd
mov edx, dword [ebp - 0x7870]
mov eax, dword [ebp - 0x7870]
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x48]
cmp dword [ebp - 0x7874], ecx
ja 0x468de7
mov edx, dword [ebp - 0x7874]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp - 0x7870]
movzx edx, byte [ecx + edx + 0x50]
cmp eax, edx
jne 0x468de7
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x48], 1
je 0x468ddb
mov ecx, dword [ebp - 0x7874]
movzx edx, byte [ecx + 1]
mov eax, 1
shl eax, 0
mov ecx, dword [ebp - 0x7870]
movzx eax, byte [ecx + eax + 0x50]
cmp edx, eax
jne 0x468de7
mov dword [ebp - 0x7960], 1
jmp 0x468df1
mov dword [ebp - 0x7960], 0
mov ecx, dword [ebp - 0x7960]
mov dword [ebp - 0x7964], ecx
cmp dword [ebp - 0x7964], 0
je 0x468e0b
jmp 0x468edd
mov edx, dword [ebp - 0x7874]
add edx, 1
mov dword [ebp - 0x7874], edx
cmp dword [ebp - 0x7898], 0
je 0x468e59
mov eax, dword [ebp - 0x7874]
cmp eax, dword [ebp - 0x7884]
jae 0x468e59
mov ecx, dword [ebp - 0x7874]
movzx edx, byte [ecx]
and edx, 0xc0
cmp edx, 0x80
jne 0x468e59
mov eax, dword [ebp - 0x7874]
add eax, 1
mov dword [ebp - 0x7874], eax
jmp 0x468e23
mov ecx, dword [ebp - 0x7874]
cmp ecx, dword [ebp - 0x7884]
jbe 0x468e69
jmp 0x468edd
mov edx, dword [ebp - 0x7874]
movzx eax, byte [edx - 1]
cmp eax, 0xd
jne 0x468ed8
mov ecx, dword [ebp - 0x7874]
cmp ecx, dword [ebp - 0x7884]
jae 0x468ed8
mov edx, dword [ebp - 0x7874]
movzx eax, byte [edx]
cmp eax, 0xa
jne 0x468ed8
mov ecx, dword [ebp - 0x787c]
mov edx, dword [ecx + 0x48]
and edx, 0x800
jne 0x468ed8
mov eax, dword [ebp - 0x7870]
cmp dword [eax + 0x44], 1
je 0x468ec9
mov ecx, dword [ebp - 0x7870]
cmp dword [ecx + 0x44], 2
je 0x468ec9
mov edx, dword [ebp - 0x7870]
cmp dword [edx + 0x48], 2
jne 0x468ed8
mov eax, dword [ebp - 0x7874]
add eax, 1
mov dword [ebp - 0x7874], eax
jmp 0x467f01
mov dword [ebp - 0x78a4], 0xffffffff
mov ecx, dword [ebp - 0x78b0]
cmp dword [ecx], 0
je 0x468f31
mov edx, dword [ebp - 0x78b0]
mov eax, dword [edx]
mov dword [ebp - 0x7968], eax
mov ecx, dword [ebp - 0x78b0]
mov edx, dword [ebp - 0x7968]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x7968]
push eax
mov ecx, dword [ebp - 0x7870]
mov edx, dword [ecx + 4]
call edx
add esp, 8
jmp 0x468ee7
mov eax, dword [ebp - 0x78a4]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047be9b
mov esp, ebp
pop ebp
ret