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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x164
push esi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1a4]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xe]
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x50]
movsx edx, word [ecx + 0xc]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x54], 0
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x8a4]
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x8c]
shr ecx, 8
add ecx, 1
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x7c]
xor edx, edx
div ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x8b0]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x20
neg edx
sbb edx, edx
and edx, 0x7f8000
add edx, 0x8000
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 0xa]
test ecx, ecx
je 0x1007f6aa
mov edx, dword [ebp - 0x1c]
and edx, 0x80
jne 0x1007f6aa
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 8]
cmp ecx, 3
jge 0x1007f6a2
mov edx, dword [ebp - 0x18]
shl edx, 2
mov dword [ebp - 0x18], edx
jmp 0x1007f6aa
mov eax, dword [ebp - 0x18]
shl eax, 1
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x7c]
add edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x8c]
jbe 0x1007f6d0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x8c]
sub eax, dword [edx + 0x7c]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0
jne 0x1007f6dd
xor eax, eax
jmp 0x10082f95
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x7c], 0
jne 0x1007f738
mov edx, dword [ebp - 0x50]
push edx
call fcn.1007f460
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x74]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x70]
push eax
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
call fcn.10082fa0
add esp, 0xc
mov edx, dword [ebp + 8]
cmp dword [edx + 0x98], 0
je 0x1007f738
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x70]
push eax
mov ecx, dword [ebp - 0x50]
add ecx, 0x50
push ecx
call fcn.10082fa0
add esp, 0xc
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
movsx ecx, byte [eax + edx*8 + 0x84]
test ecx, ecx
jne 0x1007f7d1
mov edx, dword [ebp - 0x50]
cmp dword [edx + 0x884], 0
jne 0x1007f78d
mov eax, dword [ebp - 0x50]
push eax
call fcn.10083150
add esp, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x888], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x888]
shl eax, 8
push eax
call fcn.10057d9c
add esp, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x884], eax
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx + 0x7c]
mov dword [eax + edx*8 + 0x88], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x48]
imul eax, dword [edx + 0x888]
mov ecx, dword [ebp - 0x50]
add eax, dword [ecx + 0x884]
push eax
mov edx, dword [ebp - 0x50]
push edx
call fcn.100832b0
add esp, 8
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
mov byte [ecx + eax*8 + 0x84], 1
mov edx, dword [ebp - 0x50]
add edx, 0x8b4
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0xc], ecx
mov eax, dword [edx + 8]
mov dword [ebp - 8], eax
mov ecx, dword [edx + 0xc]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x8c4]
mov dword [ebp - 0x30], eax
mov ecx, dword [edx + 0x8c8]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xa]
test eax, eax
je 0x1007f825
mov ecx, dword [ebp - 0x1c]
and ecx, 0xa000
je 0x1007f823
mov dword [ebp - 0x54], 0xffffff00
jmp 0x1007f849
mov edx, dword [ebp - 0x1c]
and edx, 0x2000
je 0x1007f849
mov eax, dword [ebp - 0x1c]
and eax, 0x8000
neg eax
sbb eax, eax
and eax, 0xffffff00
add eax, 0xffffff00
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x1c]
and ecx, 0x20
je 0x1007f883
mov edx, 0xff800000
mov ecx, dword [ebp - 0x68]
sar edx, cl
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov dword [ebp - 0x38], eax
mov edx, 0x7fffff
mov ecx, dword [ebp - 0x68]
sar edx, cl
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov dword [ebp - 0x44], eax
jmp 0x1007f8b3
mov edx, 0xffff8000
mov ecx, dword [ebp - 0x68]
sar edx, cl
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov dword [ebp - 0x38], eax
mov edx, 0x7fff
mov ecx, dword [ebp - 0x68]
sar edx, cl
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x50]
movsx edx, word [ecx + 8]
cmp edx, 3
jne 0x10080268
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 0xa]
test ecx, ecx
jne 0x10080268
mov edx, dword [ebp - 0x1c]
and edx, 1
je 0x10080268
mov eax, dword [ebp - 0x1c]
and eax, 2
je 0x1007fab4
mov ecx, dword [ebp - 0x1c]
and ecx, 0x40
je 0x1007fa41
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x20], 0
jmp 0x1007f90e
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x10]
jae 0x1007fa3f
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x1007f935
jmp 0x1007fa3f
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x48], 4
jge 0x1007f9ad
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x30], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [eax + 0x2c]
jne 0x1007f97f
mov edx, dword [ebp - 0x50]
add edx, 0x24
push edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x24]
call ecx
add esp, 4
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x48]
shl edx, cl
mov ecx, dword [ebp - 0x50]
or edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x48]
add edx, 8
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x48], edx
jmp 0x1007f947
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x48], 0x20
jle 0x1007f9ee
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x48]
sub edx, 4
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x48], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x50]
mov edx, 8
sub edx, dword [ecx + 0x48]
mov ecx, edx
sar eax, cl
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
jmp 0x1007fa0c
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x6c]
and edx, 0xf
mov eax, dword [ebp - 0x10]
shl eax, 4
add edx, eax
mov dword [ebp - 0x6c], edx
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x6c]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x1007f905
jmp 0x1007faaf
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x20], 0
jmp 0x1007fa59
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x10]
jae 0x1007faaf
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x1007fa79
jmp 0x1007faaf
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x1007fa50
jmp 0x10080263
mov edx, dword [ebp - 0x1c]
and edx, 0x10
je 0x1007ff63
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x1007fad8
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x1007ff5e
mov eax, dword [ebp - 0x1c]
and eax, 0x400
je 0x1007fb0b
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10083700
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x1007fb09
jmp 0x1007ff5e
jmp 0x1007fb26
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084210
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x1007fb26
jmp 0x1007ff5e
mov ecx, dword [ebp - 0x1c]
and ecx, 0x8000
je 0x1007fc22
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x80]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x50]
add ecx, 0x8cc
mov dword [ebp - 0x24], ecx
jmp 0x1007fb58
mov edx, dword [ebp - 0x24]
add edx, 0x60
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x40]
sub ecx, 1
mov dword [ebp - 0x40], ecx
test eax, eax
je 0x1007fc1d
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*4 + 0x10]
mov dword [ebp - 0x74], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, dword [ebp - 0x74]
add eax, 0x100
sar eax, 9
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x74], 0
je 0x1007fbfd
cmp dword [ebp - 0x3c], 0
je 0x1007fbfd
mov ecx, dword [ebp - 0x74]
xor ecx, dword [ebp - 0x3c]
jl 0x1007fbd2
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], edx
cmp eax, 0x200
jne 0x1007fbd0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
jmp 0x1007fbfd
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], edx
cmp eax, ecx
jne 0x1007fbfd
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x64]
add edx, dword [ecx]
and edx, 7
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + edx*4 + 0x10], ecx
jmp 0x1007fb4f
jmp 0x1007fd0a
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x80]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x50]
add ecx, 0x8cc
mov dword [ebp - 0x24], ecx
jmp 0x1007fc45
mov edx, dword [ebp - 0x24]
add edx, 0x60
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x40]
sub ecx, 1
mov dword [ebp - 0x40], ecx
test eax, eax
je 0x1007fd0a
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*4 + 0x10]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, dword [ebp - 0x78]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x78], 0
je 0x1007fcea
cmp dword [ebp - 0x3c], 0
je 0x1007fcea
mov ecx, dword [ebp - 0x78]
xor ecx, dword [ebp - 0x3c]
jl 0x1007fcbf
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], edx
cmp eax, 0x100
jne 0x1007fcbd
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
jmp 0x1007fcea
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], edx
cmp eax, ecx
jne 0x1007fcea
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x64]
add edx, dword [ecx]
and edx, 7
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + edx*4 + 0x10], ecx
jmp 0x1007fc3c
mov edx, dword [ebp - 0x64]
add edx, 1
and edx, 7
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x1c]
and eax, 0x40
je 0x1007ff37
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x8a0], 8
jl 0x1007fdfc
mov edx, dword [ebp - 0x50]
cmp dword [edx + 0x48], 0
je 0x1007fd5b
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x48]
sub ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x48], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
and ecx, 1
mov dword [ebp - 0x140], ecx
jmp 0x1007fdb4
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x30], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [eax + 0x2c]
je 0x1007fd7a
jmp 0x1007fd8c
mov edx, dword [ebp - 0x50]
add edx, 0x24
push edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x24]
call ecx
add esp, 4
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x48], 7
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x30]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x3c]
and edx, 1
mov dword [ebp - 0x140], edx
cmp dword [ebp - 0x140], 0
je 0x1007fdd7
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
shr ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x3c], ecx
mov dword [ebp - 0x144], 1
jmp 0x1007fdef
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
shr ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x3c], ecx
mov dword [ebp - 0x144], 0
cmp dword [ebp - 0x144], 0
jne 0x1007ff06
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x48], 4
jge 0x1007fe62
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x2c]
jne 0x1007fe34
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx + 0x48]
shl eax, cl
mov edx, dword [ebp - 0x50]
or eax, dword [edx + 0x3c]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
add eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
jmp 0x1007fdfc
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x48], 0x20
jle 0x1007fea1
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x50]
mov ecx, 8
sub ecx, dword [eax + 0x48]
sar edx, cl
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], edx
jmp 0x1007febf
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x70]
and edx, 0xf
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x70]
cmp ecx, dword [eax + 0x89c]
je 0x1007fef1
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x70]
mov dword [edx + 0x89c], eax
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], 0
jmp 0x1007ff06
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x8a0]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], eax
mov edx, dword [ebp - 0x3c]
shl edx, 4
mov eax, dword [ebp - 0x50]
add edx, dword [eax + 0x89c]
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x70]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x70]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x1007ff59
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x1007facf
jmp 0x10080263
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x1007ff7b
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x10080263
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x1007ffa2
jmp 0x10080263
mov eax, dword [ebp - 0xc]
imul eax, dword [ebp - 0x30]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x7c], eax
xor ecx, ecx
cmp dword [ebp - 0xc], 0
setge cl
xor edx, edx
cmp dword [ebp - 0x3c], 0
setg dl
cmp ecx, edx
jne 0x1007ffee
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp eax, 0x100
jne 0x1007ffec
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
jmp 0x10080007
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
test eax, eax
jne 0x10080007
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x40
je 0x1008023c
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x8a0], 8
jl 0x100800ff
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x48], 0
je 0x1008005e
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
and eax, 1
mov dword [ebp - 0x148], eax
jmp 0x100800b7
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x2c]
je 0x1008007d
jmp 0x1008008f
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], 7
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
and ecx, 1
mov dword [ebp - 0x148], ecx
cmp dword [ebp - 0x148], 0
je 0x100800da
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov dword [ebp - 0x14c], 1
jmp 0x100800f2
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov dword [ebp - 0x14c], 0
cmp dword [ebp - 0x14c], 0
jne 0x1008020b
mov edx, dword [ebp - 0x50]
cmp dword [edx + 0x48], 4
jge 0x10080165
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x30]
add ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x30], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x50]
mov edx, dword [eax + 0x30]
cmp edx, dword [ecx + 0x2c]
jne 0x10080137
mov eax, dword [ebp - 0x50]
add eax, 0x24
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x24]
call edx
add esp, 4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x30]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x48]
shl edx, cl
mov ecx, dword [ebp - 0x50]
or edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x48]
add edx, 8
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x48], edx
jmp 0x100800ff
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x48], 0x20
jle 0x100801a6
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x48]
sub edx, 4
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x48], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x50]
mov edx, 8
sub edx, dword [ecx + 0x48]
mov ecx, edx
sar eax, cl
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
jmp 0x100801c4
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x7c]
and edx, 0xf
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x7c]
cmp ecx, dword [eax + 0x89c]
je 0x100801f6
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x7c]
mov dword [edx + 0x89c], eax
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], 0
jmp 0x1008020b
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x8a0]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], eax
mov edx, dword [ebp - 0x10]
shl edx, 4
mov eax, dword [ebp - 0x50]
add edx, dword [eax + 0x89c]
mov dword [ebp - 0x7c], edx
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x7c]
mov dword [ecx], edx
mov eax, dword [ebp - 0x14]
imul eax, eax, 3
add eax, dword [ebp - 0x7c]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x1008025e
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x1007ff72
jmp 0x10082c27
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 8]
cmp ecx, 3
jne 0x10081c26
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xa]
test eax, eax
jne 0x10081c26
mov ecx, dword [ebp - 0x1c]
and ecx, 1
jne 0x10081c26
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x890]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x894]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x88c]
mov dword [ebp - 0x80], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x898]
mov dword [ebp - 0x8c], eax
mov ecx, dword [ebp - 0x1c]
and ecx, 2
je 0x100805a3
mov edx, dword [ebp - 0x1c]
and edx, 0x40
je 0x100804b3
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x100802fc
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x100804ae
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10080323
jmp 0x100804ae
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
and eax, 1
mov ecx, dword [ebp - 0x3c]
shl ecx, 1
or ecx, eax
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x94]
add edx, dword [ebp - 0x98]
sar edx, 1
add edx, dword [ebp - 0xc]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x94]
sub ecx, dword [ebp - 0x98]
sar ecx, 1
add ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
add edx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x48], 8
jge 0x100803ec
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x2c]
jne 0x100803be
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx + 0x48]
shl eax, cl
mov edx, dword [ebp - 0x50]
or eax, dword [edx + 0x3c]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
add eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
jmp 0x10080386
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x48], 0x20
jle 0x1008042e
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x50]
mov ecx, 8
sub ecx, dword [eax + 0x48]
sar edx, cl
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], edx
jmp 0x1008044c
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x10]
shl edx, 4
mov eax, dword [ebp - 0x90]
sar eax, 4
and eax, 0xf
add edx, eax
mov ecx, dword [ebp - 0x58]
mov dword [ecx], edx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
mov eax, dword [ebp - 0x58]
add edx, dword [eax]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 8]
shl edx, 4
mov eax, dword [ebp - 0x90]
and eax, 0xf
add edx, eax
mov ecx, dword [ebp - 0x58]
mov dword [ecx], edx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
mov eax, dword [ebp - 0x58]
add edx, dword [eax]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x100802f3
jmp 0x1008059e
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x20], 0
jmp 0x100804cb
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x10]
jae 0x1008059e
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x100804f2
jmp 0x1008059e
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0xa0]
and edx, 1
mov eax, dword [ebp - 0x3c]
shl eax, 1
or eax, edx
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x9c]
add ecx, dword [ebp - 0xa0]
sar ecx, 1
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x9c]
sub edx, dword [ebp - 0xa0]
sar edx, 1
add edx, dword [ebp - 4]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 8]
add edx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x14]
imul eax, eax, 3
add eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x100804c2
jmp 0x10081be8
mov edx, dword [ebp - 0x1c]
and edx, 0x10
je 0x100816aa
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x100805c7
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x100816a5
mov eax, dword [ebp - 0x1c]
and eax, 0x1000
je 0x10080616
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10083700
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0x80000000
jne 0x100805fe
jmp 0x100816a5
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10083700
mov dword [ebp - 0xb4], eax
jmp 0x100809ef
mov ecx, dword [ebp - 0x1c]
and ecx, 0x400
je 0x10080847
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10083700
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10080640
jmp 0x100816a5
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10083700
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x88]
jle 0x10080756
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
add ecx, dword [ebp - 0x8c]
cmp eax, ecx
jge 0x100806ca
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x8c]
jge 0x100806ca
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xb4]
add edx, dword [ebp - 0xac]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xac]
sub eax, dword [ebp - 0xb4]
mov dword [ebp - 0xc0], eax
jmp 0x10080751
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x88]
jge 0x10080721
mov eax, dword [ebp - 0xb0]
shl eax, 1
mov ecx, dword [ebp - 0xc0]
and ecx, 1
or eax, ecx
mov dword [ebp - 0xb8], eax
mov edx, dword [ebp - 0xb8]
add edx, dword [ebp - 0xc0]
sar edx, 1
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc0]
sar eax, 1
mov dword [ebp - 0xb4], eax
jmp 0x10080751
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xac]
sub edx, dword [ebp - 0xc0]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xb0]
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], eax
jmp 0x10080842
mov ecx, dword [ebp - 0x88]
add ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
add edx, dword [ebp - 0x8c]
cmp ecx, edx
jge 0x100807bb
mov eax, dword [ebp - 0x88]
cmp eax, dword [ebp - 0x8c]
jge 0x100807bb
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xac]
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xac]
sub ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xc0], ecx
jmp 0x10080842
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x84]
jge 0x10080812
mov ecx, dword [ebp - 0xb0]
shl ecx, 1
mov edx, dword [ebp - 0xc0]
and edx, 1
or ecx, edx
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebp - 0xb8]
add eax, dword [ebp - 0xc0]
sar eax, 1
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0xc0]
sar ecx, 1
mov dword [ebp - 0xb4], ecx
jmp 0x10080842
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xc0]
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xac]
add ecx, dword [ebp - 0xb0]
mov dword [ebp - 0xb8], ecx
jmp 0x10080941
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084210
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10080862
jmp 0x100816a5
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084210
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x84]
jg 0x100808c5
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x88]
jg 0x100808c5
mov ecx, dword [ebp - 0xb0]
shl ecx, 1
mov edx, dword [ebp - 0x3c]
and edx, 1
or ecx, edx
mov dword [ebp - 0xb8], ecx
mov eax, dword [ebp - 0xb8]
add eax, dword [ebp - 0x3c]
sar eax, 1
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0xb4], ecx
jmp 0x1008092f
mov edx, dword [ebp - 0x88]
cmp edx, dword [ebp - 0x84]
jg 0x10080902
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xac]
sub ecx, dword [ebp - 0x3c]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xb0]
add edx, dword [ebp - 0xb4]
mov dword [ebp - 0xb8], edx
jmp 0x1008092f
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xb0]
add edx, dword [ebp - 0xac]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xac]
sub eax, dword [ebp - 0xb4]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0x80]
sar ecx, 8
mov esi, dword [ebp - 0x80]
sub esi, ecx
mov eax, dword [ebp - 0xb8]
sar eax, 1
cdq
xor eax, edx
sub eax, edx
add esi, eax
mov dword [ebp - 0x80], esi
mov edx, dword [ebp - 0x88]
sar edx, 8
mov ecx, dword [ebp - 0x88]
sub ecx, edx
mov eax, dword [ebp - 0xac]
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x84]
sar edx, 8
mov ecx, dword [ebp - 0x84]
sub ecx, edx
mov eax, dword [ebp - 0xb4]
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0x8c]
sar edx, 8
mov ecx, dword [ebp - 0x8c]
sub ecx, edx
mov eax, dword [ebp - 0xc0]
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov dword [ebp - 0x8c], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x4000
je 0x100809ef
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xb8]
sar ecx, 1
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x8000
je 0x10080eb6
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x50]
add edx, 0x8cc
mov dword [ebp - 0x24], edx
jmp 0x10080a21
mov eax, dword [ebp - 0x24]
add eax, 0x60
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x40]
sub edx, 1
mov dword [ebp - 0x40], edx
test ecx, ecx
je 0x10080eb1
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0
jle 0x10080be9
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + ecx*4 + 0x10]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + ecx*4 + 0x30]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x64]
add edx, dword [ecx]
and edx, 7
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
imul ecx, dword [ebp - 0xc8]
add ecx, 0x100
sar ecx, 9
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
imul eax, dword [ebp - 0xc4]
add eax, 0x100
sar eax, 9
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xc8], 0
je 0x10080b2d
cmp dword [ebp - 0xac], 0
je 0x10080b2d
mov ecx, dword [ebp - 0xc8]
xor ecx, dword [ebp - 0xac]
jl 0x10080b02
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], edx
cmp eax, 0x200
jne 0x10080b00
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
jmp 0x10080b2d
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], edx
cmp eax, ecx
jne 0x10080b2d
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
cmp dword [ebp - 0xc4], 0
je 0x10080ba6
cmp dword [ebp - 0xb4], 0
je 0x10080ba6
mov eax, dword [ebp - 0xc4]
xor eax, dword [ebp - 0xb4]
jl 0x10080b7b
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
add ecx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
cmp edx, 0x200
jne 0x10080b79
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
sub edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
jmp 0x10080ba6
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0xc]
sub ecx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], ecx
cmp edx, eax
jne 0x10080ba6
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xac]
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xb4]
mov dword [edx + ecx*4 + 0x30], eax
jmp 0x10080eac
mov ecx, dword [ebp - 0x24]
cmp dword [ecx], 0xffffffff
jne 0x10080d53
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [edx + 8]
imul ecx, dword [eax + 0x10]
add ecx, 0x100
sar ecx, 9
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], ecx
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x10], 0
je 0x10080c8f
cmp dword [ebp - 0xac], 0
je 0x10080c8f
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
xor ecx, dword [ebp - 0xac]
jl 0x10080c64
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], edx
cmp eax, 0x200
jne 0x10080c62
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
jmp 0x10080c8f
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], edx
cmp eax, ecx
jne 0x10080c8f
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, dword [ebp - 0xac]
add edx, 0x100
sar edx, 9
add edx, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xac], 0
je 0x10080d36
cmp dword [ebp - 0xb4], 0
je 0x10080d36
mov eax, dword [ebp - 0xac]
xor eax, dword [ebp - 0xb4]
jl 0x10080d0b
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
add ecx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
cmp edx, 0x200
jne 0x10080d09
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
sub edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
jmp 0x10080d36
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0xc]
sub ecx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], ecx
cmp edx, eax
jne 0x10080d36
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xb4]
mov dword [eax + 0x10], ecx
jmp 0x10080eac
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov ecx, dword [edx + 8]
imul ecx, dword [eax + 0x10]
add ecx, 0x100
sar ecx, 9
add ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x10], 0
je 0x10080ded
cmp dword [ebp - 0xb4], 0
je 0x10080ded
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
xor ecx, dword [ebp - 0xb4]
jl 0x10080dc2
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], edx
cmp eax, 0x200
jne 0x10080dc0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
jmp 0x10080ded
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], edx
cmp eax, ecx
jne 0x10080ded
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, dword [ebp - 0xb4]
add edx, 0x100
sar edx, 9
add edx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], edx
cmp dword [ebp - 0xb4], 0
je 0x10080e94
cmp dword [ebp - 0xac], 0
je 0x10080e94
mov eax, dword [ebp - 0xb4]
xor eax, dword [ebp - 0xac]
jl 0x10080e69
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
add ecx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], ecx
cmp edx, 0x200
jne 0x10080e67
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
sub edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
jmp 0x10080e94
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 0xc]
sub ecx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], ecx
cmp edx, eax
jne 0x10080e94
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xac]
mov dword [eax + 0x10], ecx
jmp 0x10080a18
jmp 0x1008136a
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x80]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x50]
add ecx, 0x8cc
mov dword [ebp - 0x24], ecx
jmp 0x10080ed9
mov edx, dword [ebp - 0x24]
add edx, 0x60
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x40]
sub ecx, 1
mov dword [ebp - 0x40], ecx
test eax, eax
je 0x1008136a
mov edx, dword [ebp - 0x24]
cmp dword [edx], 0
jle 0x100810a2
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + eax*4 + 0x10]
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + eax*4 + 0x30]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x64]
add ecx, dword [eax]
and ecx, 7
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, dword [ebp - 0xd4]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, dword [ebp - 0xd0]
add edx, 0x80
sar edx, 8
add edx, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], edx
cmp dword [ebp - 0xd4], 0
je 0x10080fe6
cmp dword [ebp - 0xac], 0
je 0x10080fe6
mov eax, dword [ebp - 0xd4]
xor eax, dword [ebp - 0xac]
jl 0x10080fbb
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], ecx
cmp edx, 0x100
jne 0x10080fb9
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], edx
jmp 0x10080fe6
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 8]
sub ecx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], ecx
cmp edx, eax
jne 0x10080fe6
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
cmp dword [ebp - 0xd0], 0
je 0x1008105f
cmp dword [ebp - 0xb4], 0
je 0x1008105f
mov edx, dword [ebp - 0xd0]
xor edx, dword [ebp - 0xb4]
jl 0x10081034
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
cmp ecx, 0x100
jne 0x10081032
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
sub ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], ecx
jmp 0x1008105f
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
sub eax, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], eax
cmp ecx, edx
jne 0x1008105f
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
add edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xac]
mov dword [eax + edx*4 + 0x10], ecx
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xb4]
mov dword [ecx + eax*4 + 0x30], edx
jmp 0x10081365
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0xffffffff
jne 0x1008120c
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov eax, dword [ecx + 8]
imul eax, dword [edx + 0x10]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 0xac]
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x10], 0
je 0x10081148
cmp dword [ebp - 0xac], 0
je 0x10081148
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
xor eax, dword [ebp - 0xac]
jl 0x1008111d
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], ecx
cmp edx, 0x100
jne 0x1008111b
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], edx
jmp 0x10081148
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 8]
sub ecx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], ecx
cmp edx, eax
jne 0x10081148
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, dword [ebp - 0xac]
add ecx, 0x80
sar ecx, 8
add ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], ecx
cmp dword [ebp - 0xac], 0
je 0x100811ef
cmp dword [ebp - 0xb4], 0
je 0x100811ef
mov edx, dword [ebp - 0xac]
xor edx, dword [ebp - 0xb4]
jl 0x100811c4
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
cmp ecx, 0x100
jne 0x100811c2
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
sub ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], ecx
jmp 0x100811ef
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
sub eax, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], eax
cmp ecx, edx
jne 0x100811ef
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
add edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xb4]
mov dword [edx + 0x10], eax
jmp 0x10081365
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
mov eax, dword [ecx + 8]
imul eax, dword [edx + 0x10]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x10], 0
je 0x100812a6
cmp dword [ebp - 0xb4], 0
je 0x100812a6
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
xor eax, dword [ebp - 0xb4]
jl 0x1008127b
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], ecx
cmp edx, 0x100
jne 0x10081279
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], edx
jmp 0x100812a6
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 8]
sub ecx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], ecx
cmp edx, eax
jne 0x100812a6
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
add eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, dword [ebp - 0xb4]
add ecx, 0x80
sar ecx, 8
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0xa8], ecx
cmp dword [ebp - 0xb4], 0
je 0x1008134d
cmp dword [ebp - 0xac], 0
je 0x1008134d
mov edx, dword [ebp - 0xb4]
xor edx, dword [ebp - 0xac]
jl 0x10081322
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
cmp ecx, 0x100
jne 0x10081320
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
sub ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], ecx
jmp 0x1008134d
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
sub eax, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], eax
cmp ecx, edx
jne 0x1008134d
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
add edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0xac]
mov dword [edx + 0x10], eax
jmp 0x10080ed0
mov ecx, dword [ebp - 0x64]
add ecx, 1
and ecx, 7
mov dword [ebp - 0x64], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x4000
je 0x100813ce
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xc0]
and ecx, 1
mov edx, dword [ebp - 0xb4]
shl edx, 1
or edx, ecx
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc0]
sar eax, 1
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0xb8]
add ecx, dword [ebp - 0xc0]
sar ecx, 1
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x40
je 0x10081654
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x8a0], 8
jl 0x100814b4
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x48], 0
je 0x10081413
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
and eax, 1
mov dword [ebp - 0x150], eax
jmp 0x1008146c
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x2c]
je 0x10081432
jmp 0x10081444
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], 7
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
and ecx, 1
mov dword [ebp - 0x150], ecx
cmp dword [ebp - 0x150], 0
je 0x1008148f
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov dword [ebp - 0x154], 1
jmp 0x100814a7
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov dword [ebp - 0x154], 0
cmp dword [ebp - 0x154], 0
jne 0x100815d2
mov edx, dword [ebp - 0x50]
cmp dword [edx + 0x48], 8
jge 0x1008151a
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x30]
add ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x30], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x50]
mov edx, dword [eax + 0x30]
cmp edx, dword [ecx + 0x2c]
jne 0x100814ec
mov eax, dword [ebp - 0x50]
add eax, 0x24
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x24]
call edx
add esp, 4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x30]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x48]
shl edx, cl
mov ecx, dword [ebp - 0x50]
or edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x48]
add edx, 8
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x48], edx
jmp 0x100814b4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x3c]
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x48], 0x20
jle 0x1008155e
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x48]
sub edx, 8
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x48], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x50]
mov edx, 8
sub edx, dword [ecx + 0x48]
mov ecx, edx
sar eax, cl
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
jmp 0x1008157c
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0xbc]
and edx, 0xff
mov dword [ebp - 0xbc], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0xbc]
cmp ecx, dword [eax + 0x89c]
je 0x100815bd
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xbc]
mov dword [edx + 0x89c], eax
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], 0
jmp 0x100815d2
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x8a0]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], eax
mov edx, dword [ebp - 0xac]
shl edx, 4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x89c]
sar ecx, 4
add edx, ecx
mov dword [ebp - 0xac], edx
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xac]
mov dword [edx], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0xac]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0xb4]
shl eax, 4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x89c]
and edx, 0xf
add eax, edx
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xb4]
mov dword [eax], ecx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0xb4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x100816a0
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 9
mov edx, dword [ebp - 0xac]
imul edx, edx, 3
add ecx, dword [ebp - 0xb4]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x100805be
jmp 0x10081be8
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x100816c2
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x10081be8
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x100816e9
jmp 0x10081be8
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x84]
jg 0x10081740
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x88]
jg 0x10081740
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
shl eax, 1
mov edx, dword [ebp - 0x3c]
and edx, 1
or eax, edx
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
add eax, dword [ebp - 0x3c]
sar eax, 1
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0xec]
sub ecx, dword [ebp - 0x3c]
sar ecx, 1
mov dword [ebp - 0xe8], ecx
jmp 0x100817b8
mov edx, dword [ebp - 0x88]
cmp edx, dword [ebp - 0x84]
jg 0x10081784
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xe4]
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0xe4]
add ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xec], ecx
jmp 0x100817b8
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0x3c]
add edx, dword [ebp - 0xe8]
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xe8]
add eax, dword [ebp - 0xe4]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0x80]
sar ecx, 8
mov esi, dword [ebp - 0x80]
sub esi, ecx
mov eax, dword [ebp - 0xec]
sar eax, 1
cdq
xor eax, edx
sub eax, edx
add esi, eax
mov dword [ebp - 0x80], esi
mov edx, dword [ebp - 0x88]
sar edx, 8
mov ecx, dword [ebp - 0x88]
sub ecx, edx
mov eax, dword [ebp - 0xe4]
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov dword [ebp - 0x88], ecx
mov edx, dword [ebp - 0x84]
sar edx, 8
mov ecx, dword [ebp - 0x84]
sub ecx, edx
mov eax, dword [ebp - 0xe8]
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov dword [ebp - 0x84], ecx
mov edx, dword [ebp - 0xc]
imul edx, dword [ebp - 0x30]
add edx, 0x80
sar edx, 8
add edx, dword [ebp - 0x10]
add edx, dword [ebp - 0xe4]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 0x2c]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 8]
add eax, dword [ebp - 0xe8]
mov dword [ebp - 0xdc], eax
xor ecx, ecx
cmp dword [ebp - 0xc], 0
setge cl
xor edx, edx
cmp dword [ebp - 0xe4], 0
setg dl
cmp ecx, edx
jne 0x10081891
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp eax, 0x100
jne 0x1008188f
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
jmp 0x100818aa
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
test eax, eax
jne 0x100818aa
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
xor eax, eax
cmp dword [ebp - 4], 0
setge al
xor ecx, ecx
cmp dword [ebp - 0xe8], 0
setg cl
cmp eax, ecx
jne 0x100818e2
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
cmp edx, 0x100
jne 0x100818e0
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
jmp 0x100818fb
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
sub eax, 1
mov dword [ebp - 0x2c], eax
test edx, edx
jne 0x100818fb
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0xdc]
sub ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
add edx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x1c]
and eax, 0x40
je 0x10081ba3
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x8a0], 8
jl 0x10081a0b
mov edx, dword [ebp - 0x50]
cmp dword [edx + 0x48], 0
je 0x1008196a
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x48]
sub ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x48], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
and ecx, 1
mov dword [ebp - 0x158], ecx
jmp 0x100819c3
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x30], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
mov ecx, dword [edx + 0x30]
cmp ecx, dword [eax + 0x2c]
je 0x10081989
jmp 0x1008199b
mov edx, dword [ebp - 0x50]
add edx, 0x24
push edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x24]
call ecx
add esp, 4
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x48], 7
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x30]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x3c], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x3c]
and edx, 1
mov dword [ebp - 0x158], edx
cmp dword [ebp - 0x158], 0
je 0x100819e6
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
shr ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x3c], ecx
mov dword [ebp - 0x15c], 1
jmp 0x100819fe
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x3c]
shr ecx, 1
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x3c], ecx
mov dword [ebp - 0x15c], 0
cmp dword [ebp - 0x15c], 0
jne 0x10081b27
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x48], 8
jge 0x10081a71
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
add edx, 1
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x30], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx + 0x30]
cmp eax, dword [edx + 0x2c]
jne 0x10081a43
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x30]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx + 0x48]
shl eax, cl
mov edx, dword [ebp - 0x50]
or eax, dword [edx + 0x3c]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
add eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
jmp 0x10081a0b
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx + 0x48], 0x20
jle 0x10081ab3
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x30]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x50]
mov ecx, 8
sub ecx, dword [eax + 0x48]
sar edx, cl
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], edx
jmp 0x10081ad1
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x48]
sub eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x3c]
shr eax, 8
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0xf0]
and edx, 0xff
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0xf0]
cmp ecx, dword [eax + 0x89c]
je 0x10081b12
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xf0]
mov dword [edx + 0x89c], eax
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], 0
jmp 0x10081b27
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x8a0]
add eax, 1
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a0], eax
mov edx, dword [ebp - 0x10]
shl edx, 4
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x89c]
sar ecx, 4
add edx, ecx
mov dword [ebp - 0xe0], edx
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xe0]
mov dword [edx], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 8]
shl eax, 4
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x89c]
and edx, 0xf
add eax, edx
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xdc]
mov dword [eax], ecx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0xdc]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x10081be3
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 9
mov edx, dword [ebp - 0x10]
imul edx, edx, 3
add ecx, dword [ebp - 8]
add edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x100816b9
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x88]
mov dword [eax + 0x890], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x84]
mov dword [edx + 0x894], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x80]
mov dword [ecx + 0x88c], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x8c]
mov dword [eax + 0x898], ecx
jmp 0x10082c27
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 8]
cmp eax, 3
jne 0x100820fd
mov ecx, dword [ebp - 0x50]
movsx edx, word [ecx + 0xa]
test edx, edx
je 0x100820fd
mov eax, dword [ebp - 0x1c]
and eax, 1
je 0x100820fd
mov ecx, dword [ebp - 0x1c]
and ecx, 2
je 0x10081d30
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x20], 0
jmp 0x10081c75
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x10]
jae 0x10081d2b
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10081c9c
jmp 0x10081d2b
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x28]
jge 0x10081ce6
mov eax, dword [ebp - 0x18]
neg eax
cmp dword [ebp - 0x10], eax
jge 0x10081cd3
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x38]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x10081d26
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x34]
jle 0x10081d10
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jle 0x10081cfd
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10081d26
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10081c6c
jmp 0x100820f8
mov eax, dword [ebp - 0x1c]
and eax, 0x410
je 0x10081fbd
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x20], 0
jmp 0x10081d56
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp + 0x10]
jae 0x10081fb8
mov ecx, dword [ebp - 0x1c]
and ecx, 0x400
je 0x10081d83
lea edx, [ebp - 0x60]
push edx
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10085160
mov dword [ebp - 0x160], eax
jmp 0x10081d93
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10081daa
jmp 0x10081fb8
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0x80]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x50]
add eax, 0x8cc
mov dword [ebp - 0x24], eax
jmp 0x10081dcc
mov ecx, dword [ebp - 0x24]
add ecx, 0x60
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
sub eax, 1
mov dword [ebp - 0x40], eax
test edx, edx
je 0x10081ebf
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + ecx*4 + 0x10]
mov dword [ebp - 0xf8], eax
mov ecx, dword [ebp - 0xf8]
and ecx, 0xffff
mov edx, dword [ebp - 0x24]
imul ecx, dword [edx + 8]
sar ecx, 7
mov eax, dword [ebp - 0xf8]
and eax, 0xffff0000
sar eax, 7
mov edx, dword [ebp - 0x24]
imul eax, dword [edx + 8]
lea eax, [ecx + eax + 1]
sar eax, 1
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf8], 0
je 0x10081e9c
cmp dword [ebp - 0x3c], 0
je 0x10081e9c
mov ecx, dword [ebp - 0xf8]
xor ecx, dword [ebp - 0x3c]
jl 0x10081e71
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], edx
cmp eax, 0x100
jne 0x10081e6f
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 8], eax
jmp 0x10081e9c
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 8]
sub edx, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], edx
cmp eax, ecx
jne 0x10081e9c
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
add ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x64]
add edx, dword [ecx]
and edx, 7
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov dword [eax + edx*4 + 0x10], ecx
jmp 0x10081dc3
mov edx, dword [ebp - 0x64]
add edx, 1
and edx, 7
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x1c]
and eax, 0x80
je 0x10081f3b
mov ecx, dword [ebp - 0x1c]
and ecx, 0x100
je 0x10081f0e
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x60]
add eax, dword [edx + 0x8a8]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x60]
neg edx
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x8a8], edx
jmp 0x10081f23
mov ecx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10081fb3
mov eax, dword [ebp - 0x14]
imul eax, eax, 3
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0x28]
jge 0x10081f73
mov edx, dword [ebp - 0x18]
neg edx
cmp dword [ebp - 0x3c], edx
jge 0x10081f60
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x38]
mov dword [eax], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10081fb3
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x34]
jle 0x10081f9d
mov ecx, dword [ebp - 0x3c]
cmp ecx, dword [ebp - 0x18]
jle 0x10081f8a
mov dword [ebp - 0x4c], 1
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x10081fb3
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x10081d4d
jmp 0x100820f8
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x20], 0
jmp 0x10081fd5
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x10]
jae 0x100820f8
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10081ffc
jmp 0x100820f8
mov edx, dword [ebp - 0xc]
imul edx, dword [ebp - 0x30]
add edx, 0x80
sar edx, 8
add edx, dword [ebp - 0x10]
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0xfc], edx
xor eax, eax
cmp dword [ebp - 0xc], 0
setge al
xor ecx, ecx
cmp dword [ebp - 0x3c], 0
setg cl
cmp eax, ecx
jne 0x1008204d
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
add eax, 1
mov dword [ebp - 0x30], eax
cmp edx, 0x100
jne 0x1008204b
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
jmp 0x10082066
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
sub eax, 1
mov dword [ebp - 0x30], eax
test edx, edx
jne 0x10082066
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0xfc]
sub edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x14]
imul ecx, ecx, 3
add ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x28]
jge 0x100820b3
mov eax, dword [ebp - 0x18]
neg eax
cmp dword [ebp - 0x10], eax
jge 0x100820a0
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x38]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x100820f3
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x34]
jle 0x100820dd
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jle 0x100820ca
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x100820f3
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10081fcc
jmp 0x10082c27
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 8]
cmp ecx, 3
jne 0x100829d5
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xa]
test eax, eax
je 0x100829d5
mov ecx, dword [ebp - 0x1c]
and ecx, 1
jne 0x100829d5
mov edx, dword [ebp - 0x1c]
and edx, 2
je 0x1008229b
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x1008214c
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x10082296
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10082173
jmp 0x10082296
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x28]
jge 0x100821bd
mov ecx, dword [ebp - 0x18]
neg ecx
cmp dword [ebp - 0x10], ecx
jge 0x100821aa
mov dword [ebp - 0x4c], 1
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x100821fd
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x34]
jle 0x100821e7
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jle 0x100821d4
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x44]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x100821fd
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
add eax, dword [ebp - 4]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 8]
add edx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x14]
imul eax, eax, 3
add eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x28]
jge 0x10082251
mov edx, dword [ebp - 0x18]
neg edx
cmp dword [ebp - 8], edx
jge 0x1008223e
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x38]
mov dword [eax], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10082291
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 0x34]
jle 0x1008227b
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x18]
jle 0x10082268
mov dword [ebp - 0x4c], 1
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x44]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x10082291
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x10082143
jmp 0x100829d0
mov edx, dword [ebp - 0x1c]
and edx, 0x410
je 0x10082792
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x100822c2
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x1008278d
mov eax, dword [ebp - 0x1c]
and eax, 0x400
je 0x10082305
lea ecx, [ebp - 0x60]
push ecx
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10085160
mov dword [ebp - 0x108], eax
lea edx, [ebp - 0x5c]
push edx
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10085160
mov dword [ebp - 0x10c], eax
jmp 0x10082328
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x108], eax
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x108], 0x80000000
jne 0x10082339
jmp 0x1008278d
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x80]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x50]
add edx, 0x8cc
mov dword [ebp - 0x24], edx
jmp 0x1008235c
mov eax, dword [ebp - 0x24]
add eax, 0x60
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x40]
sub edx, 1
mov dword [ebp - 0x40], edx
test ecx, ecx
je 0x10082552
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + eax*4 + 0x10]
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + eax*4 + 0x30]
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x64]
add ecx, dword [eax]
and ecx, 7
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x11c]
and edx, 0xffff
mov eax, dword [ebp - 0x24]
imul edx, dword [eax + 8]
sar edx, 7
mov ecx, dword [ebp - 0x11c]
and ecx, 0xffff0000
sar ecx, 7
mov eax, dword [ebp - 0x24]
imul ecx, dword [eax + 8]
lea ecx, [edx + ecx + 1]
sar ecx, 1
add ecx, dword [ebp - 0x108]
mov dword [ebp - 0x104], ecx
cmp dword [ebp - 0x11c], 0
je 0x10082458
cmp dword [ebp - 0x108], 0
je 0x10082458
mov edx, dword [ebp - 0x11c]
xor edx, dword [ebp - 0x108]
jl 0x1008242d
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
add eax, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], eax
cmp ecx, 0x100
jne 0x1008242b
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], ecx
jmp 0x10082458
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
sub eax, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 8], eax
cmp ecx, edx
jne 0x10082458
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
add edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x108]
mov dword [eax + edx*4 + 0x10], ecx
mov edx, dword [ebp - 0x118]
and edx, 0xffff
mov eax, dword [ebp - 0x24]
imul edx, dword [eax + 0xc]
sar edx, 7
mov ecx, dword [ebp - 0x118]
and ecx, 0xffff0000
sar ecx, 7
mov eax, dword [ebp - 0x24]
imul ecx, dword [eax + 0xc]
lea ecx, [edx + ecx + 1]
sar ecx, 1
add ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x100], ecx
cmp dword [ebp - 0x118], 0
je 0x1008252e
cmp dword [ebp - 0x10c], 0
je 0x1008252e
mov edx, dword [ebp - 0x118]
xor edx, dword [ebp - 0x10c]
jl 0x10082503
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
add eax, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
cmp ecx, 0x100
jne 0x10082501
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
sub ecx, 1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], ecx
jmp 0x1008252e
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc]
sub eax, 1
mov esi, dword [ebp - 0x24]
mov dword [esi + 0xc], eax
cmp ecx, edx
jne 0x1008252e
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
add edx, 1
mov eax, dword [ebp - 0x24]
mov dword [eax + 0xc], edx
mov ecx, dword [ebp - 0x100]
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10c]
mov dword [eax + edx*4 + 0x30], ecx
jmp 0x10082353
mov edx, dword [ebp - 0x64]
add edx, 1
and edx, 7
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x1c]
and eax, 0x80
je 0x100825df
mov ecx, dword [ebp - 0x1c]
and ecx, 0x100
je 0x100825c1
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x60]
add eax, dword [edx + 0x8a8]
add eax, dword [ebp - 0x108]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x5c]
add edx, dword [ecx + 0x8ac]
add edx, dword [ebp - 0x10c]
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x60]
neg eax
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x8a8], eax
mov edx, dword [ebp - 0x5c]
neg edx
mov eax, dword [ebp - 0x50]
mov dword [eax + 0x8ac], edx
jmp 0x100825df
mov ecx, dword [ebp - 0x108]
add ecx, dword [ebp - 0x60]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0x10c]
add edx, dword [ebp - 0x5c]
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x1c]
and eax, 0x4000
je 0x10082636
mov ecx, dword [ebp - 0x10c]
shl ecx, 1
mov edx, dword [ebp - 0x108]
and edx, 1
or ecx, edx
mov dword [ebp - 0x110], ecx
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x110]
sub ecx, dword [ebp - 0x114]
sar ecx, 1
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x110]
add edx, dword [ebp - 0x114]
sar edx, 1
mov dword [ebp - 0x108], edx
mov eax, dword [ebp - 0x14]
imul eax, eax, 9
mov ecx, dword [ebp - 0x108]
imul ecx, ecx, 3
add eax, dword [ebp - 0x10c]
add ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x1c]
and edx, 0x80
je 0x10082692
mov eax, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10082788
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x28]
jge 0x100826c4
mov ecx, dword [ebp - 0x18]
neg ecx
cmp dword [ebp - 0x108], ecx
jge 0x100826b1
mov dword [ebp - 0x4c], 1
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x1008270d
mov edx, dword [ebp - 0x108]
cmp edx, dword [ebp - 0x34]
jle 0x100826f4
mov eax, dword [ebp - 0x108]
cmp eax, dword [ebp - 0x18]
jle 0x100826e1
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x44]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x1008270d
mov edx, dword [ebp - 0x108]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x10c]
cmp edx, dword [ebp - 0x28]
jge 0x1008273f
mov eax, dword [ebp - 0x18]
neg eax
cmp dword [ebp - 0x10c], eax
jge 0x1008272c
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x38]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x10082788
mov ecx, dword [ebp - 0x10c]
cmp ecx, dword [ebp - 0x34]
jle 0x1008276f
mov edx, dword [ebp - 0x10c]
cmp edx, dword [ebp - 0x18]
jle 0x1008275c
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x10082788
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x100822b9
jmp 0x100829d0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x100827aa
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x100829d0
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x100827d1
jmp 0x100829d0
mov eax, dword [ebp - 0xc]
imul eax, dword [ebp - 0x30]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x124], eax
xor ecx, ecx
cmp dword [ebp - 0xc], 0
setge cl
xor edx, edx
cmp dword [ebp - 0x3c], 0
setg dl
cmp ecx, edx
jne 0x10082820
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp eax, 0x100
jne 0x1008281e
mov edx, dword [ebp - 0x30]
sub edx, 1
mov dword [ebp - 0x30], edx
jmp 0x10082839
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
sub ecx, 1
mov dword [ebp - 0x30], ecx
test eax, eax
jne 0x10082839
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.10084c20
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
imul eax, dword [ebp - 0x2c]
add eax, 0x80
sar eax, 8
add eax, dword [ebp - 8]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0x124], eax
xor ecx, ecx
cmp dword [ebp - 4], 0
setge cl
xor edx, edx
cmp dword [ebp - 0x3c], 0
setg dl
cmp ecx, edx
jne 0x100828b9
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
cmp eax, 0x100
jne 0x100828b7
mov edx, dword [ebp - 0x2c]
sub edx, 1
mov dword [ebp - 0x2c], edx
jmp 0x100828d2
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x2c]
sub ecx, 1
mov dword [ebp - 0x2c], ecx
test eax, eax
jne 0x100828d2
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x124]
sub eax, dword [ebp - 8]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x124]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x14]
imul edx, edx, 3
add edx, dword [ebp - 8]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x28]
jge 0x1008291f
mov ecx, dword [ebp - 0x18]
neg ecx
cmp dword [ebp - 0x10], ecx
jge 0x1008290c
mov dword [ebp - 0x4c], 1
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x38]
mov dword [edx], eax
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x1008295f
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x34]
jle 0x10082949
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x18]
jle 0x10082936
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x44]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x1008295f
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 8]
cmp edx, dword [ebp - 0x28]
jge 0x1008298b
mov eax, dword [ebp - 0x18]
neg eax
cmp dword [ebp - 8], eax
jge 0x10082978
mov dword [ebp - 0x4c], 1
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 0x38]
mov dword [ecx], edx
mov eax, dword [ebp - 0x58]
add eax, 4
mov dword [ebp - 0x58], eax
jmp 0x100829cb
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x34]
jle 0x100829b5
mov edx, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jle 0x100829a2
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x100829cb
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x68]
shl eax, cl
mov ecx, dword [ebp - 0x58]
mov dword [ecx], eax
mov edx, dword [ebp - 0x58]
add edx, 4
mov dword [ebp - 0x58], edx
jmp 0x100827a1
jmp 0x10082c27
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 8]
cmp ecx, 2
jne 0x10082aa8
mov edx, dword [ebp - 0x1c]
and edx, 1
je 0x10082aa8
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x20], 0
jmp 0x10082a09
mov ecx, dword [ebp - 0x20]
add ecx, 1
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x20]
cmp edx, dword [ebp + 0x10]
jae 0x10082aa3
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.100846e0
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10082a2d
jmp 0x10082aa3
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x3c]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xa]
test eax, eax
je 0x10082a88
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x28]
jge 0x10082a6b
mov edx, dword [ebp - 0x18]
neg edx
cmp dword [ebp - 0x10], edx
jge 0x10082a63
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x10082a88
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x34]
jle 0x10082a88
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jle 0x10082a82
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x10082a00
jmp 0x10082c27
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 8]
cmp eax, 3
jge 0x10082c20
mov ecx, dword [ebp - 0x1c]
and ecx, 1
jne 0x10082c20
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x20], 0
jmp 0x10082adc
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0x10]
jae 0x10082c1e
xor edx, edx
mov ecx, dword [ebp - 0x50]
call fcn.100846e0
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x80000000
jne 0x10082b03
jmp 0x10082c1e
mov edx, 1
mov ecx, dword [ebp - 0x50]
call fcn.100846e0
mov dword [ebp - 0x12c], eax
mov edx, dword [ebp - 0x12c]
and edx, 1
mov eax, dword [ebp - 0x3c]
shl eax, 1
or eax, edx
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x128]
add ecx, dword [ebp - 0x12c]
sar ecx, 1
add ecx, dword [ebp - 0xc]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x10]
add edx, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0x12c]
sar eax, 1
add eax, dword [ebp - 4]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 4]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xa]
test eax, eax
je 0x10082bed
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x28]
jge 0x10082b92
mov edx, dword [ebp - 0x18]
neg edx
cmp dword [ebp - 0x10], edx
jge 0x10082b8a
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x10082baf
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x34]
jle 0x10082baf
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0x18]
jle 0x10082ba9
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x28]
jge 0x10082bd0
mov edx, dword [ebp - 0x18]
neg edx
cmp dword [ebp - 8], edx
jge 0x10082bc8
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x28]
mov dword [ebp - 8], eax
jmp 0x10082bed
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x34]
jle 0x10082bed
mov edx, dword [ebp - 8]
cmp edx, dword [ebp - 0x18]
jle 0x10082be7
mov dword [ebp - 0x4c], 1
mov eax, dword [ebp - 0x34]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x68]
shl edx, cl
mov eax, dword [ebp - 0x58]
mov dword [eax], edx
mov ecx, dword [ebp - 0x58]
add ecx, 4
mov dword [ebp - 0x58], ecx
jmp 0x10082ad3
jmp 0x10082c27
mov dword [ebp - 0x20], 0
mov edx, dword [ebp - 0x50]
movsx eax, word [edx + 0xa]
test eax, eax
je 0x10082c3d
mov ecx, dword [ebp - 0x1c]
and ecx, 0x80
je 0x10082c97
mov edx, dword [ebp - 0x1c]
and edx, 1
neg edx
sbb edx, edx
add edx, 2
imul edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
lea ecx, [eax + edx*4]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x58], edx
jmp 0x10082c6b
mov eax, dword [ebp - 0x58]
add eax, 0xc
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x130]
jae 0x10082c97
mov edx, dword [ebp - 0x58]
mov eax, dword [edx]
cmp eax, dword [ebp - 0x18]
jg 0x10082c8c
mov ecx, dword [ebp - 0x18]
neg ecx
mov edx, dword [ebp - 0x58]
cmp dword [edx], ecx
jge 0x10082c95
mov dword [ebp - 0x4c], 1
jmp 0x10082c97
jmp 0x10082c62
cmp dword [ebp - 0x4c], 0
je 0x10082cc2
mov eax, dword [ebp + 0x10]
shl eax, 2
mov ecx, dword [ebp - 0x1c]
and ecx, 1
neg ecx
sbb ecx, ecx
add ecx, 2
imul eax, ecx
push eax
push 0
mov edx, dword [ebp + 0xc]
push edx
call fcn.10059a00
add esp, 0xc
cmp dword [ebp - 0x20], 0
je 0x10082f46
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x7c]
add ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x7c], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + 8]
mov edx, dword [eax + 0x7c]
cmp edx, dword [ecx + 0x8c]
jne 0x10082f46
mov eax, dword [ebp - 0x50]
movsx ecx, word [eax + 8]
cmp ecx, 3
jne 0x10082d42
mov edx, dword [ebp + 8]
cmp dword [edx + 0x98], 0
je 0x10082d16
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x164], ecx
jmp 0x10082d22
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x164]
je 0x10082d42
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x90]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x90], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x9c]
and eax, 4
je 0x10082f46
push 0x400
call fcn.10057d9c
add esp, 4
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
call fcn.100830d0
add esp, 4
test eax, eax
je 0x10082df5
mov edx, dword [ebp - 0x50]
add edx, 0x24
push edx
call fcn.100830d0
add esp, 4
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x60]
push eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5c]
push eax
call fcn.100590a5
add esp, 8
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], eax
mov edx, dword [ebp - 0x50]
add edx, 0x24
push edx
call fcn.100830d0
add esp, 4
push eax
mov eax, dword [ebp - 0x50]
add eax, 0x24
push eax
call fcn.10083110
add esp, 4
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x60]
push edx
call fcn.10059a80
add esp, 0xc
mov ecx, dword [ebp - 0x50]
add ecx, 0x24
push ecx
call fcn.100830d0
add esp, 4
mov edx, dword [ebp + 8]
add eax, dword [edx + 0x60]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x60], eax
mov edx, 1
test edx, edx
je 0x10082e8c
push 4
mov eax, dword [ebp - 0x138]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x74]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov edx, dword [ecx]
call edx
add esp, 0xc
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
jne 0x10082e30
jmp 0x10082e8c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x60]
add ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5c]
push eax
call fcn.100590a5
add esp, 8
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], eax
mov edx, dword [ebp - 0x134]
push edx
mov eax, dword [ebp - 0x138]
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x60]
push edx
call fcn.10059a80
add esp, 0xc
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x60]
add edx, dword [ebp - 0x134]
mov eax, dword [ebp + 8]
mov dword [eax + 0x60], edx
jmp 0x10082df5
mov ecx, dword [ebp - 0x138]
push ecx
call fcn.10057e66
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x60], 0x10
jbe 0x10082f46
mov dword [ebp - 0x13c], 0
jmp 0x10082ec3
mov eax, dword [ebp - 0x13c]
add eax, 1
mov dword [ebp - 0x13c], eax
cmp dword [ebp - 0x13c], 0x10
jge 0x10082ee6
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
mov eax, dword [ebp - 0x13c]
movzx ecx, byte [edx + eax]
cmp ecx, 0xff
jne 0x10082ee6
jmp 0x10082eb4
cmp dword [ebp - 0x13c], 0x10
jne 0x10082f23
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x60]
sub eax, 0x10
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
add edx, 0x10
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x5c]
push ecx
call fcn.10059a80
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x60]
sub eax, 0x10
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x60], eax
jmp 0x10082f46
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x5c]
push eax
call fcn.10057e66
add esp, 4
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x5c], 0
mov edx, dword [ebp + 8]
mov dword [edx + 0x60], 0
mov eax, dword [ebp - 0x50]
add eax, 0x8b4
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 4]
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x30]
mov dword [eax + 0x8c4], ecx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x8c8], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x8b0], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x64]
mov dword [edx + 0x8a4], eax
mov eax, dword [ebp - 0x20]
pop esi
mov esp, ebp
pop ebp
ret