Function at 0x807aceb
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x6b8
mov eax, dword [0x8230fb8]
xor eax, ebp
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x6c]
and dword [ebp - 0x23c], 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x70]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x74]
mov dword [ebp - 0x258], eax
mov eax, dword [ebp + 0x78]
mov dword [ebp - 0x34], eax
push ebx
mov ebx, dword [ebp + 0x7c]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx]
push esi
push edi
mov edi, ecx
mov esi, dword [edi + 0x300]
mov ecx, eax
and eax, 0x404
or ecx, 0xfffffffe
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [0x823de0c], edx
and dword [edi + 0x304], 0xffffdfff
cmp dword [ebp - 0x6c], eax
not ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x244], eax
jne 0x807ae13
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
cmp dword [eax + 4], 0x1818
jae 0x807adec
cmp dword [eax], 0
je 0x807adb2
mov ecx, dword [0x823de0c]
mov ecx, dword [ecx + 0x14]
push dword [eax]
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
pop ecx
pop ecx
mov eax, dword [0x823de0c]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
push 0x1818
push eax
call dword [ecx]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
mov dword [edx], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
cmp dword [eax], 0
jne 0x807ade5
and dword [eax + 4], 0
push 0xfffffffffffffffc
jmp 0x807bb63
mov dword [eax + 4], 0x1818
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov eax, dword [eax]
lea edx, [eax + 0xc0c]
mov dword [0x8232f4c], eax
mov dword [0x8232f04], edx
call fcn.08079c99
mov eax, edx
call fcn.08079c99
mov ebx, dword [ebx]
lea ecx, [edi + 0x24]
mov dword [0x8232ee8], ecx
lea ecx, [edi + 0xe8]
mov dword [0x8232f38], ecx
mov ecx, dword [edi + 0x20]
mov dword [0x8232f50], ecx
mov ecx, dword [edi + 0xe4]
xor eax, eax
mov dword [0x8232f34], ecx
inc eax
xor edx, edx
mov ecx, ebx
and ecx, eax
mov dword [0x8232f20], edx
mov dword [0x8232f08], eax
je 0x807ae63
test esi, 0xc0000000
mov dword [ebp - 0x94], eax
jne 0x807ae69
mov dword [ebp - 0x94], edx
cmp ecx, edx
je 0x807ae7b
test esi, 0x40000000
mov dword [ebp - 0x18c], eax
jne 0x807ae81
mov dword [ebp - 0x18c], edx
cmp ecx, edx
je 0x807ae8f
test esi, esi
mov dword [ebp - 0x190], eax
js 0x807ae95
mov dword [ebp - 0x190], edx
test bx, 0x400
jne 0x807aea9
lea eax, [edi + 8]
push 0
push eax
call fcn.0805db3d
pop ecx
pop ecx
cmp dword [edi + 0x3c4], 0
jge 0x807af87
mov eax, dword [edi + 0x3c8]
test eax, eax
mov ebx, 0xccd
jg 0x807aed3
push ebx
push dword [edi + 0x2a8]
call fcn.0800277c
jmp 0x807af19
and dword [ebp - 0x84], 0
lea ecx, [ebp - 0x88]
push ecx
push dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
push eax
call dword [0x823e038]
add esp, 0xc
cmp dword [ebp - 0x84], 0
jne 0x807af08
mov eax, dword [ebp - 0x88]
jmp 0x807af1b
push dword [ebp - 0x84]
push dword [ebp - 0x88]
call fcn.08079cb5
pop ecx
pop ecx
mov dword [edi + 0x3c0], eax
mov eax, dword [edi + 0x3cc]
test eax, eax
jg 0x807af39
push ebx
push dword [edi + 0x2ac]
call fcn.0800277c
jmp 0x807af7f
and dword [ebp - 0x88], 0
lea ecx, [ebp - 0x88]
push ecx
push eax
push dword [ebp - 0x88]
mov dword [ebp - 0x84], eax
call dword [0x823e038]
add esp, 0xc
cmp dword [ebp - 0x88], 0
jne 0x807af6e
mov eax, dword [ebp - 0x84]
jmp 0x807af81
push dword [ebp - 0x84]
push dword [ebp - 0x88]
call fcn.08079cb5
pop ecx
pop ecx
mov dword [edi + 0x3c4], eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x807afa0
mov ecx, dword [edi + 0x3c4]
mov dword [eax + 0x14], ecx
mov ecx, dword [edi + 0x3c0]
mov dword [eax + 0x18], ecx
mov eax, esi
and eax, 0x10
mov dword [0x8232f14], eax
mov ebx, 0x10000
je 0x807b01a
cmp dword [ebp - 0x6c], 0
jne 0x807b01a
and dword [ebp - 0x20c], 0
lea eax, [ebp - 0x20c]
push eax
push ebx
push dword [ebp - 0x20c]
mov dword [ebp - 0x208], ebx
call dword [0x823e028]
mov eax, dword [ebp - 0x208]
mov ecx, dword [0x8232f04]
mov dword [ecx + 8], eax
and dword [ebp - 0x208], 0
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x208]
mov dword [ebp - 0x20c], ebx
push ebx
call dword [0x823e028]
mov eax, dword [ebp - 0x20c]
mov ecx, dword [0x8232f4c]
add esp, 0x18
mov dword [ecx + 8], eax
xor eax, eax
mov dword [0x823ddf4], ebx
cmp dword [edi + 0x30c], 2
sete al
test eax, eax
mov dword [0x8232f3c], eax
je 0x807b058
push 1
push ebx
push dword [edi + 0x2fc]
call fcn.08076f22
add eax, 0x8000
sar eax, 0x10
not eax
add esp, 0xc
and eax, 1
mov dword [0x8232f30], eax
or esi, 0xffffffdf
xor eax, eax
not esi
test esi, esi
mov dword [0x8232f0c], eax
jne 0x807b079
cmp dword [ebp - 0x6c], eax
jne 0x807b079
cmp dword [ebp - 0x94], eax
jne 0x807c011
mov dword [0x8232f48], 2
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
xor esi, esi
cmp ecx, esi
je 0x807b09d
mov edx, 0xdeadbeef
mov dword [ecx + 0x24], edx
mov ecx, dword [eax + 4]
mov dword [ecx + 0x28], edx
mov ecx, dword [ebp - 0x2c]
test byte [ecx], 0x10
jne 0x807b0ab
mov dword [edi + 0x3e8], esi
cmp dword [edi + 0x3f8], esi
je 0x807b0c2
cmp dword [ebp - 0x6c], esi
jne 0x807b0c2
push edi
call fcn.0805fb93
mov eax, dword [ebp - 0x20]
pop ecx
mov ecx, dword [edi + 0x304]
or dword [eax + 0x10], ecx
mov ebx, dword [ebp - 0x20]
mov dword [edi + 0x3f4], 0x1312d00
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x2c]
xor edx, edx
mov dword [0x823ddf8], edx
mov dword [edi + 0x3d0], edx
mov dword [edi + 0x3d4], edx
mov dword [edi + 0x3d8], edx
mov eax, dword [esi]
test al, 0x18
mov dword [ebp - 0x228], edx
mov dword [ebp - 0x22c], edx
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x204], edx
mov dword [0x8232f10], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x224], edx
mov dword [ebp - 0x200], edx
mov word [ebp - 0x7e], dx
mov word [ebp - 0x80], dx
je 0x807b2fc
mov ecx, eax
and ecx, 0x20
je 0x807b16e
test al, 0x40
mov edx, dword [ebp - 0x30]
je 0x807b16b
mov edx, dword [edx]
add edx, 0xc
test al, 0x10
mov eax, dword [esi + 4]
mov dword [ebp - 0x344], 2
je 0x807b247
test ecx, ecx
mov esi, dword [eax + 8]
mov dword [ebp - 0x34c], esi
je 0x807b27a
mov ecx, dword [edx]
test ecx, ecx
mov dword [ebp - 0x23c], ecx
je 0x807b27a
mov edi, dword [eax]
mov eax, dword [eax + 4]
add eax, 0x8000
sar eax, 0x10
mov word [ebp - 0x7e], ax
movzx eax, word [ecx]
add edi, 0x8000
sar edi, 0x10
cmp ax, 0x8000
mov word [ebp - 0x80], di
jne 0x807b1d4
mov word [ebp - 0x220], ax
jmp 0x807b1de
sub eax, dword [ebp - 0x80]
mov word [ebp - 0x220], ax
movzx eax, word [ecx + 2]
cmp ax, 0x8000
jne 0x807b1f1
mov word [ebp - 0x21e], ax
jmp 0x807b1fb
sub eax, dword [ebp - 0x7e]
mov word [ebp - 0x21e], ax
movzx eax, word [ecx + 4]
cmp ax, 0x7fff
jne 0x807b20e
mov word [ebp - 0x21c], ax
jmp 0x807b218
sub eax, dword [ebp - 0x80]
mov word [ebp - 0x21c], ax
movzx eax, word [ecx + 6]
cmp ax, 0x7fff
jne 0x807b22b
mov word [ebp - 0x21a], ax
jmp 0x807b235
sub eax, dword [ebp - 0x7e]
mov word [ebp - 0x21a], ax
and word [ebp - 0x7e], 0
and word [ebp - 0x80], 0
lea eax, [ebp - 0x220]
jmp 0x807b278
mov esi, dword [eax + 0xc]
mov edi, dword [eax]
mov eax, dword [eax + 4]
add edi, 0x8000
add eax, 0x8000
sar edi, 0x10
sar eax, 0x10
test ecx, ecx
mov dword [ebp - 0x34c], esi
mov word [ebp - 0x80], di
mov word [ebp - 0x7e], ax
je 0x807b27a
mov eax, dword [ebp - 0x23c]
mov dword [edx], eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x807b31c
mov al, byte [edx + 0x21]
cmp al, 4
jne 0x807b2b0
lea ecx, [ecx + esi*4]
movzx eax, byte [ecx]
movzx edi, byte [ecx + 1]
shl eax, 8
add eax, edi
movzx edi, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl eax, 8
add eax, edi
shl eax, 8
jmp 0x807b2e1
cmp al, 3
jne 0x807b2d0
mov eax, esi
imul eax, eax, 3
add ecx, eax
movzx edi, byte [ecx]
movzx eax, byte [ecx + 1]
movzx ecx, byte [ecx + 2]
shl edi, 8
add eax, edi
shl eax, 8
jmp 0x807b2e1
cmp al, 2
jne 0x807b2e5
lea ecx, [ecx + esi*2]
movzx eax, byte [ecx + 1]
movzx ecx, byte [ecx]
shl ecx, 8
add eax, ecx
jmp 0x807b2f1
cmp al, 1
jne 0x807b2ef
movzx eax, byte [ecx + esi]
jmp 0x807b2f1
xor eax, eax
test eax, eax
je 0x807b31c
mov ecx, dword [edx + 0xc]
add ecx, eax
jmp 0x807b315
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
xor esi, esi
mov dword [ebp - 0x34c], esi
mov dword [ebp - 0x344], 1
mov edx, eax
test ecx, ecx
mov dword [ebp - 0x28], ecx
jne 0x807b35e
mov eax, dword [ebp - 0x5c]
mov dword [edx + 0x1c], esi
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x807b8ee
push 0xa
lea eax, [ebp - 0x348]
pop esi
and dword [eax], 0
add eax, 0x14
dec esi
jne 0x807b336
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
push edx
push dword [ebp - 0x344]
call ecx
mov ecx, eax
add esp, 0xc
test ecx, ecx
mov dword [ebp - 0x28], ecx
je 0x807b8ee
xor eax, eax
mov dword [ebp - 0x354], ecx
xor ecx, ecx
inc eax
cmp dword [ebp - 0x94], ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x78], ecx
jne 0x807b380
mov dword [ebp - 0x40], 0x807875e
jmp 0x807b3b3
cmp dword [0x823e040], eax
jne 0x807b3ac
mov eax, 0x10000
cmp dword [0x823e048], eax
jg 0x807b3ac
cmp dword [0x823e054], eax
jg 0x807b3ac
cmp dword [0x8232f48], ecx
mov dword [ebp - 0x40], 0x8078699
jne 0x807b3b3
mov dword [ebp - 0x40], 0x80786ec
cmp dword [ebp - 0x6c], ecx
jne 0x807b3c7
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp eax, ecx
je 0x807b3c7
push dword [ebp - 0x30]
call eax
pop ecx
and dword [ebp - 0x1fc], 0
lea esi, [ebp - 0x178]
mov ecx, dword [ebp - 0x28]
movzx eax, byte [ecx]
mov edi, dword [ebp - 0x14]
inc ecx
dec dword [edi + 0x3f4]
mov dword [ebp - 0x28], ecx
je 0x807eaa6
lea edx, [ebp - 0x178]
cmp esi, edx
jb case.0x807b404.0
cmp eax, 0x1f
ja case.default.0x807b404
jmp dword [eax*4 + 0x807eb1f]
movzx eax, byte [ecx]
inc ecx
mov dword [ebp - 0x28], ecx
cmp eax, 0x26
ja case.0x807b404.0
jmp dword [eax*4 + 0x807eb9f]
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
movsx eax, word [esi - 2]
sub esi, 4
movsx edi, word [esi - 2]
sub esi, 4
cmp eax, 0x1e
mov dword [ebp - 0x1c], eax
ja case.0x807b455.5
movzx eax, byte [eax + 0x807ec8f]
jmp dword [eax*4 + 0x807ec3b]
mov eax, edi
imul eax, eax, 0xfffffffc
add esi, eax
lea eax, [ebp - 0x178]
cmp esi, eax
jb case.0x807b404.0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
test eax, eax
je 0x807b48a
mov ecx, dword [ebp - 0x2c]
push dword [ecx + 8]
lea ecx, [edi + 1]
push esi
push ecx
call eax
add esp, 0xc
mov eax, edi
dec edi
test eax, eax
jle case.0x807b455.2
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
inc dword [ebp - 0x28]
cmp eax, 0xc
jne 0x807b4cc
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
inc dword [ebp - 0x28]
cmp eax, 0x11
jne 0x807b4c4
lea eax, [ebp - 0xb8]
cmp esi, eax
jae case.0x807b404.0
add esi, 4
jmp 0x807b48a
mov edi, dword [ebp - 0x14]
jmp 0x807b412
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
jmp 0x807b3ed
and dword [0x8232f08], 0
lea eax, [ebp - 0x178]
sub esi, eax
cmp word [edi + 0x3fe], 2
jne 0x807b59a
sar esi, 2
mov eax, esi
and eax, 1
xor edi, edi
cmp esi, 2
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], eax
jl case.0x807b404.0
xor ebx, ebx
test eax, eax
setne bl
cmp ebx, esi
jge 0x807b55c
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x64]
sub ecx, ebx
dec ecx
shr ecx, 1
inc ecx
push ecx
lea eax, [ebp + esi]
push edi
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
add edi, dword [ebp + ebx*4 - 0x178]
mov eax, dword [ebp + ebx*4 - 0x174]
mov dword [ebp + esi*8 - 0x654], edi
add edi, eax
mov dword [ebp + esi*8 - 0x650], eax
inc esi
inc ebx
inc ebx
cmp ebx, dword [ebp - 0x1c]
jl 0x807b533
mov dword [ebp - 0x64], esi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [ebp - 4], ecx
je 0x807b57d
mov eax, dword [eax + 0x3bc]
add eax, dword [ebp - 0x178]
lea esi, [ebp - 0x168]
jmp 0x807d23e
cmp dword [eax + 0x3d0], ecx
jne 0x807e77a
mov eax, dword [eax + 0x344]
lea esi, [ebp - 0x168]
jmp 0x807d23c
and esi, 0xfffffffc
cmp esi, 8
jne case.0x807b404.0
cmp dword [ebp - 0x190], 0
je 0x807e77a
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
lea eax, [ebp - 0x178]
push edi
push dword [ebp - 0x60]
call fcn.0807a6d7
add esp, 0xc
cmp dword [0x8232f0c], 0
je 0x807e77a
push 2
pop eax
cmp dword [0x8232f48], eax
je 0x807e77a
mov dword [0x8232f48], eax
or dword [ebx + 0x10], 0x2000
jmp 0x807b0db
and dword [0x8232f08], 0
jmp case.0x807b404.3
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
cmp esi, 1
jl case.0x807b404.0
jne 0x807b62c
mov eax, dword [ebp - 0x178]
and dword [ebp - 0x160], 0
jmp 0x807ce56
cmp esi, 2
jne case.0x807b404.0
cmp word [edi + 0x3fe], si
jne case.0x807b404.0
mov eax, dword [ebp - 0x174]
and dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], eax
jmp 0x807d14e
xor ebx, ebx
inc ebx
jmp 0x807b661
xor ebx, ebx
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
cmp esi, 1
jl case.0x807b404.0
xor edi, edi
test esi, esi
jle 0x807e776
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
test ebx, ebx
je 0x807b697
xor ebx, ebx
add eax, dword [ebp + edi*4 - 0x178]
mov dword [ebp - 0x10], eax
jmp 0x807b6a4
xor ebx, ebx
inc ebx
add ecx, dword [ebp + edi*4 - 0x178]
mov dword [ebp - 0xc], ecx
cmp dword [0x8232f48], 0
jne 0x807b6d1
push ecx
push eax
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add esp, 0x10
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ecx
jmp 0x807b725
cmp dword [0x8232f20], 0x8078699
je 0x807b6ec
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x10]
push eax
call dword [ebp - 0x40]
pop ecx
pop ecx
jmp 0x807b710
test ebx, ebx
je 0x807b700
mov edx, dword [0x8232f04]
call fcn.0807744c
mov dword [ebp - 0x38], eax
jmp 0x807b710
mov edx, dword [0x8232f4c]
mov ecx, eax
call fcn.0807744c
mov dword [ebp - 0x3c], eax
push dword [ebp - 0x30]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 8]
mov eax, dword [ebp - 0x10]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
inc edi
cmp edi, esi
jl 0x807b685
jmp 0x807e776
lea eax, [ebp - 0x178]
cmp esi, eax
jne case.0x807b404.0
cmp dword [0x8232f48], 0
jne 0x807b769
push dword [ebp - 0x240]
push dword [ebp - 0x244]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.08078fe1
add esp, 0x10
jmp 0x807e77a
cmp dword [ebp - 0x44], 0
jne 0x807dcbb
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
call dword [eax + 0x10]
jmp 0x807dcba
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
movsx edi, word [esi - 2]
mov eax, dword [ebp - 0x14]
add edi, dword [eax + 0x364]
sub esi, 4
cmp edi, dword [eax + 0x368]
jge case.0x807b404.0
test edi, edi
jl case.0x807b404.0
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x14]
mov cl, byte [ecx + 0x22]
mov dword [ebp - 4], 5
jmp 0x807b81a
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
movsx edi, word [esi - 2]
mov eax, dword [ebp - 0x14]
add edi, dword [eax + 0x35c]
sub esi, 4
cmp edi, dword [eax + 0x308]
jge case.0x807b404.0
test edi, edi
jl case.0x807b404.0
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 4]
and dword [ebp - 4], 0
mov cl, byte [ecx + 0x20]
cmp dword [ebp - 0x78], 0xa
mov dword [ebp - 0x1c], edx
je case.0x807b404.0
mov ebx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x28]
imul ebx, ebx, 0x14
lea ebx, [ebp + ebx - 0x354]
sub edx, dword [ebx]
inc dword [ebp - 0x78]
mov dword [ebx + 4], edx
mov edx, dword [ebp - 0x28]
mov dword [ebx + 0xc], edx
add ebx, 0x14
test eax, eax
je 0x807b8b4
cmp cl, 4
jne 0x807b86f
lea ecx, [eax + edi*4]
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
shl edx, 8
add eax, edx
movzx edx, byte [ecx + 2]
movzx ecx, byte [ecx + 3]
shl eax, 8
add eax, edx
jmp 0x807b89c
cmp cl, 3
jne 0x807b88d
mov ecx, edi
imul ecx, ecx, 3
add ecx, eax
movzx edx, byte [ecx]
movzx eax, byte [ecx + 1]
movzx ecx, byte [ecx + 2]
shl edx, 8
add eax, edx
jmp 0x807b89c
cmp cl, 2
jne 0x807b8a3
lea ecx, [eax + edi*2]
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl eax, 8
add eax, ecx
jmp 0x807b8b0
cmp cl, 1
jne 0x807b8ae
movzx eax, byte [eax + edi]
jmp 0x807b8b0
xor eax, eax
test eax, eax
jne 0x807b8f5
mov eax, dword [ebp - 0x4c]
mov dword [eax + 0x1c], edi
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x807b8ee
push 0xa
lea eax, [ebp - 0x348]
pop edx
and dword [eax], 0
add eax, 0x14
dec edx
jne 0x807b8cd
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
push dword [ebp - 0x4c]
push dword [ebp - 4]
call ecx
add esp, 0xc
test eax, eax
mov dword [ebp - 0x28], eax
jne 0x807b8fd
push 0xfffffffffffffff5
jmp 0x807bb63
mov ecx, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx], eax
mov eax, dword [ebp - 4]
mov dword [ebx + 8], edi
mov dword [ebx + 0x10], eax
mov ebx, dword [ebp - 0x20]
jmp case.0x807b455.2
cmp dword [ebp - 0x78], 0
jle case.0x807b404.0
dec dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
imul eax, eax, 0x14
lea eax, [ebp + eax - 0x354]
mov edx, dword [eax + 0xc]
test edx, edx
mov ecx, dword [eax + 8]
mov dword [ebp - 4], eax
mov dword [ebp - 0x28], edx
jne case.0x807b455.2
mov edx, dword [eax + 0x10]
test edx, edx
jne 0x807b9d7
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 8]
test edi, edi
je 0x807bb01
mov al, byte [eax + 0x20]
cmp al, 4
jne 0x807b982
lea edx, [edi + ecx*4]
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
shl edi, 8
add eax, edi
movzx edi, byte [edx + 2]
movzx edx, byte [edx + 3]
shl eax, 8
add eax, edi
shl eax, 8
jmp 0x807b9b4
cmp al, 3
jne 0x807b9a3
mov eax, ecx
imul eax, eax, 3
lea edx, [eax + edi]
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
movzx edx, byte [edx + 2]
shl edi, 8
add eax, edi
shl eax, 8
jmp 0x807b9b4
cmp al, 2
jne 0x807b9b8
lea edx, [edi + ecx*2]
movzx eax, byte [edx + 1]
movzx edx, byte [edx]
shl edx, 8
add eax, edx
jmp 0x807b9c4
cmp al, 1
jne 0x807b9c2
movzx eax, byte [ecx + edi]
jmp 0x807b9c4
xor eax, eax
test eax, eax
je 0x807bb01
mov edx, dword [ebp - 0x4c]
mov edx, dword [edx + 4]
jmp 0x807baf8
cmp edx, 5
jne 0x807ba6b
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 0x18]
test edi, edi
je 0x807bb01
mov al, byte [eax + 0x22]
cmp al, 4
jne 0x807ba16
lea edx, [edi + ecx*4]
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
shl edi, 8
add eax, edi
movzx edi, byte [edx + 2]
movzx edx, byte [edx + 3]
shl eax, 8
add eax, edi
shl eax, 8
jmp 0x807ba48
cmp al, 3
jne 0x807ba37
mov eax, ecx
imul eax, eax, 3
lea edx, [eax + edi]
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
movzx edx, byte [edx + 2]
shl edi, 8
add eax, edi
shl eax, 8
jmp 0x807ba48
cmp al, 2
jne 0x807ba4c
lea edx, [edi + ecx*2]
movzx eax, byte [edx + 1]
movzx edx, byte [edx]
shl edx, 8
add eax, edx
jmp 0x807ba58
cmp al, 1
jne 0x807ba56
movzx eax, byte [ecx + edi]
jmp 0x807ba58
xor eax, eax
test eax, eax
je 0x807bb01
mov edx, dword [ebp - 0x4c]
mov edx, dword [edx + 0x14]
jmp 0x807baf8
cmp edx, 1
jne 0x807ba7a
mov edx, dword [ebp - 0x4c]
mov edx, dword [edx]
jmp 0x807bafd
mov eax, dword [ebp - 0x4c]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x807bb01
mov al, byte [eax + 0x21]
cmp al, 4
jne 0x807baac
lea edx, [edi + ecx*4]
movzx eax, byte [edx]
movzx edi, byte [edx + 1]
shl eax, 8
add eax, edi
movzx edi, byte [edx + 2]
movzx edx, byte [edx + 3]
shl eax, 8
add eax, edi
shl eax, 8
jmp 0x807bade
cmp al, 3
jne 0x807bacd
mov eax, ecx
imul eax, eax, 3
lea edx, [eax + edi]
movzx edi, byte [edx]
movzx eax, byte [edx + 1]
movzx edx, byte [edx + 2]
shl edi, 8
add eax, edi
shl eax, 8
jmp 0x807bade
cmp al, 2
jne 0x807bae2
lea edi, [edi + ecx*2]
movzx edx, byte [edi]
movzx eax, byte [edi + 1]
shl edx, 8
add eax, edx
jmp 0x807baee
cmp al, 1
jne 0x807baec
movzx eax, byte [ecx + edi]
jmp 0x807baee
xor eax, eax
test eax, eax
je 0x807bb01
mov edx, dword [ebp - 0x4c]
mov edx, dword [edx + 0xc]
add edx, eax
mov eax, dword [ebp - 4]
test edx, edx
jne 0x807bb46
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x5c]
mov dword [edx + 0x1c], ecx
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x807b8ee
push 0xa
lea eax, [ebp - 0x348]
pop edi
and dword [eax], 0
add eax, 0x14
dec edi
jne 0x807bb1e
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
mov eax, dword [ebp - 4]
push edx
push dword [eax + 0x10]
call ecx
mov edx, eax
add esp, 0xc
test edx, edx
je 0x807b8ee
mov eax, dword [ebp - 4]
mov dword [eax], edx
add edx, dword [eax + 4]
mov dword [ebp - 0x28], edx
jmp case.0x807b455.2
lea eax, [ebp - 0x178]
cmp esi, eax
je 0x807e77a
push 0xfffffffffffffff8
pop eax
mov ecx, dword [ebp + 0x60]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.08047f9e
add ebp, 0x64
leave
ret
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x18
jne case.0x807b404.0
cmp dword [ebp - 0x18c], 0
je 0x807e77a
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x48]
push eax
call fcn.0807a66f
jmp 0x807b5c8
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x18
jne case.0x807b404.0
cmp dword [ebp - 0x190], 0
je 0x807e77a
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x60]
push eax
call fcn.0807a5fe
jmp 0x807b5c8
lea eax, [ebp - 0x178]
sub esi, eax
mov eax, esi
sar eax, 2
cmp eax, 5
jne case.0x807b404.0
mov ecx, dword [ebp - 0x2c]
jmp 0x807cd65
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 0x10
jne case.0x807b404.0
mov eax, dword [ebp - 0x170]
jmp 0x807d256
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
xor eax, eax
cmp dword [esi], eax
je 0x807bcb0
jmp 0x807bc63
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
xor eax, eax
cmp dword [esi], eax
jne 0x807bc68
cmp dword [esi - 4], eax
je 0x807bcb0
xor eax, eax
inc eax
jmp 0x807bcb0
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
sub eax, dword [esi - 4]
neg eax
sbb eax, eax
inc eax
jmp 0x807bcb0
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
xor eax, eax
cmp dword [esi - 4], eax
sete al
shl eax, 0x10
jmp 0x807be9b
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
neg dword [esi - 4]
jmp case.0x807b455.2
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
push dword [esi - 4]
call sub.MSVCR80.dll_labs
jmp 0x807be9a
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
push dword [esi - 4]
call fcn.08002866
add eax, 0x40
sar eax, 7
and eax, 0x1ffffff
jmp 0x807be9a
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
sub esi, 4
jmp case.0x807b455.2
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
movsx eax, word [esi - 2]
test eax, eax
jge 0x807bd65
xor eax, eax
mov ecx, eax
shl ecx, 2
mov edx, esi
sub edx, ecx
sub edx, 8
lea ecx, [ebp - 0x178]
cmp edx, ecx
jb case.0x807b404.0
lea eax, [eax*4 + 8]
mov ecx, esi
sub ecx, eax
mov eax, dword [ecx]
jmp 0x807be9b
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
movsx eax, word [esi - 2]
sub esi, 4
movsx ecx, word [esi - 2]
sub esi, 4
test ecx, ecx
jl case.0x807b404.0
mov edx, ecx
shl edx, 2
mov dword [ebp - 4], esi
sub dword [ebp - 4], edx
lea edx, [ebp - 0x178]
cmp dword [ebp - 4], edx
jb case.0x807b404.0
test ecx, ecx
je case.0x807b455.2
cdq
idiv ecx
test edx, edx
jge 0x807be1b
lea edi, [ecx - 1]
neg edx
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x18], edx
test edi, edi
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
jle 0x807be0e
mov dword [ebp - 0x1c], edi
dec dword [ebp - 0x1c]
lea edx, [eax + 4]
mov edi, dword [edx]
mov dword [eax], edi
mov eax, edx
jne 0x807bdfd
mov edi, dword [ebp - 0x24]
dec dword [ebp - 0x18]
mov dword [esi - 4], ecx
jne 0x807bdf1
jmp case.0x807b455.2
jle case.0x807b455.2
dec ecx
mov dword [ebp - 0x24], ecx
lea eax, [esi - 4]
mov dword [ebp - 0x18], edx
test ecx, ecx
mov edx, dword [eax]
mov dword [ebp - 0xa0], edx
jle 0x807be4d
mov edx, eax
mov dword [ebp - 0x1c], ecx
dec dword [ebp - 0x1c]
lea ecx, [edx - 4]
mov edi, dword [ecx]
mov dword [edx], edi
mov edx, ecx
jne 0x807be3c
mov ecx, dword [ebp - 0x24]
dec dword [ebp - 0x18]
mov edx, dword [ebp - 0xa0]
mov edi, dword [ebp - 4]
mov dword [edi], edx
jne 0x807be2b
jmp case.0x807b455.2
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
cmp dword [ebp - 0x1fc], 0
mov eax, dword [esi]
je 0x807be90
sar eax, 0x10
and dword [ebp - 0x1fc], 0
push eax
push dword [esi - 4]
call fcn.0800281d
pop ecx
pop ecx
mov dword [esi - 4], eax
jmp case.0x807b455.2
cmp dword [ebp - 0x200], 9
jne case.0x807b404.0
cmp edi, 3
jne case.0x807b404.0
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 0xc
jne case.0x807b404.0
sub esi, 4
mov ecx, dword [esi]
sub ecx, dword [ebp - 0x228]
sub esi, 4
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x1ec], ecx
mov eax, dword [esi]
sub eax, dword [ebp - 0x22c]
add eax, dword [ebp - 0x48]
sub esi, 4
mov dword [ebp - 0x1f0], eax
mov edi, dword [esi]
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x19c], ecx
jmp 0x807cc4f
and dword [ebp - 0x200], 0
mov dword [ebp - 0x224], 1
jmp case.0x807b455.2
cmp edi, 1
jne case.0x807b404.0
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
cmp dword [ebp - 0x68], 3
jge case.0x807b404.0
mov ecx, dword [ebp - 0x68]
sub esi, 4
mov eax, dword [esi]
inc dword [ebp - 0x68]
cmp dword [0x8232f48], 0
mov dword [ebp + ecx*4 - 0x268], eax
jne 0x807bf6c
call fcn.08076fc0
call fcn.08076fd2
and dword [0x8232f08], 0
cmp dword [0x8232f10], 0
je case.0x807b455.2
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x3dc], 0x80000000
mov edi, eax
jmp 0x807b0db
cmp edi, 1
jne case.0x807b404.0
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
cmp dword [ebp - 0x68], 3
jge case.0x807b404.0
mov eax, dword [ebp - 0x68]
and dword [ebp - 0x1fc], 0
sub esi, 4
inc dword [ebp - 0x68]
mov dword [ebp + eax*4 - 0x268], 0x30000
jmp case.0x807b455.2
test edi, edi
jne case.0x807b404.0
cmp dword [ebp - 0x94], 0
je case.0x807b455.2
cmp dword [0x8232f48], 2
jne case.0x807b455.2
cmp dword [0x8232f0c], 0
jne 0x807b90b
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
push dword [eax + 8]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
and dword [0x8232f48], 0
call fcn.08079b2b
mov edi, dword [ebp - 0x14]
pop ecx
jmp 0x807b083
lea eax, [edi - 1]
cmp eax, 0x15
ja case.0x807b404.0
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
sar eax, 2
cmp edi, eax
jne case.0x807b404.0
cmp dword [0x8232f48], 2
jne 0x807c067
imul edi, edi, 0xfffffffc
add esi, edi
jmp case.0x807b455.2
cmp dword [0x8232f18], 0
jne 0x807c0db
mov eax, dword [0x8232f40]
cmp dword [eax + 4], 0xc80
mov eax, dword [eax]
jae 0x807c0cc
test eax, eax
je 0x807c096
mov ecx, dword [0x823de0c]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 8]
pop ecx
pop ecx
mov eax, dword [0x823de0c]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
push 0xc80
push eax
call dword [ecx]
test eax, eax
pop ecx
pop ecx
mov ecx, dword [0x8232f40]
mov dword [ecx], eax
jne 0x807c0c5
and dword [ecx + 4], eax
mov dword [0x8232f48], 2
jmp 0x807c05d
mov dword [ecx + 4], 0xc80
mov dword [0x8232f18], eax
add eax, 0x4b0
mov dword [0x8232f2c], eax
test edi, edi
je 0x807c103
add dword [0x8232f00], edi
mov ecx, dword [0x8232f18]
add dword [0x8232f18], 4
sub esi, 4
mov eax, dword [esi]
dec edi
test edi, edi
mov dword [0x8232f28], eax
mov dword [ecx], eax
jne 0x807c0e5
lea eax, [ebp - 0x178]
cmp esi, eax
jne case.0x807b404.0
cmp dword [ebp - 0x1c], 0xc
je case.0x807b455.2
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
mov eax, dword [ebp - 0x14]
push dword [eax + 0x2b4]
mov eax, dword [ebx]
push dword [eax + 8]
push dword [ebp - 0x228]
push dword [ebp - 0x22c]
call fcn.0807aa21
xor eax, eax
add esp, 0x14
cmp dword [0x8232f0c], eax
mov dword [0x823de00], eax
mov dword [0x8232f18], eax
mov dword [0x8232f48], 3
jne 0x807e858
cmp dword [ebp - 0x6c], eax
jne case.0x807b455.2
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
test eax, eax
je case.0x807b455.2
push dword [ebp - 0x30]
call eax
pop ecx
jmp case.0x807b455.2
push 0x13
pop eax
jmp 0x807c18e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x2b8]
add eax, 0xfffffff3
mov ecx, edx
imul ecx, eax
mov dword [ebp - 0x58], eax
lea eax, [esi + ecx*4]
lea ecx, [ebp - 0x178]
cmp eax, ecx
jb case.0x807b404.0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x58]
add ecx, 0x2bc
jmp 0x807cec7
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
mov eax, dword [ebp - 0x14]
movsx edi, word [esi - 2]
sub esi, 4
cmp dword [eax + 0x358], 0
jne 0x807c23e
mov ecx, dword [eax + 0x360]
cmp ecx, 0xffff
ja 0x807eab5
cmp ecx, 1
jb 0x807eab5
mov edx, dword [ebp - 0x5c]
mov edx, dword [edx + 0x18]
mov edx, dword [edx]
cmp dword [edx], 0
je 0x807c231
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
shl ecx, 2
push ecx
push eax
call dword [edx]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0x358], eax
mov eax, ecx
cmp dword [eax + 0x358], 0
je 0x807adde
mov ecx, dword [eax + 0x2b8]
lea edx, [ecx + edi]
cmp edx, dword [eax + 0x360]
ja case.0x807b404.0
and dword [ebp - 0x24], 0
test ecx, ecx
jbe 0x807c28c
mov ecx, edi
lea edx, [eax + 0x2bc]
shl ecx, 2
mov dword [ebp - 4], edx
mov edi, dword [ebp - 4]
mov edx, dword [eax + 0x358]
mov edi, dword [edi]
inc dword [ebp - 0x24]
add dword [ebp - 4], 4
mov dword [ecx + edx], edi
mov edx, dword [ebp - 0x24]
add ecx, 4
cmp edx, dword [eax + 0x2b8]
jb 0x807c269
and dword [ebp - 0x58], 0
jmp case.0x807b455.2
mov dword [ebp - 0x58], 1
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
sub esi, 4
add dword [esi], eax
jmp 0x807e533
mov dword [ebp - 0x58], 1
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
sub esi, 4
sub dword [esi], eax
jmp 0x807e533
mov dword [ebp - 0x58], 1
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
sub esi, 4
push dword [esi]
push eax
call fcn.0800277c
jmp 0x807c34a
mov dword [ebp - 0x58], 1
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
sub esi, 4
mov ecx, dword [esi]
push eax
push ecx
call fcn.0800281d
pop ecx
pop ecx
jmp 0x807e531
and dword [ebp - 0x58], 0
mov edi, dword [ebp - 0x14]
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
sub esi, 4
mov ecx, dword [esi]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edi + 0x358]
sar eax, 0x10
test ecx, ecx
mov dword [ebp - 0xa0], eax
jne 0x807c3de
mov ecx, dword [edi + 0x360]
cmp ecx, 0xffff
ja 0x807eab5
cmp ecx, 1
jb 0x807eab5
mov edx, dword [ebp - 0x5c]
mov eax, dword [edx + 0x18]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x807c3ca
mov eax, dword [edx + 0x18]
mov edx, dword [eax]
shl ecx, 2
push ecx
push eax
call dword [edx]
pop ecx
pop ecx
mov dword [edi + 0x358], eax
mov ecx, dword [edi + 0x358]
test ecx, ecx
je 0x807adde
mov eax, dword [ebp - 0xa0]
cmp eax, dword [edi + 0x360]
jae case.0x807b404.0
mov edx, dword [ebp - 0x1c]
mov dword [ecx + eax*4], edx
jmp case.0x807b455.2
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x58], 1
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
movsx ecx, word [esi - 2]
mov eax, dword [edi + 0x358]
sub esi, 4
test eax, eax
mov dword [ebp - 0xa0], ecx
jne 0x807c47f
mov edx, dword [edi + 0x360]
cmp edx, 0xffff
ja 0x807eab5
cmp edx, 1
jb 0x807eab5
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x807c471
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
shl edx, 2
push edx
push eax
call dword [ecx]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xa0]
mov dword [edi + 0x358], eax
mov eax, dword [edi + 0x358]
test eax, eax
je 0x807adde
cmp ecx, dword [edi + 0x360]
jae case.0x807b404.0
mov eax, dword [eax + ecx*4]
jmp 0x807e531
mov dword [ebp - 0x58], 1
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 0x10
jl case.0x807b404.0
push 4
pop eax
sub esi, eax
mov edx, dword [esi]
sub esi, eax
mov edi, dword [esi]
sub esi, eax
mov ecx, dword [esi]
sub esi, eax
cmp edi, edx
jle 0x807c4c7
mov dword [esi], ecx
add esi, eax
jmp case.0x807b455.2
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x58], 1
lea eax, [ebp - 0xb8]
cmp esi, eax
jae case.0x807b404.0
lea ecx, [edi + 0x338]
mov eax, dword [ecx]
imul eax, eax, 0x41c64e6d
add eax, 0x3039
mov dword [ecx], eax
sar eax, 0x10
and eax, 0xffff
inc eax
jne 0x807c507
inc eax
mov dword [esi], eax
add esi, 4
or dword [ebx + 0x10], 0x100
jmp case.0x807b455.2
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
lea eax, [ebp - 0xb8]
cmp esi, eax
jae case.0x807b404.0
mov eax, dword [esi - 4]
jmp 0x807e531
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
mov eax, dword [esi - 4]
mov ecx, dword [esi - 8]
mov dword [esi - 4], ecx
mov dword [esi - 8], eax
jmp case.0x807b455.2
cmp dword [ebp - 0x58], 0
jle 0x807c579
dec dword [ebp - 0x58]
jmp case.0x807b455.2
cmp dword [ebp - 0x68], 0
jle case.0x807b404.0
lea eax, [ebp - 0xb8]
cmp esi, eax
jae case.0x807b404.0
dec dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp + eax*4 - 0x268]
jmp 0x807e531
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jl case.0x807b404.0
sub esi, 4
mov eax, dword [esi]
mov dword [ebp - 0xc], eax
mov eax, dword [esi - 4]
mov dword [ebp - 0x10], eax
jmp 0x807e77a
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 0xc
jl case.0x807b404.0
movsx ecx, word [esi - 2]
sub esi, 4
movsx edx, word [esi - 2]
sub esi, 4
movsx eax, word [esi - 2]
sub esi, 4
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x358]
test eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], edx
jne 0x807c662
mov eax, dword [edi + 0x360]
cmp eax, 0xffff
ja 0x807eab5
cmp eax, 1
jb 0x807eab5
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x807c654
mov ecx, dword [edi + 0x360]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov edx, dword [eax]
shl ecx, 2
push ecx
push eax
call dword [edx]
mov edx, dword [ebp - 0x24]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x358], eax
mov eax, dword [edi + 0x358]
test eax, eax
je 0x807adde
cmp dword [ebp - 4], 3
ja case.0x807b455.2
test edx, edx
jl case.0x807b455.2
add edx, ecx
cmp edx, dword [edi + 0x360]
jg case.0x807b455.2
mov edx, dword [ebp - 4]
cmp ecx, dword [edi + edx*8 + 0x38c]
jg case.0x807b455.2
mov ecx, dword [ebp - 0x1c]
shl ecx, 2
push ecx
mov ecx, edx
push dword [edi + ecx*8 + 0x390]
mov ecx, dword [ebp - 0x24]
jmp 0x807c79c
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 0x10
jl case.0x807b404.0
push 4
pop eax
sub esi, eax
movsx ecx, word [esi + 2]
sub esi, eax
movsx edx, word [esi + 2]
sub esi, eax
mov dword [ebp - 0x24], edx
movsx edx, word [esi + 2]
sub esi, eax
movsx eax, word [esi + 2]
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x358]
test eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edx
jne 0x807c741
mov edx, dword [edi + 0x360]
cmp edx, 0xffff
ja 0x807eab5
cmp edx, 1
jb 0x807eab5
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x807c733
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
shl edx, 2
push edx
push eax
call dword [ecx]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edi + 0x358], eax
mov eax, dword [edi + 0x358]
test eax, eax
je 0x807adde
cmp dword [ebp - 4], 3
ja case.0x807b455.2
mov edx, dword [ebp - 0x24]
test edx, edx
jl case.0x807b455.2
add edx, ecx
cmp edx, dword [edi + 0x360]
jg case.0x807b455.2
mov edx, dword [ebp - 0x18]
test edx, edx
jl case.0x807b455.2
add edx, ecx
mov ecx, dword [ebp - 4]
cmp edx, dword [edi + ecx*8 + 0x38c]
jg case.0x807b455.2
mov ecx, dword [ebp - 0x1c]
shl ecx, 2
push ecx
mov ecx, dword [ebp - 0x24]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [edi + eax*8 + 0x390]
lea eax, [eax + ecx*4]
push eax
call dword [sym.imp.MSVCR80.dll_memmove]
add esp, 0xc
jmp case.0x807b455.2
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x34
jne case.0x807b404.0
mov ecx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x10]
add eax, ecx
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x1d8], eax
add eax, ecx
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x1d0], eax
add eax, ecx
mov ecx, dword [ebp - 0x160]
mov edi, dword [ebp - 0x148]
mov dword [ebp - 0x1c8], eax
add eax, ecx
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x1b8], eax
add eax, ecx
mov ecx, dword [ebp - 0x150]
mov dword [ebp - 0x1b0], eax
add eax, ecx
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0x1d4], ecx
add ecx, edx
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x1cc], ecx
add ecx, edx
mov edx, dword [ebp - 0x15c]
mov dword [ebp - 0x1c4], ecx
add ecx, edx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x1b4], ecx
add ecx, edx
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x1ac], ecx
add edx, ecx
jmp 0x807cab4
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x2c
jne case.0x807b404.0
mov ecx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x10]
add eax, ecx
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x1d8], eax
add eax, ecx
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0x1d0], eax
add eax, ecx
mov ecx, dword [ebp - 0x160]
mov dword [ebp - 0x1c8], eax
add eax, ecx
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x1b8], eax
add eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x174]
add eax, ecx
mov dword [ebp - 0x1d4], eax
add eax, edx
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0x1cc], eax
add eax, edx
mov edx, dword [ebp - 0x15c]
mov dword [ebp - 0x1c4], eax
add eax, edx
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x1b4], eax
add eax, edx
mov dword [ebp - 0x1ac], eax
sub eax, ecx
push eax
call sub.MSVCR80.dll_labs
mov esi, eax
mov eax, dword [ebp - 0x1b0]
sub eax, dword [ebp - 0x10]
push eax
call sub.MSVCR80.dll_labs
cmp eax, esi
pop ecx
pop ecx
jle 0x807c950
mov eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x1b0]
add ecx, eax
mov eax, dword [ebp - 0xc]
jmp 0x807caa7
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x150]
lea edx, [ecx + eax]
mov eax, dword [ebp - 0xc]
jmp 0x807caaf
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x1c
jne case.0x807b404.0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x170]
mov esi, dword [ebp - 0x178]
add ecx, eax
mov dword [ebp - 0x1b4], ecx
mov dword [ebp - 0x1c4], ecx
mov dword [ebp - 0x1cc], ecx
mov ecx, dword [ebp - 0x10]
add ecx, esi
mov esi, dword [ebp - 0x174]
mov dword [ebp - 0x1d8], ecx
add ecx, esi
mov esi, dword [ebp - 0x16c]
mov dword [ebp - 0x1d0], ecx
add ecx, esi
mov esi, dword [ebp - 0x168]
mov dword [ebp - 0x1c8], ecx
add ecx, esi
mov esi, dword [ebp - 0x164]
mov dword [ebp - 0x1b8], ecx
add ecx, esi
mov esi, dword [ebp - 0x160]
add esi, ecx
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1b0], ecx
mov dword [ebp - 0x1a8], esi
jmp 0x807caad
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 0x24
jne case.0x807b404.0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x174]
mov esi, dword [ebp - 0x16c]
add ecx, eax
mov dword [ebp - 0x1d4], ecx
add ecx, esi
mov esi, dword [ebp - 0x15c]
add esi, ecx
mov dword [ebp - 0x1cc], ecx
mov dword [ebp - 0x1c4], ecx
mov dword [ebp - 0x1b4], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1ac], esi
mov esi, dword [ebp - 0x178]
add ecx, esi
mov esi, dword [ebp - 0x170]
mov dword [ebp - 0x1d8], ecx
add ecx, esi
mov esi, dword [ebp - 0x168]
mov dword [ebp - 0x1d0], ecx
add ecx, esi
mov esi, dword [ebp - 0x164]
mov dword [ebp - 0x1c8], ecx
add ecx, esi
mov esi, dword [ebp - 0x160]
mov dword [ebp - 0x1b8], ecx
add ecx, esi
mov esi, dword [ebp - 0x158]
mov dword [ebp - 0x1b0], ecx
add ecx, esi
mov dword [ebp - 0x1a8], ecx
mov edx, eax
mov edi, 0x320000
mov dword [ebp - 0x1a4], edx
sub edx, eax
push edx
call sub.MSVCR80.dll_labs
mov esi, eax
mov eax, dword [ebp - 0x1a8]
sub eax, dword [ebp - 0x10]
push eax
call sub.MSVCR80.dll_labs
mov edx, dword [ebp - 0x1c8]
pop ecx
cmp eax, esi
mov esi, dword [ebp - 0x1c4]
pop ecx
jge 0x807caec
mov eax, dword [ebp - 0x10]
mov ecx, esi
jmp 0x807caf1
mov ecx, dword [ebp - 0xc]
mov eax, edx
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e0], eax
mov eax, dword [ebp - 0x1a8]
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebp - 0x1a4]
push eax
mov dword [ebp - 0x1bc], esi
mov esi, dword [ebp - 0x40]
push eax
mov dword [ebp - 0x1c0], edx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0xc], ecx
call esi
lea eax, [ebp - 0x1e0]
push eax
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
call dword [0x823e030]
lea eax, [ebp - 0x1d8]
push eax
push eax
call esi
lea eax, [ebp - 0x1d8]
push eax
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
call dword [0x823e030]
lea eax, [ebp - 0x1d0]
push eax
push eax
call esi
lea eax, [ebp - 0x1d0]
push eax
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
call dword [0x823e030]
lea eax, [ebp - 0x1c0]
push eax
push eax
call esi
add esp, 0x44
lea eax, [ebp - 0x1c0]
push eax
push dword [ebp - 0x1bc]
push dword [ebp - 0x1c0]
call dword [0x823e030]
lea eax, [ebp - 0x1b8]
push eax
push eax
call esi
lea eax, [ebp - 0x1b8]
push eax
push dword [ebp - 0x1b4]
push dword [ebp - 0x1b8]
call dword [0x823e030]
lea eax, [ebp - 0x1b0]
push eax
push eax
call esi
lea eax, [ebp - 0x1b0]
push eax
push dword [ebp - 0x1ac]
push dword [ebp - 0x1b0]
call dword [0x823e030]
lea eax, [ebp - 0x1a8]
push eax
push eax
call esi
lea eax, [ebp - 0x1a8]
push eax
push dword [ebp - 0x1a4]
push dword [ebp - 0x1a8]
call dword [0x823e030]
mov eax, dword [ebp - 0x1e0]
add esp, 0x48
lea esi, [ebp - 0x178]
mov dword [ebp - 0x1f0], eax
mov ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1ec], ecx
and dword [ebp - 0x58], 0
xor edx, edx
cmp dword [0x8232f48], edx
je 0x807ccd7
cmp dword [ebp - 0x25c], edx
jne 0x807cca1
cmp dword [ebp - 0x94], edx
je 0x807cca1
push dword [0x8232f3c]
mov eax, dword [ebp - 0x14]
push dword [0x823ddf4]
push dword [eax + 4]
mov eax, dword [ebp - 0x34]
push dword [ebp - 0x30]
push dword [eax + 0xc]
push dword [eax + 8]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1e8]
push edi
push eax
call fcn.08066b7f
add esp, 0x24
jmp 0x807ccbd
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push dword [eax + 0xc]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1e8]
push eax
call fcn.080671ac
add esp, 0x10
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1ec], ecx
xor edx, edx
mov dword [ebp - 0x268], ecx
mov dword [ebp - 0x264], eax
mov dword [ebp - 0x68], 2
mov dword [ebp - 0x224], edx
mov dword [ebp - 0x44], edx
jmp case.0x807b455.2
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 8
jne case.0x807b404.0
mov eax, dword [ebp - 0x174]
and dword [ebp - 0x174], 0
and dword [ebp - 0x16c], 0
jmp 0x807d250
mov ecx, dword [ebp - 0x2c]
test byte [ecx], 0x80
je 0x807cd36
or dword [ebx + 0x10], 0x200
test word [ecx], 0x400
jne 0x807eabd
cmp word [edi + 0x3fe], 2
jne 0x807ce02
mov eax, esi
lea edx, [ebp - 0x178]
sub eax, edx
sar eax, 2
cmp eax, 1
jle 0x807ce02
or dword [ecx], 0x80
test byte [ecx], 0x18
jne case.0x807b404.0
cmp word [edi + 0x3fe], 2
jne 0x807e86e
cmp eax, 5
jne 0x807cdb3
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x174]
jmp 0x807cde4
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x178]
or dword [ebp - 0x178], 0xffffffff
cmp dword [edi + 0x3d0], 0
mov dword [ebp - 0x168], eax
lea esi, [ebp - 0x158]
jne 0x807e89d
jmp 0x807d154
cmp dword [edi + 0x3d0], 0
jne 0x807e8f4
lea eax, [ebp - 0x178]
cmp esi, eax
jne 0x807ce20
or dword [ebp - 0x178], 0xffffffff
lea esi, [ebp - 0x164]
jmp 0x807d154
lea eax, [ebp - 0x178]
sub esi, eax
and esi, 0xfffffffc
cmp esi, 8
jne case.0x807b404.0
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x48]
add eax, ecx
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x174]
or dword [ebp - 0x178], 0xffffffff
mov dword [ebp - 0x15c], eax
jmp 0x807d14e
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jl case.0x807b404.0
mov ecx, dword [edi + 0x2b8]
sub esi, 4
cmp ecx, 2
mov dword [ebp - 0xa0], ecx
jb case.0x807b404.0
cmp ecx, 0x10
ja case.0x807b404.0
lea eax, [ebp - 0x178]
mov edx, esi
sub edx, eax
movsx eax, word [esi + 2]
imul ecx, eax
sar edx, 2
cmp edx, ecx
jl case.0x807b404.0
mov edx, dword [ebp - 0xa0]
lea ecx, [edi + 0x2bc]
push esi
call fcn.08077e97
pop ecx
mov esi, eax
jmp case.0x807b455.2
mov eax, esi
lea ecx, [ebp - 0x178]
sub eax, ecx
and eax, 0xfffffffc
cmp eax, 0x18
jne case.0x807b404.0
mov eax, dword [ebp - 0x16c]
sub dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x170]
sub dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x174]
sub dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x178]
sub dword [ebp - 0x170], eax
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x10]
add dword [ebp - 0x178], eax
jmp case.0x807b404.8
lea eax, [ebp - 0x178]
cmp esi, eax
je 0x807d46d
mov dword [ebp - 0x210], 1
jmp case.0x807b404.3
lea eax, [ebp - 0x178]
cmp esi, eax
je 0x807d037
mov dword [ebp - 0x204], 1
lea eax, [ebp - 0x178]
sub esi, eax
cmp word [edi + 0x3fe], 2
jne 0x807d07f
sar esi, 2
mov eax, esi
and eax, 1
xor ebx, ebx
cmp esi, 2
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0xa0], eax
jl case.0x807b404.0
xor ecx, ecx
test eax, eax
setne cl
cmp ecx, esi
mov dword [ebp - 4], ecx
jge 0x807cffa
mov edi, dword [ebp - 0x1c]
sub edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xb0]
add eax, ecx
dec edi
shr edi, 1
inc edi
push edi
lea ecx, [ebp + eax]
push ebx
push ecx
lea esi, [ebp + eax*8 - 0x650]
call sub.MSVCR80.dll_memset
mov ecx, dword [ebp - 4]
add esp, 0xc
add dword [ebp - 0xb0], edi
add ebx, dword [ebp + ecx*4 - 0x178]
mov eax, dword [ebp + ecx*4 - 0x174]
mov dword [esi - 4], ebx
mov dword [esi], eax
add ebx, eax
add esi, 8
inc ecx
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x807cfdb
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp dword [ebp - 0xa0], ecx
jne 0x807b566
cmp dword [eax + 0x3d0], ecx
jne 0x807d01e
mov eax, dword [eax + 0x344]
jmp 0x807b572
cmp dword [ebp - 0x210], ecx
jne 0x807d46d
cmp dword [ebp - 0x204], 0
je 0x807e77a
mov edi, dword [ebp - 0x14]
xor edx, edx
cmp dword [edi + 0x3d8], edx
mov dword [ebp - 0x204], edx
mov dword [ebp - 0x24], edx
jne 0x807d053
mov dword [ebp - 0x230], edx
mov ecx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0x64]
add ecx, esi
xor eax, eax
cmp ecx, edx
mov byte [ebp - 5], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], ecx
jle 0x807e77a
xor esi, esi
mov ebx, 0xc80
inc esi
jmp 0x807d77f
and esi, 0xfffffffc
cmp esi, 8
jne case.0x807b404.0
cmp dword [ebp - 0x18c], 0
je 0x807e77a
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x48]
call fcn.0807a7e8
pop ecx
pop ecx
jmp 0x807b5cb
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
cmp esi, 2
jne 0x807d0ce
mov eax, dword [ebp - 0x178]
jmp 0x807ce4a
cmp esi, 3
jne case.0x807b404.0
cmp word [edi + 0x3fe], 2
jne case.0x807b404.0
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x15c], eax
jmp 0x807d14e
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
cmp esi, 1
jne 0x807d125
mov eax, dword [ebp - 0x178]
and dword [ebp - 0x15c], 0
or dword [ebp - 0x178], 0xffffffff
jmp 0x807d148
cmp esi, 2
jne case.0x807b404.0
cmp word [edi + 0x3fe], si
jne case.0x807b404.0
mov eax, dword [ebp - 0x174]
and dword [ebp - 0x15c], 0
mov dword [ebp - 0x160], eax
lea esi, [ebp - 0x154]
cmp dword [edi + 0x3d8], 0
je 0x807d1cb
cmp dword [0x8232f48], 0
jne 0x807d1cb
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
mov eax, dword [ebx]
push dword [0x8232eec]
push dword [0x8232ef0]
push dword [eax + 8]
push dword [0x823ddf8]
call fcn.0806b46b
add esp, 0x14
test eax, eax
je 0x807ea48
xor ecx, ecx
cmp dword [0x8232f0c], ecx
mov dword [0x8232f48], 3
mov dword [0x823de00], ecx
mov dword [0x8232f18], ecx
jne 0x807ea52
cmp dword [ebp - 0x6c], ecx
jne 0x807d1cb
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp eax, ecx
je 0x807d1cb
push dword [ebp - 0x30]
call eax
pop ecx
cmp dword [edi + 0x3d0], 0
jne 0x807d3c8
cmp dword [ebp - 0x178], 0xffffffff
jne 0x807d22d
mov eax, dword [ebp - 0x20]
test word [eax + 0xc], 0x1000
mov ecx, dword [ebp - 0x14]
je 0x807d20b
mov edx, dword [ecx + 0x348]
mov ecx, dword [ecx + 0x340]
xor eax, eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x16c], edx
jmp 0x807d24a
mov eax, dword [ecx + 0x344]
mov ecx, dword [ecx + 0x33c]
and dword [ebp - 0x174], 0
and dword [ebp - 0x16c], 0
mov dword [ebp - 0x178], ecx
jmp 0x807d250
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3bc]
add eax, dword [ebp - 0x178]
xor ecx, ecx
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x170], eax
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x16c]
mov dword [ecx + 0x3d0], 1
mov ecx, dword [ebp - 0x178]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x22c], ecx
mov ecx, dword [ebp - 0x174]
mov edi, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x228], ecx
mov ecx, dword [eax + 0x10]
dec ecx
je 0x807d2da
dec ecx
je 0x807d2c3
dec ecx
dec ecx
jne 0x807d2ef
mov ebx, dword [eax + 0xc]
push ebx
mov eax, 0x17cfffff
call fcn.08079c77
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
push eax
mov eax, 0x7d00000
call fcn.08079c77
pop ecx
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
push eax
mov eax, 0x7d00000
call fcn.08079c77
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov edi, dword [eax + 8]
push edi
mov eax, 0x17cfffff
call fcn.08079c77
pop ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
or eax, 0xffffffef
inc eax
mov dword [ebp - 0x48], edx
je 0x807d31d
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 4]
mov dword [eax], edx
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], edx
mov eax, dword [ecx + 4]
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
add eax, 0x14
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.0805dc11
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
add eax, 0x1c
push eax
push ebx
push edi
push dword [ebp - 0x14]
call fcn.0805dc11
add esp, 0x20
cmp dword [ebp - 0x6c], 0
jne 0x807eae9
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
add eax, 0x24
cmp dword [eax], 0xdeadbeef
jne 0x807d375
push eax
push ebx
push edi
push dword [ebp - 0x14]
call fcn.0805dc11
add esp, 0x10
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call dword [0x823e038]
push dword [ebp - 0x30]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 4]
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
add esp, 0x14
cmp esi, 9
mov dword [ebp - 0x44], 1
jne 0x807d44e
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x14]
xor ebx, ebx
cmp dword [eax + 0x3d4], ebx
jne 0x807dbe8
cmp dword [ebp - 0x94], ebx
mov dword [eax + 0x3d4], 1
je 0x807dbe8
cmp dword [ebp - 0x190], ebx
mov esi, dword [ebp - 0x2c]
push 2
pop edi
je 0x807daef
cmp dword [ebp - 0x64], ebx
mov dword [ebp - 0x18], ebx
jle 0x807daef
cmp byte [ebp + ebx], 0
jne 0x807da48
push dword [esi + 8]
mov eax, dword [ebp + ebx*8 - 0x654]
push dword [ebp - 0x14]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp + ebx*8 - 0x650]
push dword [ebp - 0x60]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x168]
call fcn.0807a6d7
add esp, 0xc
jmp 0x807da6d
cmp esi, 8
je 0x807e876
cmp esi, 5
je 0x807e8f4
cmp dword [ebp - 0x210], 0
je 0x807d02a
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x20]
xor eax, eax
cmp dword [edi + 0x3d8], eax
mov dword [ebp - 0x210], eax
je 0x807d4f0
cmp dword [0x8232f48], eax
jne 0x807d4f0
push dword [esi + 8]
mov eax, dword [ebx]
push dword [0x8232eec]
push dword [0x8232ef0]
push dword [eax + 8]
push dword [0x823ddf8]
call fcn.0806b46b
add esp, 0x14
test eax, eax
je 0x807ea48
xor ecx, ecx
cmp dword [0x8232f0c], ecx
mov dword [0x8232f48], 3
mov dword [0x823de00], ecx
mov dword [0x8232f18], ecx
jne 0x807ea52
cmp dword [ebp - 0x6c], ecx
jne 0x807d4f0
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp eax, ecx
je 0x807d4f0
push dword [ebp - 0x30]
call eax
pop ecx
cmp dword [edi + 0x3d4], 0
je 0x807d520
cmp dword [0x8232f48], 0
jne 0x807d507
call fcn.08076fc0
call fcn.08076fd2
and dword [0x8232f08], 0
cmp dword [0x8232f10], 0
jne 0x807b0db
mov eax, dword [ebp - 0x64]
xor ecx, ecx
cmp eax, ecx
mov byte [ebp - 5], 0
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], ecx
jle 0x807d64c
test cl, 7
jne 0x807d547
mov eax, dword [ebp - 0x28]
mov al, byte [eax]
inc dword [ebp - 0x28]
mov byte [ebp - 5], al
cmp dword [ebp - 0x190], 0
je 0x807d63a
test byte [ebp - 5], 0x80
je 0x807d5c1
cmp byte [ebp + ecx], 0
jne 0x807d598
mov eax, dword [ebp - 0x24]
push dword [esi + 8]
shl eax, 3
mov ecx, dword [ebp + eax - 0x654]
mov eax, dword [ebp + eax - 0x650]
push edi
push dword [ebp - 0x60]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x168]
mov dword [ebp - 0x168], ecx
call fcn.0807a6d7
add esp, 0xc
jmp 0x807d5c1
mov eax, dword [ebp - 0x18]
shl ecx, 3
mov edx, dword [ebp + ecx - 0x654]
mov ecx, dword [ebp + ecx - 0x650]
shl eax, 2
add dword [ebp - 0x18], 2
mov dword [ebp + eax - 0x178], edx
mov dword [ebp + eax - 0x174], ecx
cmp dword [ebp - 0x18], 6
jne 0x807d5e0
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x60]
push eax
call fcn.0807a5fe
add esp, 0xc
and dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x64]
dec eax
cmp dword [ebp - 0x24], eax
jne 0x807d61f
cmp dword [ebp - 0x18], 0
je 0x807d61f
push dword [esi + 8]
lea eax, [ebp - 0x178]
push edi
push dword [ebp - 0x60]
call fcn.0807a6d7
add esp, 0xc
cmp dword [ebp - 0x18], 4
jne 0x807d61f
push dword [esi + 8]
lea eax, [ebp - 0x170]
push edi
push dword [ebp - 0x60]
call fcn.0807a6d7
add esp, 0xc
cmp dword [0x8232f0c], 0
je 0x807d637
push 2
pop eax
cmp dword [0x8232f48], eax
jne 0x807b5e7
shl byte [ebp - 5], 1
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x64]
inc ecx
cmp ecx, eax
mov dword [ebp - 0x24], ecx
jl 0x807d537
mov ecx, dword [ebp - 0xb0]
and dword [ebp - 0x18], 0
add ecx, eax
mov dword [ebp - 4], ecx
cmp eax, ecx
jmp 0x807d765
test al, 7
jne 0x807d671
mov ecx, dword [ebp - 0x28]
mov cl, byte [ecx]
inc dword [ebp - 0x28]
mov byte [ebp - 5], cl
cmp dword [ebp - 0x18c], 0
je 0x807d75e
test byte [ebp - 5], 0x80
je 0x807d6e9
cmp byte [ebp + eax], 0
jne 0x807d6c0
mov eax, dword [ebp - 0x24]
push dword [esi + 8]
shl eax, 3
mov ecx, dword [ebp + eax - 0x654]
mov eax, dword [ebp + eax - 0x650]
push dword [ebp - 0x48]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x168]
mov dword [ebp - 0x168], ecx
call fcn.0807a7e8
pop ecx
pop ecx
jmp 0x807d6e9
mov ecx, dword [ebp - 0x18]
shl eax, 3
mov edx, dword [ebp + eax - 0x654]
mov eax, dword [ebp + eax - 0x650]
shl ecx, 2
add dword [ebp - 0x18], 2
mov dword [ebp + ecx - 0x178], edx
mov dword [ebp + ecx - 0x174], eax
cmp dword [ebp - 0x18], 6
jne 0x807d708
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x48]
push eax
call fcn.0807a66f
add esp, 0xc
and dword [ebp - 0x18], 0
mov eax, dword [ebp - 4]
dec eax
cmp dword [ebp - 0x24], eax
jne 0x807d743
cmp dword [ebp - 0x18], 0
je 0x807d743
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x48]
call fcn.0807a7e8
cmp dword [ebp - 0x18], 4
pop ecx
pop ecx
jne 0x807d743
push dword [esi + 8]
lea eax, [ebp - 0x168]
push dword [ebp - 0x48]
call fcn.0807a7e8
pop ecx
pop ecx
cmp dword [0x8232f0c], 0
je 0x807d75b
push 2
pop eax
cmp dword [0x8232f48], eax
jne 0x807b5e7
shl byte [ebp - 5], 1
mov eax, dword [ebp - 0x24]
inc eax
cmp eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
jl 0x807d662
mov dword [edi + 0x3d4], 1
jmp 0x807e77a
xor edx, edx
test al, 7
jne 0x807d78e
mov ecx, dword [ebp - 0x28]
mov cl, byte [ecx]
inc dword [ebp - 0x28]
mov byte [ebp - 5], cl
mov ecx, dword [0x8232f48]
cmp ecx, edx
jne 0x807da01
test byte [ebp - 5], 0x80
mov byte [ebp + eax], 0
je 0x807d93d
xor ebx, ebx
cmp eax, dword [ebp - 0x64]
mov ecx, eax
setl bl
shl ecx, 3
mov eax, dword [ebp + ecx - 0x650]
mov edi, dword [ebp + ecx - 0x654]
mov dword [ebp - 0x1c], eax
add eax, edi
push ebx
push eax
push edi
call fcn.08078cf4
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x807d8f6
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.080789fc
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x807ea61
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, ecx
jl 0x807ea61
cmp dword [0x823ddf8], ecx
jne 0x807d819
mov dword [0x823ddf8], esi
jmp 0x807d821
mov edx, dword [ebp - 0x230]
mov dword [edx], esi
add eax, edi
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x38]
and eax, 0xfffffff6
and ebx, 1
or eax, ebx
or eax, 4
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x18], eax
lea ebx, [esi + 0x10]
mov dword [esi], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], 0x3e80000
mov dword [esi + 8], edi
push ebx
mov eax, edi
jge 0x807d88e
call fcn.080789d5
mov eax, dword [esi + 0xc]
lea edi, [esi + 0x14]
push edi
call fcn.080789d5
mov eax, dword [edi]
sub eax, dword [ebx]
pop ecx
pop ecx
lea ecx, [esi + 4]
mov dword [esi + 0x28], eax
mov dword [ecx], eax
mov eax, dword [0x8232f34]
test eax, eax
je 0x807d8d3
mov edx, dword [0x823de08]
movzx edx, word [edx]
push edx
mov edx, dword [0x8232f38]
jmp 0x807d8c6
call fcn.080789ae
mov eax, dword [esi + 0xc]
lea edi, [esi + 0x14]
push edi
call fcn.080789ae
mov eax, dword [edi]
sub eax, dword [ebx]
pop ecx
pop ecx
lea ecx, [esi + 4]
mov dword [esi + 0x28], eax
mov dword [ecx], eax
mov eax, dword [0x8232f50]
test eax, eax
je 0x807d8d3
mov edx, dword [0x823de08]
movzx edx, word [edx]
push edx
mov edx, dword [0x8232ee8]
push eax
push ecx
push dword [ebp - 0x1c]
call fcn.08077ab4
add esp, 0x10
mov eax, dword [esi + 0x38]
and dword [esi + 0x34], 0
and dword [esi + 0x30], 0
and eax, 0xffff001d
or eax, 0x10
mov dword [esi + 0x38], eax
mov eax, esi
call fcn.08078dcb
mov dword [ebp - 0x230], esi
mov edi, dword [ebp - 0x24]
test edi, edi
je 0x807d92c
call fcn.08079760
test eax, eax
je 0x807ea61
mov ecx, dword [esi + 0x10]
sub ecx, dword [edi + 0x14]
mov dword [eax + 8], esi
mov dword [eax + 4], ecx
mov dword [eax + 0xc], edi
mov ecx, dword [0x823de00]
mov dword [eax], ecx
mov dword [0x823de00], eax
mov dword [esi + 0x34], eax
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x24], esi
xor esi, esi
mov ebx, 0xc80
inc esi
mov ecx, dword [ebp - 0x64]
dec ecx
cmp eax, ecx
je 0x807d951
mov ecx, dword [ebp - 4]
dec ecx
cmp eax, ecx
jne 0x807da20
cmp dword [ebp - 0x24], 0
je 0x807da20
mov eax, dword [0x823ddf8]
call fcn.0807a96e
mov eax, dword [0x823ddf8]
jmp 0x807d977
mov ecx, dword [eax + 0x24]
sub ecx, dword [eax + 0x20]
mov dword [eax + 4], ecx
mov eax, dword [eax]
test eax, eax
jne 0x807d96c
cmp dword [0x8232f18], eax
jne 0x807d9d9
mov eax, dword [0x8232f40]
cmp dword [eax + 4], ebx
mov eax, dword [eax]
jae 0x807d9c4
test eax, eax
je 0x807d9a5
mov ecx, dword [0x823de0c]
mov ecx, dword [ecx + 0x14]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 8]
pop ecx
pop ecx
mov eax, dword [0x823de0c]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax]
push ebx
push eax
call dword [ecx]
test eax, eax
pop ecx
pop ecx
mov ecx, dword [0x8232f40]
mov dword [ecx], eax
je 0x807da35
mov dword [ecx + 4], ebx
mov dword [0x8232f18], eax
add eax, 0x4b0
mov dword [edi + 0x3d8], esi
mov dword [0x8232f2c], eax
push dword [edi + 0x2b4]
push dword [0x8232f2c]
push dword [ebp - 0x24]
call fcn.0806b85a
add esp, 0xc
test eax, eax
je 0x807ea77
and dword [ebp - 0x24], 0
mov eax, dword [ebp - 0x18]
jmp 0x807da20
test byte [ebp - 5], 0x80
je 0x807da1b
cmp ecx, 2
jne 0x807da1b
cmp dword [0x8232f0c], edx
jne 0x807da1b
mov byte [ebp + eax], 1
jmp 0x807da20
mov byte [ebp + eax], 0
shl byte [ebp - 5], 1
inc eax
cmp eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
jl 0x807d77d
jmp 0x807e77a
and dword [ecx + 4], 0
mov dword [0x8232f48], 2
jmp 0x807e77a
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + ebx*8 - 0x654]
shl eax, 2
add dword [ebp - 0x18], edi
mov dword [ebp + eax - 0x178], ecx
mov ecx, dword [ebp + ebx*8 - 0x650]
mov dword [ebp + eax - 0x174], ecx
cmp dword [ebp - 0x18], 6
jne 0x807da8c
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x60]
push eax
call fcn.0807a5fe
add esp, 0xc
and dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x64]
dec eax
cmp ebx, eax
jne 0x807dace
cmp dword [ebp - 0x18], 0
je 0x807dace
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x14]
push dword [ebp - 0x60]
call fcn.0807a6d7
add esp, 0xc
cmp dword [ebp - 0x18], 4
jne 0x807dace
push dword [esi + 8]
lea eax, [ebp - 0x170]
push dword [ebp - 0x14]
push dword [ebp - 0x60]
call fcn.0807a6d7
add esp, 0xc
cmp dword [0x8232f0c], 0
je 0x807dae3
cmp dword [0x8232f48], edi
jne 0x807ea8f
inc ebx
cmp ebx, dword [ebp - 0x64]
jl 0x807d40d
xor ebx, ebx
cmp dword [ebp - 0x18c], ebx
je 0x807dbe8
mov ebx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xb0]
and dword [ebp - 0x18], 0
add eax, ebx
cmp ebx, eax
mov dword [ebp - 4], eax
jge 0x807dbe8
cmp byte [ebp + ebx], 0
jne 0x807db4b
mov eax, dword [ebp + ebx*8 - 0x654]
push dword [esi + 8]
mov dword [ebp - 0x168], eax
mov eax, dword [ebp + ebx*8 - 0x650]
push dword [ebp - 0x48]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x168]
call fcn.0807a7e8
pop ecx
pop ecx
jmp 0x807db70
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + ebx*8 - 0x654]
shl eax, 2
add dword [ebp - 0x18], edi
mov dword [ebp + eax - 0x178], ecx
mov ecx, dword [ebp + ebx*8 - 0x650]
mov dword [ebp + eax - 0x174], ecx
cmp dword [ebp - 0x18], 6
jne 0x807db8f
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x48]
push eax
call fcn.0807a66f
add esp, 0xc
and dword [ebp - 0x18], 0
mov eax, dword [ebp - 4]
dec eax
cmp ebx, eax
jne 0x807dbc9
cmp dword [ebp - 0x18], 0
je 0x807dbc9
push dword [esi + 8]
lea eax, [ebp - 0x178]
push dword [ebp - 0x48]
call fcn.0807a7e8
cmp dword [ebp - 0x18], 4
pop ecx
pop ecx
jne 0x807dbc9
push dword [esi + 8]
lea eax, [ebp - 0x168]
push dword [ebp - 0x48]
call fcn.0807a7e8
pop ecx
pop ecx
cmp dword [0x8232f0c], 0
je 0x807dbde
cmp dword [0x8232f48], edi
jne 0x807ea8f
inc ebx
cmp ebx, dword [ebp - 4]
jl 0x807db15
mov eax, dword [ebp - 0x160]
add dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x15c]
add dword [ebp - 0xc], eax
lea eax, [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x10]
push eax
call dword [ebp - 0x40]
cmp dword [ebp - 0x224], 0
pop ecx
pop ecx
je 0x807dc65
mov esi, dword [ebp - 0x200]
cmp esi, 0xa
jge 0x807dc65
test esi, esi
je 0x807dc27
cmp esi, 4
jne 0x807dc3c
mov eax, dword [ebp - 0x10]
mov dword [ebp + esi*8 - 0x1e8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp + esi*8 - 0x1e4], eax
inc esi
lea eax, [ebp + esi*8 - 0x1e8]
push eax
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
call dword [0x823e030]
add esp, 0xc
inc esi
mov dword [ebp - 0x200], esi
jmp 0x807e77a
cmp dword [0x8232f48], 0
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x244], eax
mov dword [ebp - 0x240], ecx
je 0x807e77a
cmp dword [ebp - 0x44], 0
jne 0x807dcac
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
call dword [eax + 0x10]
pop ecx
push dword [ebp - 0x30]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 4]
pop ecx
pop ecx
mov dword [ebp - 0x44], 1
jmp 0x807e77a
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
mov eax, esi
cmp eax, 8
jl case.0x807b404.0
test al, 1
jne case.0x807b404.0
lea edi, [eax - 6]
xor esi, esi
test edi, edi
jle 0x807dd53
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
add ecx, dword [ebp + esi*4 - 0x178]
add eax, dword [ebp + esi*4 - 0x174]
cmp dword [0x8232f48], 0
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
jne 0x807dd32
push eax
push ecx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
jmp 0x807dd4a
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x10]
push eax
call dword [ebp - 0x40]
push dword [ebp - 0x30]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 8]
add esp, 0x10
inc esi
inc esi
cmp esi, edi
jl 0x807dcee
xor ecx, ecx
lea eax, [ebp + edi*4 - 0x178]
mov edx, dword [eax]
mov dword [ebp + ecx*4 - 0x178], edx
inc ecx
add eax, 4
cmp ecx, 6
jl 0x807dd5c
lea esi, [ebp - 0x160]
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
cmp esi, 6
mov dword [ebp - 4], esi
jl case.0x807b404.0
xor ebx, ebx
mov eax, esi
test eax, eax
mov dword [ebp - 0x44], ebx
jle 0x807e776
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 6
jl case.0x807b404.0
cmp dword [0x8232f20], 0x8078699
jne 0x807de9d
mov edx, dword [0x8232f4c]
mov edi, ebx
shl edi, 2
mov esi, dword [ebp + edi - 0x178]
add esi, dword [ebp - 0x10]
mov ecx, esi
call fcn.0807744c
add esi, dword [ebp + edi - 0x170]
mov edx, dword [0x8232f4c]
mov ecx, esi
mov dword [ebp - 0x270], eax
call fcn.0807744c
add esi, dword [ebp + edi - 0x168]
mov edx, dword [0x8232f4c]
mov ecx, esi
mov dword [ebp - 0x278], eax
call fcn.0807744c
mov edx, dword [0x8232f04]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp + edi - 0x174]
add esi, dword [ebp - 0xc]
mov dword [ebp - 0x254], eax
mov ecx, esi
call fcn.0807744c
add esi, dword [ebp + edi - 0x16c]
mov edx, dword [0x8232f04]
mov ecx, esi
mov dword [ebp - 0x26c], eax
call fcn.0807744c
add esi, dword [ebp + edi - 0x164]
mov edx, dword [0x8232f04]
mov ecx, esi
mov dword [ebp - 0x274], eax
call fcn.0807744c
push dword [ebp - 0x30]
mov dword [ebp - 0x250], eax
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xc], esi
call dword [eax + 0xc]
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x250]
add esp, 0x14
jmp 0x807dfc5
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
mov eax, ebx
shl eax, 2
lea ecx, [ebp + eax - 0x178]
add dword [ecx], edx
mov edi, dword [ecx]
mov ecx, dword [ecx]
lea edx, [ebp + eax - 0x174]
add dword [edx], esi
mov ebx, dword [edx]
mov edx, dword [edx]
lea esi, [ebp + eax - 0x170]
add dword [esi], edi
lea edi, [ebp + eax - 0x16c]
add dword [edi], ebx
mov ebx, dword [esi]
mov esi, dword [esi]
mov dword [ebp - 0x24], edi
lea edi, [ebp + eax - 0x168]
add dword [edi], ebx
mov ebx, dword [ebp - 0x24]
mov ebx, dword [ebx]
lea eax, [ebp + eax - 0x164]
add dword [eax], ebx
cmp dword [0x8232f48], 0
mov ebx, dword [edi]
mov dword [ebp - 0x238], esi
mov esi, dword [ebp - 0x24]
mov esi, dword [esi]
mov dword [ebp - 0x10], ebx
mov ebx, dword [eax]
mov dword [ebp - 0x234], esi
mov esi, dword [edi]
mov eax, ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x248], edx
mov dword [ebp - 0x218], esi
mov dword [ebp - 0x214], eax
jne 0x807df6d
push edx
push ecx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
push dword [ebp - 0x214]
push dword [ebp - 0x218]
push dword [ebp - 0x234]
push dword [ebp - 0x238]
call fcn.08078fe1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xc]
add esp, 0x20
mov dword [ebp - 0x50], eax
jmp 0x807dfb3
lea eax, [ebp - 0x24c]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0x238]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0x218]
push eax
push eax
call dword [ebp - 0x40]
push dword [ebp - 0x30]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x2c
mov eax, dword [ebp - 0x218]
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x38], eax
lea eax, [ebx + 8]
cmp dword [ebp - 4], eax
je 0x807dfe8
sub dword [ebp - 0x1c], 6
add ebx, 6
cmp ebx, dword [ebp - 4]
mov dword [ebp - 0x44], ebx
jl 0x807dd9d
jmp 0x807e776
shl ebx, 2
mov eax, dword [ebp + ebx - 0x160]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp + ebx - 0x15c]
mov dword [ebp - 0x174], eax
lea esi, [ebp - 0x170]
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
mov ebx, esi
cmp ebx, 2
jl case.0x807b404.0
test bl, 1
jne case.0x807b404.0
xor esi, esi
test ebx, ebx
jle 0x807e776
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
add ecx, dword [ebp + esi*4 - 0x178]
add eax, dword [ebp + esi*4 - 0x174]
cmp dword [0x8232f48], 0
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
jne 0x807e078
push eax
push ecx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
jmp 0x807e090
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x10]
push eax
call dword [ebp - 0x40]
push dword [ebp - 0x30]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 8]
add esp, 0x10
inc esi
inc esi
cmp esi, ebx
jl 0x807e034
jmp 0x807e776
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
push 0
mov dword [ebp - 0xa0], esi
pop ebx
je case.0x807b404.0
test esi, esi
jle 0x807e776
mov dword [ebp - 4], esi
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
and dword [ebp - 0x1c], 1
je 0x807e107
cmp eax, 5
jl case.0x807b404.0
mov eax, ebx
shl eax, 2
mov ecx, dword [ebp + eax - 0x178]
add ecx, dword [ebp - 0x10]
mov edi, dword [ebp + eax - 0x170]
mov edx, dword [ebp + eax - 0x174]
mov esi, dword [ebp + eax - 0x16c]
mov eax, dword [ebp + eax - 0x168]
add edi, ecx
jmp 0x807e136
cmp eax, 4
jl case.0x807b404.0
mov ecx, dword [ebp - 0x10]
mov eax, ebx
shl eax, 2
mov edi, dword [ebp + eax - 0x174]
mov edx, dword [ebp + eax - 0x178]
mov esi, dword [ebp + eax - 0x170]
mov eax, dword [ebp + eax - 0x16c]
add edi, ecx
add edx, dword [ebp - 0xc]
mov dword [ebp - 0xb8], edi
add esi, edx
add eax, esi
cmp dword [0x8232f20], 0x8078699
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0x1f4], edx
mov dword [ebp - 0x1f8], ecx
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], eax
je 0x807e209
cmp dword [0x8232f48], 0
jne 0x807e1be
push edx
push ecx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
push dword [ebp - 0x98]
push dword [ebp - 0x9c]
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
call fcn.08078fe1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xc]
add esp, 0x20
mov dword [ebp - 0x50], eax
jmp 0x807e2b8
lea eax, [ebp - 0x1f8]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0xb8]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0x9c]
push eax
push eax
call dword [ebp - 0x40]
push dword [ebp - 0x30]
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x2c
jmp 0x807e2b8
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x1f4]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x1f8], eax
call fcn.0807744c
mov ecx, dword [ebp - 0xb8]
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x1f4], eax
call fcn.0807744c
mov ecx, dword [ebp - 0xb4]
mov edx, dword [0x8232f04]
mov dword [ebp - 0xb8], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x9c]
mov edx, dword [0x8232f4c]
mov dword [ebp - 0xb4], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x98]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x9c], eax
call fcn.0807744c
push dword [ebp - 0x30]
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x14
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x38], eax
je 0x807e2d9
add ebx, 5
sub dword [ebp - 4], 5
jmp 0x807e2e0
add ebx, 4
sub dword [ebp - 4], 4
cmp ebx, dword [ebp - 0xa0]
jl 0x807e0c3
jmp 0x807e776
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
push 0
pop ebx
je case.0x807b404.0
test esi, esi
jle 0x807e776
mov eax, esi
sub eax, ebx
test al, 1
je 0x807e334
test ebx, ebx
jne case.0x807b404.0
cmp esi, 5
jl case.0x807b404.0
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0xc]
add eax, ecx
inc ebx
jmp 0x807e340
cmp eax, 4
jl case.0x807b404.0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x194], eax
mov eax, ebx
shl eax, 2
mov ecx, dword [ebp + eax - 0x178]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + eax - 0x174]
mov edi, dword [ebp + eax - 0x170]
add edi, dword [ebp - 0x194]
mov eax, dword [ebp + eax - 0x16c]
add edx, ecx
add eax, edx
cmp dword [0x8232f20], 0x8078699
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x180], edx
mov dword [ebp - 0x17c], edi
mov dword [ebp - 0xac], eax
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edi
je 0x807e43f
cmp dword [0x8232f48], 0
jne 0x807e3f4
push dword [ebp - 0x194]
push ecx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
push dword [ebp - 0x17c]
push dword [ebp - 0x180]
call fcn.08078fe1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xc]
add esp, 0x20
mov dword [ebp - 0x50], eax
jmp 0x807e4ee
lea eax, [ebp - 0x198]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0x180]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0xac]
push eax
push eax
call dword [ebp - 0x40]
push dword [ebp - 0x30]
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x2c
jmp 0x807e4ee
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edi
call fcn.0807744c
mov ecx, dword [ebp - 0x194]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x198], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x180]
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x194], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x17c]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x180], eax
call fcn.0807744c
mov ecx, dword [ebp - 0xac]
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x17c], eax
call fcn.0807744c
mov ecx, dword [ebp - 0xa8]
mov edx, dword [0x8232f04]
mov dword [ebp - 0xac], eax
call fcn.0807744c
push dword [ebp - 0x30]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x14
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xa8]
add ebx, 4
cmp ebx, esi
mov dword [ebp - 0x38], eax
jl 0x807e30d
jmp 0x807e776
lea eax, [ebp - 0xb8]
cmp esi, eax
jae case.0x807b404.0
movzx eax, byte [ecx]
inc ecx
movzx edx, byte [ecx]
inc ecx
shl eax, 8
mov dword [ebp - 0x28], ecx
or eax, edx
shl eax, 0x10
mov dword [esi], eax
add esi, 4
jmp case.0x807b455.2
xor edi, edi
jmp 0x807e542
xor edi, edi
inc edi
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
mov dword [ebp - 4], esi
js 0x807e776
mov eax, dword [ebp - 4]
push 5
pop ebx
lea esi, [ebp - 0x174]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jl case.0x807b404.0
test edi, edi
je 0x807e5bd
mov eax, dword [ebp - 0xc]
mov ecx, dword [esi - 4]
add ecx, dword [ebp - 0x10]
mov edi, dword [esi + 4]
mov edx, dword [esi]
add edi, eax
mov dword [ebp - 0x184], eax
mov eax, dword [esi + 8]
add edx, ecx
add eax, edi
cmp ebx, dword [ebp - 4]
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], edx
jne 0x807e5b9
mov edx, dword [esi + 0xc]
add edx, dword [ebp - 0x90]
mov dword [ebp - 0x74], edx
xor edi, edi
jmp 0x807e606
mov edx, dword [esi - 4]
add edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 4]
mov edi, dword [esi]
add eax, edx
mov dword [ebp - 0x184], edx
mov edx, dword [esi + 8]
add edi, ecx
add edx, edi
cmp ebx, dword [ebp - 4]
mov dword [ebp - 0x188], ecx
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
jne 0x807e603
mov eax, dword [esi + 0xc]
add eax, dword [ebp - 0x8c]
mov dword [ebp - 0x70], eax
xor edi, edi
inc edi
cmp dword [0x8232f20], 0x8078699
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
je 0x807e6a7
cmp dword [0x8232f48], 0
jne 0x807e662
push dword [ebp - 0x184]
push ecx
push dword [ebp - 0x50]
push dword [ebp - 0x54]
call fcn.08078fe1
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
call fcn.08078fe1
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0xc]
add esp, 0x20
mov dword [ebp - 0x50], eax
jmp 0x807e747
lea eax, [ebp - 0x188]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0x90]
push eax
push eax
call dword [ebp - 0x40]
lea eax, [ebp - 0x74]
push eax
push eax
call dword [ebp - 0x40]
push dword [ebp - 0x30]
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x2c
jmp 0x807e747
mov dword [ebp - 0x10], edx
mov edx, dword [0x8232f4c]
mov dword [ebp - 0xc], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x184]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x188], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x90]
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x184], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x8c]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x90], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x74]
mov edx, dword [0x8232f4c]
mov dword [ebp - 0x8c], eax
call fcn.0807744c
mov ecx, dword [ebp - 0x70]
mov edx, dword [0x8232f04]
mov dword [ebp - 0x74], eax
call fcn.0807744c
push dword [ebp - 0x30]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x188]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x34]
call dword [eax + 0xc]
add esp, 0x14
cmp ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x38], eax
je 0x807e776
lea eax, [ebx - 1]
cmp eax, dword [ebp - 4]
je 0x807e776
sub dword [ebp - 0x1c], 4
add ebx, 4
lea eax, [ebx - 5]
add esi, 0x10
cmp eax, dword [ebp - 4]
jle 0x807e565
and dword [ebp - 0x44], 0
lea esi, [ebp - 0x178]
jmp 0x807b90b
lea edx, [ebp - 0xb8]
cmp esi, edx
jae case.0x807b404.0
lea edx, [eax - 0x8b]
shl edx, 0x10
mov dword [esi], edx
push 4
pop edx
add esi, edx
cmp eax, 0xf6
jle case.0x807b455.2
sub esi, edx
cmp eax, 0xfa
jg 0x807e7d2
movzx edi, byte [ecx]
add eax, 0xffffff09
shl eax, 8
or eax, edi
inc ecx
add eax, 0x6c
shl eax, 0x10
mov dword [ebp - 0x28], ecx
mov dword [esi], eax
jmp 0x807e7f4
cmp eax, 0xfe
jg 0x807e7fb
movzx edi, byte [ecx]
add eax, 0xffffff05
shl eax, 8
inc ecx
mov dword [ebp - 0x28], ecx
push 0xffffffffffffff94
or eax, edi
pop ecx
sub ecx, eax
shl ecx, 0x10
mov dword [esi], ecx
add esi, edx
jmp case.0x807b455.2
movzx eax, byte [ecx]
inc ecx
movzx edx, byte [ecx]
shl eax, 8
or eax, edx
inc ecx
movzx edx, byte [ecx]
shl eax, 8
inc ecx
or eax, edx
movzx edx, byte [ecx]
inc ecx
mov dword [ebp - 0x28], ecx
xor ecx, ecx
shl eax, 8
inc ecx
or eax, edx
cmp word [edi + 0x3fe], cx
jne 0x807e83b
lea edx, [eax + 0x7d00]
cmp edx, 0xfa00
jbe 0x807e52e
mov dword [esi], eax
add esi, 4
cmp word [edi + 0x3fe], cx
jne case.0x807b455.2
mov dword [ebp - 0x1fc], ecx
jmp case.0x807b455.2
or dword [ebx + 0x10], 0x2000
mov dword [0x8232f48], 2
jmp 0x807b0d8
lea ecx, [ebp - 0x178]
jmp 0x807e8aa
mov eax, dword [ebp - 0x168]
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x178], eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x170], eax
and dword [ebp - 0x16c], 0
lea ecx, [ebp - 0x16c]
push dword [ebp - 0x60]
mov eax, dword [ebp - 0x2c]
push dword [ebp - 0x48]
mov edi, dword [ebp - 0x14]
mov esi, dword [eax + 4]
call fcn.08076f5f
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx]
test al, 2
jne 0x807eaf0
or eax, 0x10
cmp dword [0x8232f48], 0
mov dword [ecx], eax
jne 0x807e8e0
call fcn.08076fc0
call fcn.08076fd2
mov dword [0x8232f08], 1
jmp 0x807b0d8
cmp dword [0x8232f48], 0
je 0x807ea04
cmp dword [ebp - 0x44], 0
jne 0x807e918
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
call dword [eax + 0x10]
pop ecx
mov dword [ebp - 0x44], 1
mov eax, dword [ebp - 0x2c]
test byte [eax], 0x20
je 0x807e95b
push dword [eax + 8]
mov esi, dword [ebp - 0x30]
push dword [esi]
mov ebx, dword [ebp - 0x20]
push dword [ebp - 0x5c]
mov edi, dword [ebp - 0x14]
push dword [ebp - 0x80]
push ebx
push dword [ebp - 0x258]
push edi
call fcn.0807a31e
add esp, 0x1c
test eax, eax
jne 0x807bb64
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
test eax, eax
je 0x807e977
push esi
call eax
pop ecx
jmp 0x807e977
cmp dword [ebp - 0x6c], 0
jne 0x807e971
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x807e971
push dword [ebp - 0x30]
call eax
pop ecx
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x14]
cmp dword [0x8232f48], 0
je 0x807ea0a
cmp dword [ebp - 0x44], 0
jne 0x807e994
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
call dword [eax + 0x10]
pop ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ecx]
test al, 0x10
je 0x807eaf8
test al, 0x20
je 0x807eaf8
and eax, 0xffffffef
or eax, 8
cmp dword [0x8232f48], 0
mov dword [ecx], eax
jne 0x807e9bf
call fcn.08076fc0
call fcn.08076fd2
mov esi, dword [edi + 0x3ec]
lea ecx, [edi + 0x3dc]
mov edx, dword [ecx]
lea eax, [edi + 0x3e8]
add edx, dword [eax]
mov dword [0x8232f08], 1
mov dword [edi + 0x3e0], edx
mov edx, dword [ebx + 4]
add esi, dword [edx + 0x24]
and dword [eax], 0
mov dword [edi + 0x3e4], esi
mov dword [ecx], 0x80000000
jmp 0x807b0db
mov edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x20]
mov dword [0x8232f48], 3
call fcn.08077c99
mov eax, dword [ebp - 0x2c]
push dword [eax + 8]
mov eax, dword [ebx]
push dword [edi + 0x2b4]
push dword [eax + 8]
push edi
call fcn.0807a982
add esp, 0x10
cmp dword [0x8232f0c], 0
jne 0x807ea52
and dword [0x823de00], 0
jmp 0x807b0db
mov dword [0x8232f0c], 1
mov dword [0x8232f48], 2
jmp 0x807b5ec
mov dword [0x8232f0c], 1
mov dword [0x8232f48], 2
jmp 0x807ea95
mov ebx, dword [ebp - 0x20]
mov dword [0x8232f0c], esi
mov dword [0x8232f48], 2
jmp 0x807b5ec
mov dword [0x8232f48], edi
mov eax, dword [ebp - 0x20]
or dword [eax + 0x10], 0x2000
mov ebx, eax
jmp 0x807b0d8
or dword [edi + 0x304], 0x2000
jmp case.0x807b404.0
or eax, 0xffffffff
jmp 0x807bb64
lea eax, [ebp - 0x178]
sub esi, eax
sar esi, 2
xor eax, eax
test esi, esi
mov dword [edi + 0x3a4], esi
jle 0x807eae9
mov edx, dword [ebp + eax*4 - 0x178]
mov ecx, dword [edi + 0x3a8]
mov dword [ecx + eax*4], edx
inc eax
cmp eax, esi
jl 0x807ead4
xor eax, eax
jmp 0x807bb64
xor eax, eax
inc eax
jmp 0x807bb64
test al, 8
je 0x807eae9
test al, 0x20
je 0x807eae9
mov eax, dword [edi + 0x3e0]
cmp eax, dword [edi + 0x3dc]
jle 0x807eae9
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 0x3e4]
mov dword [eax + 0x24], ecx
jmp 0x807eae9