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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esp + 0xb8], eax
mov dword [esp + 0x7c], 0xffffffff
mov eax, dword [ecx + 0xb2280]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0xb2284]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], eax
mov ebx, dword [edx + 0x51fc]
mov esi, dword [ecx + 0xb1dd8]
imul esi, ebx
add esi, dword [edx + 0x51f8]
mov eax, dword [ecx + 0xb188c]
mov dword [esp + 0x30], eax
mov eax, esi
mov dword [esp + 0x6c], esi
mov dword [edx + 0x5200], esi
mov edx, dword [edx + 0x24]
cmp edx, 1
jne 0x1007a149
cmp dword [ecx + 0xb1b58], 0
jne 0x1007a3c7
mov edi, dword [ebp + 0xc]
mov dword [edi + 0x516c], 0
lea ebx, [edi + 0xc]
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0xc]
mov esi, eax
shr esi, 3
mov esi, dword [ecx + esi]
mov edi, dword [edi + 0x14]
bswap esi
mov ecx, eax
and cl, 7
shl esi, cl
cmp esi, 0x8000000
mov dword [esp + 4], ebx
jb 0x1007a40b
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add eax, ecx
cmp edi, eax
cmovb eax, edi
mov dword [ebx], eax
movzx eax, byte [esi + 0x102b0fc9]
cmp edx, 2
je 0x1007a449
cmp edx, 3
je 0x1007a463
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x20], 5
jne 0x10079d00
test eax, eax
jne 0x1007b673
cmp eax, 0x19
ja 0x1007aa39
movzx ecx, byte [eax*4 + 0x102de99d]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [eax*4 + 0x102de99c]
mov edi, dword [ebp + 0xc]
mov dword [edi + 0x5178], ecx
movzx eax, word [eax*4 + 0x102de99a]
mov dword [esp + 0x7c], eax
xor ecx, ecx
mov dword [esp + 0xc], ecx
cmp dword [edi + 0x5220], 0
jne 0x1007a48f
movzx eax, word [edi + 0x1c]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0xb1b54]
mov edx, dword [esp + 0x6c]
mov word [ecx + edx*2], ax
lea eax, [edi + 0x14]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x7c]
test bl, 4
jne 0x1007a49d
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.1007e910
add esp, 4
mov ecx, esi
mov edx, edi
push ebx
call fcn.1007ebb0
add esp, 4
test bl, 7
je 0x1007a56d
test bl, 1
jne 0x1007a78e
push 0
mov esi, dword [ebp + 0xc]
push dword [esi + 0x5178]
push dword [esi + 0x51e4]
push dword [esi + 0x51dc]
mov eax, dword [ebp + 8]
push dword [eax + 4]
call fcn.100825f0
add esp, 0x14
mov dword [esi + 0x5178], eax
test eax, eax
js 0x1007aa39
mov eax, dword [esp + 0x38]
dec eax
cmp eax, 1
ja 0x1007a7fa
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov edx, ebx
shr edx, 3
mov edx, dword [ecx + edx]
bswap edx
mov ecx, ebx
and cl, 7
shl edx, cl
shr edx, 0x17
movzx ecx, byte [edx + 0x102b0dc9]
add ecx, ebx
cmp eax, ecx
cmovb ecx, eax
mov dword [esi + 0xc], ecx
movzx eax, byte [edx + 0x102b0fc9]
push 1
push eax
push dword [esi + 0x51e4]
push dword [esi + 0x51dc]
mov eax, dword [ebp + 8]
push dword [eax + 4]
call fcn.100825f0
add esp, 0x14
test eax, eax
js 0x1007aa39
mov dword [esi + 0x5174], eax
mov edx, dword [esp + 0x7c]
test dl, 0x78
jne 0x1007a80c
mov eax, dword [esp + 0x7c]
test al, 2
je 0x1007a94c
mov ecx, dword [esp + 0x38]
add ecx, 0xfffffffd
cmp ecx, 0xfffffffd
ja 0x10079e75
cmp dword [esp + 0x2c], 0xf
ja 0x1007b679
cmp dword [esp + 0x28], 0
je 0x10079e89
mov ecx, dword [esp + 0x2c]
and ecx, 0xf
jne 0x1007b686
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb1b68]
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x2c]
mov word [eax + edx*2], si
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x523c], esi
mov eax, dword [esp + 0x7c]
mov ecx, dword [ecx + 0xb133c]
mov dword [ecx + edx*4], eax
test esi, esi
jne 0x10079ec3
test byte [esp + 0x7c], 2
je 0x1007a99e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2284]
mov edx, dword [eax + 0x6a4]
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx]
mov ecx, eax
shr ecx, 3
mov edi, dword [esi + ecx]
bswap edi
mov ecx, eax
and cl, 7
shl edi, cl
add edx, edx
mov ecx, dword [esp + 0x18]
mov ebx, dword [ecx]
lea ecx, [edx + edx*2]
add ecx, 3
mov dword [esp + 0x38], ecx
cmp edi, 0x8000000
jb 0x1007a9c0
shr edi, 0x17
movzx ecx, byte [edi + 0x102b0dc9]
add eax, ecx
cmp ebx, eax
cmovb eax, ebx
mov ecx, dword [esp + 4]
mov dword [ecx], eax
movsx esi, byte [edi + 0x102b11c9]
mov eax, dword [ebp + 0xc]
add esi, dword [eax + 0x2c]
mov dword [eax + 0x2c], esi
mov edi, dword [esp + 0x38]
cmp esi, edi
ja 0x1007aa0d
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
movzx eax, byte [eax + esi + 0x224]
mov edx, dword [ebp + 0xc]
mov dword [edx + 0x30], eax
mov eax, dword [ecx + 0xb2280]
movzx eax, byte [eax + esi + 0x27c]
mov dword [edx + 0x34], eax
mov ebx, dword [esp + 0x7c]
test bl, 0x80
jne 0x1007aa45
lea edx, [ecx + 0xb1bdc]
lea eax, [ecx + 0xb1cfc]
test esi, esi
cmove edx, eax
mov dword [esp + 0x38], edx
lea eax, [ecx + 0xb1b8c]
lea ecx, [ecx + 0xb1cac]
cmovne ecx, eax
mov dword [esp + 4], ecx
test bl, 2
je 0x1007aa6b
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0x7860]
pxor xmm0, xmm0
movdqa xmmword [edx + 0x7860], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x7870], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x7880], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x7890], xmm0
mov ecx, dword [ebp + 8]
push 0x10
push 0
push dword [esp + 0xc]
push 0x30
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
test eax, eax
js 0x1007a12f
test byte [esp + 0x2c], 0xf
jne 0x1007ae99
xor edi, edi
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x6994], edi
mov dword [eax + 0x699c], edi
mov dword [eax + 0x69a4], edi
mov dword [eax + 0x69ac], edi
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb1b68]
shl edi, 0xc
mov edx, dword [esp + 0x6c]
or word [eax + edx*2], di
mov eax, dword [ecx + 0xb2284]
mov esi, dword [eax + 0xc]
cmp esi, 3
je 0x1007b013
test byte [esp + 0x2c], 0x30
jne 0x1007b3ef
test byte [esp + 0x2c], 0x20
jne 0x1007b4a1
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x69bc], eax
mov dword [ecx + 0x69c4], eax
mov dword [ecx + 0x69cc], eax
mov dword [ecx + 0x69d4], eax
xor eax, eax
mov dword [ecx + 0x69e4], eax
mov dword [ecx + 0x69ec], eax
mov dword [ecx + 0x69f4], eax
mov dword [ecx + 0x69fc], eax
mov edi, dword [ebp + 0xc]
mov al, byte [edi + 0x2c]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0xb1324]
mov edx, dword [esp + 0x6c]
mov byte [ecx + edx], al
mov ecx, dword [edi + 0x5200]
mov eax, dword [esi + 0xb19c4]
lea ecx, [ecx + ecx*2]
shl ecx, 4
mov edx, dword [edi + 0x6994]
mov dword [eax + ecx], edx
mov edx, dword [edi + 0x699c]
mov dword [eax + ecx + 4], edx
mov edx, dword [edi + 0x69a4]
mov dword [eax + ecx + 8], edx
mov edx, dword [edi + 0x69ac]
mov dword [eax + ecx + 0xc], edx
mov edx, dword [edi + 0x69bc]
mov dword [eax + ecx + 0x10], edx
mov edx, dword [edi + 0x69c4]
mov dword [eax + ecx + 0x14], edx
mov edx, dword [edi + 0x69e4]
mov dword [eax + ecx + 0x20], edx
mov edx, dword [edi + 0x69ec]
mov dword [eax + ecx + 0x24], edx
mov dword [esp + 0xc], 0
cmp dword [esi + 0xb189c], 0
je 0x1007b648
mov ecx, dword [esp + 0xb8]
xor ecx, ebp
call fcn.10130483
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x5214]
cmp edi, 0xffffffff
je 0x1007c1bf
sub edi, 1
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x5214], edi
mov ecx, dword [ebp + 8]
jb 0x10079c7c
cmp dword [ecx + 0xb1b58], 0
je 0x1007a1b6
and ebx, 1
or ebx, edi
jne 0x1007a1b6
mov edi, dword [ebp + 0xc]
mov edx, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov esi, ecx
shr esi, 3
xor eax, eax
cmp ecx, dword [edi + 0x14]
setl al
add eax, ecx
movzx edx, byte [edx + esi]
and cl, 7
shl edx, cl
shr edx, 7
mov dword [edi + 0xc], eax
and edx, 1
mov dword [edi + 0x5220], edx
mov dword [edi + 0x5224], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb19c4]
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + ecx*2]
shl ecx, 4
pxor xmm0, xmm0
movdqu xmmword [eax + ecx + 0x20], xmm0
movdqu xmmword [eax + ecx + 0x10], xmm0
movdqu xmmword [eax + ecx], xmm0
xor ecx, ecx
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
setne cl
shl ecx, 7
cmp dword [eax + 0x24], 3
jne 0x1007d04b
or ecx, 0xf900
mov dword [esp + 0xa0], ecx
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5230], 0
je 0x1007a235
mov ebx, ecx
mov esi, dword [ebp + 8]
mov ecx, esi
mov edi, dword [ebp + 0xc]
mov edx, edi
push ebx
call fcn.1007e910
add esp, 4
mov ecx, esi
mov edx, edi
push ebx
call fcn.1007ebb0
add esp, 4
lea esi, [esp + 0xa0]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.101a61e0
add esp, 0xc
mov eax, 0x800
or eax, dword [esi]
mov dword [esp + 0x2c], eax
mov dword [esi], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb1b50]
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x51f8]
shl eax, 2
mov edx, dword [esi + 0x51fc]
imul edx, ecx
lea eax, [eax + edx*4]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x5200]
test dword [esp + 0x2c], 0x3000
je 0x1007d346
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0xb1330]
mov dword [esp + 4], edx
mov esi, dword [esp + 0x10]
lea edi, [edx + esi*4]
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 4]
movaps xmm0, xmmword [edx + 0x6a30]
movaps xmmword [ebx + esi*4], xmm0
movaps xmm0, xmmword [edx + 0x6a50]
movaps xmmword [edi + ecx*4], xmm0
movaps xmm0, xmmword [edx + 0x6a70]
movaps xmmword [edi + ecx*8], xmm0
lea esi, [ecx + ecx*2]
movaps xmm0, xmmword [edx + 0x6a90]
movaps xmmword [edi + esi*4], xmm0
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0xb1350]
mov bl, byte [edx + 0x6b4c]
mov byte [esi + eax*4], bl
mov bl, byte [edx + 0x6b4e]
mov byte [esi + eax*4 + 1], bl
mov bl, byte [edx + 0x6b5c]
mov byte [esi + eax*4 + 2], bl
mov bl, byte [edx + 0x6b5e]
mov byte [esi + eax*4 + 3], bl
test dword [esp + 0x2c], 0xc000
je 0x1007a384
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0xb1334]
mov ebx, dword [ebp + 0xc]
mov edx, dword [esp + 0x10]
movaps xmm0, xmmword [ebx + 0x6ad0]
movaps xmmword [esi + edx*4], xmm0
lea edx, [esi + edx*4]
movaps xmm0, xmmword [ebx + 0x6af0]
movaps xmmword [edx + ecx*4], xmm0
movaps xmm0, xmmword [ebx + 0x6b10]
movaps xmmword [edx + ecx*8], xmm0
lea ecx, [ecx + ecx*2]
movaps xmm0, xmmword [ebx + 0x6b30]
movaps xmmword [edx + ecx*4], xmm0
mov ecx, dword [edi + 0xb1354]
mov dl, byte [ebx + 0x6b74]
mov byte [ecx + eax*4], dl
mov dl, byte [ebx + 0x6b76]
mov byte [ecx + eax*4 + 1], dl
mov dl, byte [ebx + 0x6b84]
mov byte [ecx + eax*4 + 2], dl
mov dl, byte [ebx + 0x6b86]
mov byte [ecx + eax*4 + 3], dl
mov eax, dword [esp + 0xa0]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xb133c]
mov edi, dword [esp + 0x6c]
mov dword [ecx + edi*4], eax
mov esi, dword [ebp + 0xc]
mov al, byte [esi + 0x2c]
mov ecx, dword [edx + 0xb1324]
mov byte [ecx + edi], al
movzx eax, word [esi + 0x1c]
mov ecx, dword [edx + 0xb1b54]
mov word [ecx + edi*2], ax
mov dword [esi + 0x516c], 1
jmp 0x1007a560
test bl, 1
jne 0x10079c89
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov edi, ecx
shr edi, 3
xor eax, eax
cmp ecx, dword [ebx + 0x14]
setl al
add eax, ecx
movzx esi, byte [esi + edi]
and cl, 7
shl esi, cl
shr esi, 7
mov dword [ebx + 0xc], eax
and esi, 1
mov dword [ebx + 0x5220], esi
mov dword [ebx + 0x5224], esi
jmp 0x10079c89
mov ecx, esi
or ecx, 1
bsr ecx, ecx
mov dword [esp + 0x10], ecx
add ecx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x2c]
xor ecx, 0x3f
add ecx, eax
cmp edi, ecx
cmovb ecx, edi
mov dword [ebx], ecx
mov ecx, dword [esp + 0x2c]
add cl, 0xe1
shr esi, cl
dec esi
cmp dword [esp + 0x10], 0x13
mov eax, 0xbebbb1b7
cmovae eax, esi
jmp 0x10079cdd
cmp eax, 4
ja 0x1007b6cb
mov cl, byte [eax*4 + 0x102dea04]
movzx eax, word [eax*4 + 0x102dea02]
jmp 0x1007a47b
cmp eax, 0x16
ja 0x1007b6d3
mov cl, byte [eax*4 + 0x102dea28]
movzx eax, word [eax*4 + 0x102dea26]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x2c], 0
mov edi, dword [ebp + 0xc]
jmp 0x10079d34
or eax, 0x80
mov dword [esp + 0x7c], eax
jmp 0x10079d45
mov ecx, dword [esi + 0xb2284]
mov eax, dword [ecx + 0xc]
movzx eax, word [eax + eax + 0x102dee14]
imul eax, dword [ecx + 0x6a4]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, ecx
neg edx
and edx, 7
je 0x1007a4d9
mov esi, dword [esp + 0x18]
mov esi, dword [esi]
add edx, ecx
cmp esi, edx
cmovb edx, esi
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, edx
mov edx, ecx
sar edx, 3
mov esi, dword [ebp + 0xc]
add edx, dword [esi + 4]
mov dword [esi + 0x6960], edx
mov edx, dword [esi + 0x10]
sub edx, ecx
mov dword [esp + 0xc], 0xbebbb1b7
cmp edx, eax
jl 0x1007a12f
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
sub edx, ecx
mov esi, ecx
neg esi
cmp eax, edx
cmovl edx, eax
cmp eax, esi
cmovl edx, esi
add edx, ecx
mov eax, dword [esp + 4]
mov dword [eax], edx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb1324]
mov esi, dword [esp + 0x6c]
mov byte [eax + esi], 0
mov eax, dword [edx + 0xb19c4]
lea ecx, [esi + esi*2]
shl ecx, 4
movdqa xmm0, xmmword [0x102db660]
movdqu xmmword [eax + ecx + 0x20], xmm0
movdqu xmmword [eax + ecx + 0x10], xmm0
movdqu xmmword [eax + ecx], xmm0
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0xb133c]
mov dword [ecx + esi*4], eax
mov dword [esp + 0xc], 0
jmp 0x1007a12f
mov dword [esp + 0x1c], ebx
cmp byte [esp + 0xc], 4
jne 0x1007b6db
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
mov esi, dword [ebp + 0xc]
mov edi, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov ecx, eax
shr ecx, 3
mov edx, dword [edi + ecx]
bswap edx
mov ecx, eax
and cl, 7
shl edx, cl
shr edx, 0x17
movzx ebx, byte [edx + 0x102b0dc9]
add ebx, eax
mov eax, dword [esi + 0x14]
cmp eax, ebx
cmovb ebx, eax
cmp dword [esi + 0x24], 3
mov dword [esi + 0xc], ebx
movzx ecx, byte [edx + 0x102b0fc9]
movzx ecx, cx
mov word [esi + 0x6c58], cx
jne 0x1007c3f8
cmp cl, 0xc
ja 0x1007aa39
movzx edx, byte [ecx*4 + 0x102dea84]
mov dword [esp + 0xa0], edx
movzx edx, word [ecx*4 + 0x102dea82]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0xc], edx
mov word [ecx + 0x6c58], dx
mov ecx, ebx
shr ecx, 3
mov esi, dword [edi + ecx]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx edx, byte [esi + 0x102b0dc9]
add edx, ebx
cmp eax, edx
cmovb edx, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebx + 0xc], edx
movzx ecx, byte [esi + 0x102b0fc9]
mov word [ebx + 0x6c5a], cx
cmp cx, 0xc
ja 0x1007aa39
movzx ecx, cx
movzx esi, byte [ecx*4 + 0x102dea84]
mov dword [esp + 0xa4], esi
movzx esi, word [ecx*4 + 0x102dea82]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], esi
mov word [ecx + 0x6c5a], si
mov ecx, edx
shr ecx, 3
mov esi, dword [edi + ecx]
bswap esi
mov ecx, edx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ebx, byte [esi + 0x102b0dc9]
add ebx, edx
cmp eax, ebx
cmovb ebx, eax
mov edx, dword [ebp + 0xc]
mov dword [edx + 0xc], ebx
movzx ecx, byte [esi + 0x102b0fc9]
mov word [edx + 0x6c5c], cx
cmp cx, 0xc
ja 0x1007aa39
movzx ecx, cx
movzx edx, byte [ecx*4 + 0x102dea84]
mov dword [esp + 0xa8], edx
movzx edx, word [ecx*4 + 0x102dea82]
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x6c5c], dx
mov ecx, ebx
shr ecx, 3
mov esi, dword [edi + ecx]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
cmp eax, ecx
cmovb ecx, eax
mov edi, dword [ebp + 0xc]
mov dword [edi + 0xc], ecx
movzx eax, byte [esi + 0x102b0fc9]
mov word [edi + 0x6c5e], ax
cmp ax, 0xc
ja 0x1007aa39
movzx eax, ax
movzx ecx, byte [eax*4 + 0x102dea84]
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 8]
or ecx, dword [esp + 0xc]
or edx, ecx
movzx eax, word [eax*4 + 0x102dea82]
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x6c5e], ax
or edx, eax
bt edx, 8
jae 0x1007c54b
lea eax, [esp + 0x7c]
push eax
mov esi, dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call fcn.101a61e0
add esp, 0xc
mov al, 0xfe
mov byte [esi + 0x6b86], al
mov byte [esi + 0x6b5e], al
mov byte [esi + 0x6b76], al
mov byte [esi + 0x6b4e], al
jmp 0x1007c54b
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x28], 0
je 0x1007c281
mov esi, dword [esp + 4]
mov ecx, dword [esi]
mov eax, dword [esp + 0x10]
mov ebx, dword [eax]
mov edx, ecx
shr edx, 3
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
xor eax, eax
mov dword [esp + 0x20], edi
cmp ecx, edi
setl al
add eax, ecx
mov dword [esp + 8], ebx
movzx edx, byte [ebx + edx]
mov dword [esi], eax
and cl, 7
shl edx, cl
test dl, 0x80
je 0x1007c29b
mov edi, dword [esp + 0x1c]
or edi, 0x1000000
mov dword [esp + 0x7c], edi
mov dword [esp + 0x1c], 4
mov cl, 1
mov dword [esp + 0x14], ecx
jmp 0x1007c2aa
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x5174], 6
jmp 0x10079e45
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb1b50]
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x51f8]
shl eax, 2
mov esi, dword [edi + 0x51fc]
imul esi, ecx
lea eax, [eax + esi*4]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x5200]
mov edi, dword [ebp + 8]
test edx, 0x3000
je 0x1007c3e6
mov esi, dword [edi + 0xb1330]
mov dword [esp + 8], esi
mov edi, dword [esp + 0xc]
lea esi, [esi + edi*4]
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov ebx, dword [ebp + 0xc]
movaps xmm0, xmmword [ebx + 0x6a30]
movaps xmmword [edi + esi*4], xmm0
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmmword [esi + 0x6a50]
movaps xmmword [ebx + ecx*4], xmm0
movaps xmm0, xmmword [esi + 0x6a70]
movaps xmmword [ebx + ecx*8], xmm0
lea edi, [ecx + ecx*2]
movaps xmm0, xmmword [esi + 0x6a90]
movaps xmmword [ebx + edi*4], xmm0
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0xb1350]
mov bl, byte [esi + 0x6b4c]
mov byte [edi + eax*4], bl
mov bl, byte [esi + 0x6b4e]
mov byte [edi + eax*4 + 1], bl
mov bl, byte [esi + 0x6b5c]
mov byte [edi + eax*4 + 2], bl
mov bl, byte [esi + 0x6b5e]
mov byte [edi + eax*4 + 3], bl
test edx, 0xc000
je 0x10079e52
mov edi, dword [ebp + 8]
mov edx, dword [edi + 0xb1334]
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0xc]
movaps xmm0, xmmword [esi + 0x6ad0]
movaps xmmword [edx + ebx*4], xmm0
lea edx, [edx + ebx*4]
movaps xmm0, xmmword [esi + 0x6af0]
movaps xmmword [edx + ecx*4], xmm0
movaps xmm0, xmmword [esi + 0x6b10]
movaps xmmword [edx + ecx*8], xmm0
lea ecx, [ecx + ecx*2]
movaps xmm0, xmmword [esi + 0x6b30]
movaps xmmword [edx + ecx*4], xmm0
mov ecx, dword [edi + 0xb1354]
mov dl, byte [esi + 0x6b74]
mov byte [ecx + eax*4], dl
mov dl, byte [esi + 0x6b76]
mov byte [ecx + eax*4 + 1], dl
mov dl, byte [esi + 0x6b84]
mov byte [ecx + eax*4 + 2], dl
mov dl, byte [esi + 0x6b86]
mov byte [ecx + eax*4 + 3], dl
jmp 0x10079e52
mov ecx, dword [esp + 4]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, ebx
shr edx, 3
mov edx, dword [ecx + edx]
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx]
bswap edx
mov ecx, ebx
and cl, 7
shl edx, cl
cmp edx, 0x8000000
jb 0x1007bf69
shr edx, 0x17
movzx ecx, byte [edx + 0x102b0dc9]
add ebx, ecx
cmp esi, ebx
cmovb ebx, esi
mov ecx, dword [esp + 4]
mov dword [ecx], ebx
movzx ecx, byte [edx + 0x102b0fc9]
jmp 0x1007bf9f
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x6994], eax
mov dword [ecx + 0x699c], eax
mov dword [ecx + 0x69a4], eax
mov dword [ecx + 0x69ac], eax
jmp 0x1007a06c
or edi, 1
bsr edi, edi
mov ecx, edi
xor ecx, 0x1f
add ecx, eax
cmp ebx, ecx
cmovb ecx, ebx
mov eax, ecx
shr eax, 3
mov esi, dword [esi + eax]
bswap esi
mov eax, ecx
and cl, 7
shl esi, cl
mov ecx, edi
sub eax, edi
shr esi, cl
mov ecx, eax
add ecx, 0x20
cmp ebx, ecx
cmovb ecx, ebx
mov eax, dword [esp + 4]
mov dword [eax], ecx
mov eax, esi
and eax, 1
mov ecx, eax
neg ecx
shr esi, 1
xor esi, ecx
add esi, eax
jmp 0x10079f2b
lea eax, [edx + edx*2]
mov ecx, 0xfffffffc
sub ecx, eax
add eax, 4
test esi, esi
cmovns eax, ecx
add esi, eax
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x2c], esi
cmp esi, edi
jbe 0x10079f40
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x2c], ecx
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
jmp 0x1007a12f
lea edx, [ecx + 0xb1c6c]
lea eax, [ecx + 0xb1d8c]
test esi, esi
cmove edx, eax
mov dword [esp + 0x38], edx
lea eax, [ecx + 0xb1c1c]
lea ecx, [ecx + 0xb1d3c]
jmp 0x10079f96
xor eax, eax
mov dword [esp + 0x34], ebx
test bl, 7
sete al
lea eax, [eax + eax*2]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + 0x6c60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 0x10]
mov dword [esp + 0x48], ecx
lea ecx, [eax + 0x20]
mov dword [esp + 0x44], ecx
add eax, 0x30
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], 3
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
xor edi, edi
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
bt eax, ecx
jae 0x1007acda
bt dword [esp + 0x34], 0x18
jb 0x1007acff
mov eax, dword [esp + 0x28]
add eax, 0xfffffffd
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov edx, esi
shl edx, 6
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
mov dword [esp + 0x20], edx
add eax, edx
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push dword [esp + 0x30]
push dword [esp + 0x4c]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov edx, dword [esp + 0x28]
movzx eax, byte [edx + 0x102dd67d]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x40], eax
lea eax, [edx - 2]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 8]
lea edx, [ecx + 0x10]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push dword [esp + 0x30]
push dword [esp + 0x4c]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov edx, dword [esp + 0x28]
movzx eax, byte [edx + 0x102dd67e]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x50], eax
lea eax, [edx - 1]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 8]
lea edx, [ecx + 0x20]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push dword [esp + 0x30]
push dword [esp + 0x4c]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + 0x102dd67f]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x24], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb2280]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
add edx, dword [eax + ecx*4 + 0x2a6dc]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 8]
add eax, 0x30
mov ecx, dword [esp + 0x30]
shl eax, cl
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push dword [esp + 0x24]
push dword [esp + 0xc]
push dword [esp + 0x34]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov edx, dword [esp + 0x40]
or edx, dword [esp + 0x50]
or edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + 0x102dd680]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
or eax, edx
jmp 0x1007ae67
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + 0x102dd67d]
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov word [ecx + eax + 0x6990], dx
mov word [ecx + eax + 0x6988], dx
jmp 0x1007ae6f
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x30]
shl eax, cl
mov edx, dword [ebp + 0xc]
lea eax, [edx + eax*2]
add eax, 0x6c60
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffffd
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xb2280]
mov ebx, esi
shl ebx, 8
mov eax, dword [esp + 0x1c]
mov eax, dword [edx + eax*4 + 0x2a6f4]
mov dword [esp + 0x24], ebx
add eax, ebx
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x40]
push dword [esp + 0x48]
push dword [esp + 0x30]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [esp + 0x28]
add eax, 0xfffffffe
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx*4 + 0x2a6f4]
add eax, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x50]
push dword [esp + 0x48]
push dword [esp + 0x30]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x3c], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx*4 + 0x2a6f4]
add eax, dword [esp + 0x24]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x4c]
push dword [esp + 0x48]
push dword [esp + 0x30]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x24]
add ebx, dword [eax + edx*4 + 0x2a6f4]
mov edx, dword [ebp + 0xc]
push 0x10
push ebx
push dword [esp + 0x6c]
push dword [esp + 0x34]
push dword [esp + 0x30]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [esp + 0x28]
movzx ecx, byte [eax + 0x102dd67d]
mov eax, dword [ebp + 0xc]
mov dl, byte [eax + ecx + 0x6990]
add dl, byte [eax + ecx + 0x6989]
add dl, byte [eax + ecx + 0x6991]
mov ebx, eax
xor eax, eax
add byte [ebx + ecx + 0x6988], dl
setne al
mov ecx, dword [esp + 0x18]
shl eax, cl
or edi, eax
inc dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add eax, 4
add dword [esp + 8], 0x40
mov dword [esp + 0x28], eax
cmp eax, 0x13
jne 0x1007aac5
test edi, edi
jns 0x1007a030
jmp 0x1007a12f
mov eax, dword [esp + 4]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
add eax, 0x6c60
mov dword [esp + 8], eax
xor ebx, ebx
mov dword [esp + 0x28], 3
shl esi, 6
mov eax, dword [esp + 0x28]
add eax, 0xfffffffd
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov edi, dword [ecx + 0x2a6dc]
add edi, esi
mov edx, ebx
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 8]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push edi
push dword [esp + 0x20]
push dword [esp + 0x28]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [esp + 0x28]
add eax, 0xfffffffe
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov edi, dword [ecx + 0x2a6dc]
add edi, esi
lea edx, [ebx + 0x10]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 8]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push edi
push dword [esp + 0x20]
push dword [esp + 0x28]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov edi, dword [ecx + 0x2a6dc]
add edi, esi
lea edx, [ebx + 0x20]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 8]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push edi
push dword [esp + 0x20]
push dword [esp + 0x28]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov eax, dword [eax + 0x2a6dc]
add eax, esi
lea edx, [ebx + 0x30]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 8]
lea edi, [ecx + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push eax
push dword [esp + 0x20]
push dword [esp + 0x34]
push edi
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
add ebx, 0x40
add dword [esp + 0x28], 4
mov edi, 0xf
cmp ebx, 0x100
jne 0x1007aebb
jmp 0x1007a030
mov ecx, dword [esp + 0x7c]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
test cl, 2
jne 0x1007bfc9
xor eax, eax
test byte [esp + 0x24], 7
sete al
lea eax, [eax + eax*2 + 1]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + 0x6c60]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 0x10]
mov dword [esp + 0x50], ecx
lea ecx, [eax + 0x20]
mov dword [esp + 0x48], ecx
add eax, 0x30
mov dword [esp + 0x44], eax
mov esi, 0x13
mov dword [esp + 0x18], 0x100
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
bt eax, ecx
jae 0x1007b262
bt dword [esp + 0x24], 0x18
jb 0x1007b283
lea ebx, [esi - 3]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov edi, dword [esp + 0x1c]
shl edi, 6
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx eax, byte [esi + 0x102dd67d]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x40], eax
lea ebx, [esi - 2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, edi
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 0x10]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx eax, byte [esi + 0x102dd67e]
mov ecx, dword [ebp + 0xc]
movzx ebx, byte [ecx + eax + 0x6988]
lea eax, [esi - 1]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, edi
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 0x20]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push dword [esp + 0x20]
push dword [esp + 0x4c]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx eax, byte [esi + 0x102dd67f]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb2280]
mov ecx, dword [esp + 8]
add edi, dword [eax + ecx*4 + 0x2a6dc]
mov eax, dword [esp + 0x18]
add eax, 0x30
mov ecx, dword [esp + 0x30]
shl eax, cl
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*2]
mov ecx, edx
mov edx, dword [ebp + 0xc]
push 0x10
push edi
push dword [esp + 0xc]
push esi
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov edx, dword [esp + 0x40]
or edx, ebx
or edx, dword [esp + 0x14]
movzx eax, byte [esi + 0x102dd680]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
or eax, edx
jmp 0x1007b3c0
movzx eax, byte [esi + 0x102dd67d]
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov word [ecx + eax + 0x6990], dx
mov word [ecx + eax + 0x6988], dx
jmp 0x1007b3ca
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
shl eax, cl
mov edx, dword [ebp + 0xc]
lea ebx, [edx + eax*2]
add ebx, 0x6c60
lea eax, [esi - 3]
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xb2280]
mov edi, dword [esp + 0x1c]
shl edi, 8
mov eax, dword [esp + 8]
mov eax, dword [ecx + eax*4 + 0x2a6f4]
add eax, edi
mov ecx, edx
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x40]
push dword [esp + 0x20]
mov dword [esp + 0x24], ebx
push ebx
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea ebx, [esi - 2]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 8]
mov eax, dword [eax + edx*4 + 0x2a6f4]
add eax, edi
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x58]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea ebx, [esi - 1]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 8]
mov eax, dword [eax + edx*4 + 0x2a6f4]
add eax, edi
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x50]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 8]
add edi, dword [eax + edx*4 + 0x2a6f4]
mov edx, dword [ebp + 0xc]
push 0x10
push edi
push dword [esp + 0x4c]
push esi
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx ecx, byte [esi + 0x102dd67d]
mov edi, dword [ebp + 0xc]
mov dl, byte [edi + ecx + 0x6990]
add dl, byte [edi + ecx + 0x6989]
add dl, byte [edi + ecx + 0x6991]
xor eax, eax
add byte [edi + ecx + 0x6988], dl
setne al
mov ecx, dword [esp + 0x28]
shl eax, cl
or dword [esp + 0x34], eax
inc dword [esp + 0x28]
add esi, 4
add dword [esp + 0x18], 0x40
cmp esi, 0x23
jne 0x1007b08a
cmp dword [esp + 0x34], 0
jns 0x1007d807
jmp 0x1007a12f
lea ebx, [esi*4]
cmp esi, 2
mov ecx, 0x102de991
mov eax, 0x102de98d
cmove eax, ecx
mov edx, 0x100
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [ebp + 0xc]
lea edi, [ecx + edx*2]
add edi, 0x6c60
mov edx, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x38], ebx
push ebx
push 0
push eax
push 0x31
push edi
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
test eax, eax
js 0x1007a12f
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xb2284]
cmp dword [eax + 0xc], 2
mov edi, dword [ebp + 0xc]
lea eax, [edi + 0x6c60]
mov ebx, 0x102de98d
mov ecx, 0x102de991
cmove ebx, ecx
mov edx, 0x200
mov ecx, dword [esp + 0x30]
shl edx, cl
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, edi
push dword [esp + 0x38]
push 0
push ebx
push 0x32
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
jns 0x1007a061
jmp 0x1007a12f
mov eax, dword [ebp + 0xc]
add eax, 0x6c60
mov dword [esp + 0x14], eax
inc dword [esp + 4]
mov eax, 0x10
mov ecx, dword [esp + 0x30]
shl eax, cl
mov ecx, esi
neg ecx
mov dword [esp + 8], ecx
add eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0xc], 0xbebbb1b7
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0x13
cmp dword [esp + 0x1c], 2
je 0x1007a0a3
xor eax, eax
test byte [esp + 0x7c], 7
sete cl
test esi, esi
jle 0x1007b63e
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0xb2280]
mov al, cl
lea eax, [eax + eax*2]
mov edi, dword [esp + 0x1c]
add eax, edi
inc eax
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + edi*4 + 0x30]
shl ecx, 6
add ecx, dword [edx + eax*4 + 0x2a6dc]
mov dword [esp + 0x2c], ecx
mov eax, edi
shl eax, 4
add eax, 0x10
shl eax, 4
mov ecx, dword [esp + 0x30]
shl eax, cl
mov ecx, dword [esp + 0x14]
lea ebx, [ecx + eax*2]
mov al, 1
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x20]
xor eax, eax
inc eax
mov dword [esp + 0x28], eax
lea eax, [edi - 3]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push dword [esp + 0x30]
push dword [esp + 0xc]
push eax
push ebx
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007b61e
lea eax, [edi - 2]
add ebx, dword [esp + 0x38]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push dword [esp + 0x30]
push dword [esp + 0xc]
push eax
push ebx
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007b61e
lea eax, [edi - 1]
add ebx, dword [esp + 0x38]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push dword [esp + 0x30]
push dword [esp + 0xc]
push eax
push ebx
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007b61e
add ebx, dword [esp + 0x38]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push dword [esp + 0x30]
push dword [esp + 0xc]
push edi
push ebx
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007b61e
mov ecx, dword [esp + 0x28]
cmp ecx, esi
setl al
mov dword [esp + 0x18], eax
mov eax, dword [esp + 8]
add eax, ecx
inc eax
inc ecx
mov dword [esp + 0x28], ecx
add edi, 8
add ebx, dword [esp + 0x38]
cmp eax, 1
jne 0x1007b552
jmp 0x1007b625
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
inc dword [esp + 0x1c]
add dword [esp + 0x20], 0x10
test byte [esp + 0x18], 1
je 0x1007b4e2
jmp 0x1007a12f
mov dword [esp + 0x18], 0
jmp 0x1007b625
add eax, ecx
mov ecx, dword [edi + 0x69cc]
mov dword [eax + 0x18], ecx
mov ecx, dword [edi + 0x69d4]
mov dword [eax + 0x1c], ecx
mov ecx, dword [edi + 0x69f4]
mov dword [eax + 0x28], ecx
mov ecx, dword [edi + 0x69fc]
mov dword [eax + 0x2c], ecx
jmp 0x1007a12f
dec eax
jmp 0x10079d00
mov dword [esp + 0xc], 0xbebbb1b7
jmp 0x1007a12f
test al, 7
jne 0x10079e89
mov edi, dword [esp + 4]
mov ecx, dword [edi]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov esi, ecx
shr esi, 3
movzx edx, byte [edx + esi]
xor ebx, ebx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
setl bl
add ebx, ecx
mov dword [edi], ebx
and cl, 7
shl edx, cl
shl edx, 0x11
and edx, 0x1000000
or edx, eax
mov dword [esp + 0x7c], edx
jmp 0x10079e89
add eax, 0xfffffffb
jmp 0x10079d00
add eax, 0xffffffe9
jmp 0x10079d00
bt dword [esp + 0x1c], 8
jb 0x1007d021
test byte [esp + 0x1c], 8
jne 0x1007d35b
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x5850]
mov dword [esp + 0x60], eax
test byte [esp + 0x1c], 0x10
jne 0x1007ddd5
cmp dword [esp + 0x60], 0
je 0x10079e45
mov eax, dword [ebp + 0xc]
lea edx, [eax + 0x6b66]
xor eax, eax
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ebx, cl
mov dword [esp + 8], 0xff
bt ebx, 0xc
mov ecx, 0xff
jae 0x1007b7f8
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax*2 + 0x5848]
mov cl, byte [ecx + 0x5224]
shl edi, cl
cmp edi, 1
je 0x1007b7ab
cmp edi, 2
jne 0x1007b7af
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x10]
mov esi, dword [esi]
mov dword [esp + 0x14], esi
mov edi, ecx
shr edi, 3
xor ebx, ebx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 0x14]
movzx esi, byte [esi + edi]
setl bl
add ebx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], ebx
xor ecx, ecx
mov ebx, esi
test bl, 0x80
sete cl
jmp 0x1007b7f8
xor ecx, ecx
jmp 0x1007b7f8
mov ecx, dword [esp + 4]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov esi, ebx
shr esi, 3
mov esi, dword [ecx + esi]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov ebx, dword [esp + 0x18]
mov ebx, dword [ebx]
cmp ebx, ecx
cmovb ecx, ebx
mov ebx, dword [esp + 4]
mov dword [ebx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
cmp edi, ecx
jbe 0x1007a12f
mov esi, ecx
shl esi, 8
or esi, ecx
mov word [edx - 0x1a], si
mov word [edx - 0x12], si
mov word [edx - 0xa], si
mov word [edx - 2], si
mov ecx, eax
inc cl
mov ebx, dword [esp + 0x1c]
shr ebx, cl
bt ebx, 0xc
jae 0x1007b8db
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax*2 + 0x5848]
mov cl, byte [ecx + 0x5224]
shl edi, cl
cmp edi, 1
je 0x1007b884
cmp edi, 2
jne 0x1007b88e
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x10]
mov esi, dword [esi]
mov dword [esp + 8], esi
mov edi, ecx
shr edi, 3
xor ebx, ebx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 8]
movzx esi, byte [esi + edi]
setl bl
add ebx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], ebx
xor ecx, ecx
mov ebx, esi
test bl, 0x80
sete cl
mov dword [esp + 8], ecx
jmp 0x1007b8db
mov dword [esp + 8], 0
jmp 0x1007b8db
mov ecx, dword [esp + 4]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov esi, ebx
shr esi, 3
mov esi, dword [ecx + esi]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov ebx, dword [esp + 0x18]
mov ebx, dword [ebx]
cmp ebx, ecx
cmovb ecx, ebx
mov ebx, dword [esp + 4]
mov dword [ebx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
mov dword [esp + 8], ecx
cmp edi, ecx
jbe 0x1007a12f
mov esi, dword [esp + 8]
mov ecx, esi
shl ecx, 8
or ecx, esi
mov word [edx - 0x18], cx
mov word [edx - 0x10], cx
mov word [edx - 8], cx
mov word [edx], cx
add edx, 0x28
add eax, 2
dec dword [esp + 0x20]
jne 0x1007b72f
cmp dword [esp + 0x60], 0
je 0x10079e45
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
lea ecx, [eax + eax]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea esi, [eax + edx*8]
add esi, 0x6b48
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], edx
shl edx, 5
mov esi, 0x3000
mov dword [esp + 0x3c], ecx
shl esi, cl
mov dword [esp + 0x68], esi
lea ecx, [eax + edx]
add ecx, 0x6a20
mov dword [esp + 0x64], ecx
lea ecx, [eax + edx + 0x6a14]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x14], edx
lea eax, [eax + edx + 0x6a28]
mov dword [esp + 0x54], eax
mov al, 1
mov dword [esp + 0xc], eax
xor eax, eax
mov ecx, eax
or ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
shr edx, cl
lea ecx, [eax + eax]
or ecx, 0xc
mov dword [esp + 8], ecx
bt edx, 0xc
jae 0x1007b9d7
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x48]
lea edi, [ecx + edx*8]
mov ecx, dword [esp + 8]
movsx ecx, byte [ecx + edi + 0x6b40]
mov dword [esp + 0x20], ecx
test byte [esp + 0xc], 1
je 0x1007b9de
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
cmp byte [ecx + 3], dl
jne 0x1007ba66
mov eax, dword [esp + 0x64]
movzx ecx, word [eax + 0xc]
mov dword [esp + 0x34], ecx
movzx eax, word [eax + 0xe]
jmp 0x1007ba09
xor esi, esi
jmp 0x1007bcb8
mov ecx, dword [esp + 0x40]
mov bl, byte [ecx]
mov edx, dword [esp + 0x64]
cmp bl, 0xfe
jne 0x1007b9f8
mov ecx, dword [esp + 0x40]
mov bl, byte [ecx - 3]
mov edx, dword [esp + 0x5c]
cmp bl, byte [esp + 0x20]
jne 0x1007ba66
movzx eax, word [edx]
mov dword [esp + 0x34], eax
movzx eax, word [edx + 2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x20], edx
mov esi, dword [edx + ecx]
bswap esi
mov ecx, eax
and cl, 7
shl esi, cl
cmp esi, 0x8000000
jb 0x1007bbcc
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add eax, ecx
mov edx, edi
cmp edi, eax
jb 0x1007ba54
mov edx, eax
mov eax, dword [esp + 4]
mov dword [eax], edx
movsx eax, byte [esi + 0x102b11c9]
jmp 0x1007bc1c
mov cl, byte [eax*4 + 0x102dd680]
movzx edx, cl
mov al, byte [edx + edi + 0x6b38]
mov byte [esp + 0x50], al
mov al, byte [edx + edi + 0x6b3a]
mov ah, byte [edx + edi + 0x6b3f]
mov byte [esp + 0x34], ah
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x14]
add esi, ebx
mov dword [esp + 0x24], esi
mov esi, edx
and esi, 7
cmp esi, 4
jne 0x1007bd18
cmp cl, 0x14
jb 0x1007bd18
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb1b58], 0
je 0x1007bd18
cmp al, 0xfe
jne 0x1007bd18
mov eax, dword [esp + 0x40]
cmp byte [eax + 3], 0xfe
je 0x1007bd23
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb1304]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x54]
mov dword [eax], 0
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
mov eax, dword [eax + 0x51c8]
je 0x1007be75
test al, 0x80
jne 0x1007bd23
xor eax, eax
cmp dl, 0x24
setae al
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ecx + eax*4 + 0x51b4]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], eax
xor esi, esi
dec esi
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x70], ebx
test dword [ecx + ebx*4], eax
je 0x1007bd3b
mov eax, edx
shr eax, 2
mov ecx, eax
and ecx, 3
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0xb1304]
mov edi, ebx
mov ebx, dword [esp + 0x4c]
mov esi, dword [esi + ebx*4 + 0x28]
mov ebx, edi
mov edi, dword [edi + 0xb1b48]
mov dword [esp + 0x44], edi
imul ecx, dword [ebx + 0xb1b50]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x70]
add ecx, dword [ebx + edi*4]
movzx ebx, word [esi + ecx*4 + 0xc]
mov edi, dword [esp + 0x54]
mov word [edi], bx
movzx ecx, word [esi + ecx*4 + 0xe]
mov esi, ecx
shr esi, 0xf
add esi, ecx
movsx ecx, si
shr ecx, 1
mov esi, dword [esp + 0x64]
mov word [esi + 0xa], cx
and eax, 2
mov ecx, dword [esp + 0x70]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xb1304]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ecx + esi*4 + 0x48]
movsx esi, byte [ecx + eax + 1]
add esi, esi
mov dword [esp + 0x44], edi
jmp 0x1007bd3b
or esi, 1
bsr edx, esi
mov ecx, edx
xor ecx, 0x1f
add ecx, eax
mov ebx, edi
cmp edi, ecx
jb 0x1007bbe1
mov ebx, ecx
mov eax, ebx
shr eax, 3
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax]
bswap eax
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, edx
shr eax, cl
sub ebx, edx
add ebx, 0x20
mov edx, edi
cmp edi, ebx
jb 0x1007bc07
mov edx, ebx
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, eax
and ecx, 1
mov esi, ecx
neg esi
shr eax, 1
xor eax, esi
add eax, ecx
add eax, dword [esp + 0x34]
mov ecx, edx
shr ecx, 3
mov esi, dword [esp + 0x20]
mov esi, dword [esi + ecx]
bswap esi
mov ecx, edx
and cl, 7
shl esi, cl
cmp esi, 0x8000000
jb 0x1007bc5e
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add edx, ecx
cmp edi, edx
jb 0x1007bc4f
mov edi, edx
mov ecx, dword [esp + 4]
mov dword [ecx], edi
movsx esi, byte [esi + 0x102b11c9]
jmp 0x1007bcac
or esi, 1
bsr ebx, esi
mov ecx, ebx
xor ecx, 0x1f
add ecx, edx
mov edx, edi
cmp edi, ecx
jb 0x1007bc73
mov edx, ecx
mov ecx, edx
shr ecx, 3
mov esi, dword [esp + 0x20]
mov esi, dword [esi + ecx]
bswap esi
mov ecx, edx
and cl, 7
shl esi, cl
mov ecx, ebx
shr esi, cl
sub edx, ebx
add edx, 0x20
cmp edi, edx
jb 0x1007bc97
mov edi, edx
mov ecx, dword [esp + 4]
mov dword [ecx], edi
mov ecx, esi
and ecx, 1
mov edx, ecx
neg edx
shr esi, 1
xor esi, edx
add esi, ecx
add esi, dword [esp + 0x24]
movzx eax, ax
shl esi, 0x10
or esi, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 8]
mov dword [eax + ecx*4 + 0x6a00], esi
mov dword [eax + ecx*4 + 0x6a04], esi
mov dword [eax + ecx*4 + 0x6a20], esi
mov dword [eax + ecx*4 + 0x6a24], esi
mov dword [eax + ecx*4 + 0x6a40], esi
mov dword [eax + ecx*4 + 0x6a44], esi
mov dword [eax + ecx*4 + 0x6a60], esi
mov dword [eax + ecx*4 + 0x6a64], esi
xor eax, eax
inc eax
test byte [esp + 0xc], 1
mov dword [esp + 0xc], 0
jne 0x1007b977
jmp 0x1007bf51
movsx eax, al
cmp al, 0xfe
jne 0x1007bded
mov eax, dword [esp + 0x24]
lea eax, [eax + edx*4]
add eax, 0x69dc
mov dword [esp + 0x44], eax
movsx esi, byte [edx + edi + 0x6b37]
mov eax, dword [esp + 0x24]
lea edi, [eax + edx*4]
add edi, 0x69fc
xor ebx, ebx
mov edx, dword [esp + 0x20]
mov eax, esi
cmp esi, edx
sete bl
xor eax, eax
cmp byte [esp + 0x50], dl
sete al
xor ecx, ecx
cmp byte [esp + 0x34], dl
sete cl
add ecx, eax
add ecx, ebx
cmp ecx, 2
jb 0x1007bdbf
mov ebx, dword [esp + 0x44]
movsx eax, word [ebx]
movsx ecx, word [edi - 0x1c]
movsx esi, word [edi]
mov edx, ecx
cmp esi, ecx
cmovg edx, esi
cmovg esi, ecx
cmp esi, eax
cmovl esi, eax
cmp edx, esi
cmovg edx, esi
mov dword [esp + 0x34], edx
movsx eax, word [ebx + 2]
movsx ecx, word [edi - 0x1a]
movsx edx, word [edi + 2]
mov esi, ecx
cmp edx, ecx
cmovg esi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp esi, edx
cmovg esi, edx
mov dword [esp + 0x24], esi
jmp 0x1007ba0d
cmp ecx, 1
jne 0x1007be07
mov al, byte [esp + 0x34]
cmp al, byte [esp + 0x20]
je 0x1007be1a
mov al, byte [esp + 0x50]
cmp al, byte [esp + 0x20]
jne 0x1007bf3d
movzx eax, word [edi - 0x1c]
mov dword [esp + 0x34], eax
movzx eax, word [edi - 0x1a]
jmp 0x1007ba09
mov esi, eax
lea eax, [edx - 6]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax*4]
add eax, 0x6a00
mov dword [esp + 0x44], eax
jmp 0x1007bd3b
cmp byte [esp + 0x50], 0xfe
jne 0x1007be2a
cmp esi, 0xfffffffe
jne 0x1007be2a
cmp byte [esp + 0x34], 0xfe
je 0x1007be2a
movzx eax, word [edi]
mov dword [esp + 0x34], eax
movzx eax, word [edi + 2]
jmp 0x1007ba09
mov ebx, dword [esp + 0x44]
movsx eax, word [ebx]
movsx ecx, word [edi - 0x1c]
movsx esi, word [edi]
mov edx, ecx
cmp esi, ecx
cmovg edx, esi
cmovg esi, ecx
cmp esi, eax
cmovl esi, eax
cmp edx, esi
cmovg edx, esi
mov dword [esp + 0x34], edx
movsx eax, word [ebx + 2]
movsx ecx, word [edi - 0x1a]
movsx edx, word [edi + 2]
mov esi, ecx
cmp edx, ecx
cmovg esi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp esi, edx
cmovg esi, edx
jmp 0x1007bdb6
test al, 0x80
je 0x1007bd23
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb1dd8]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + 0x51b4]
add edi, eax
mov ecx, dword [ecx + 0x51fc]
and ecx, 1
mov ebx, edx
shr ebx, 5
lea ecx, [ebx + ecx*2]
mov dword [esp + 0x70], ecx
shr ecx, 2
imul ecx, eax
add ecx, edi
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], eax
xor esi, esi
dec esi
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x58]
test dword [ebx + ecx*4], eax
je 0x1007bd3b
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xb1304]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + ecx*4 + 0x28]
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0xb1b48]
mov esi, dword [esi + 0xb1b50]
mov ebx, dword [esp + 0x70]
imul esi, ebx
add esi, dword [ecx + edi*4]
movzx ecx, word [eax + esi*4 + 0xc]
mov eax, dword [esp + 0x54]
mov word [eax], cx
mov eax, dword [esp + 0x44]
movzx eax, word [eax + esi*4 + 0xe]
add eax, eax
mov ecx, dword [esp + 0x64]
mov word [ecx + 0xa], ax
and ebx, 0xfffffffe
lea eax, [ebx + edi*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xb1304]
mov esi, dword [esp + 0x4c]
mov ecx, dword [ecx + esi*4 + 0x48]
mov al, byte [ecx + eax + 1]
sar al, 1
movsx esi, al
mov eax, dword [esp + 0x54]
jmp 0x1007bdfe
mov esi, dword [esp + 0x44]
movzx eax, word [esi]
mov dword [esp + 0x34], eax
movzx eax, word [esi + 2]
jmp 0x1007ba09
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x60]
jne 0x1007b918
jmp 0x10079e45
mov ecx, edx
or ecx, 1
bsr ecx, ecx
mov dword [esp + 0x2c], ecx
lea edi, [ecx + ecx]
mov ecx, edi
xor ecx, 0x3f
add ecx, ebx
cmp esi, ecx
cmovb ecx, esi
mov esi, dword [esp + 4]
mov dword [esi], ecx
mov ecx, edi
add cl, 0xe1
shr edx, cl
dec edx
cmp dword [esp + 0x2c], 0x13
mov ecx, 0xbebbb1b7
cmovae ecx, edx
mov edx, dword [esp + 0x38]
dec edx
cmp edx, 1
ja 0x1007c1a3
cmp ecx, 0x2f
ja 0x1007aa39
test al, 1
jne 0x1007d7d0
lea ecx, [ecx + 0x102de95d]
jmp 0x1007d7de
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0x78a0]
pxor xmm0, xmm0
movdqa xmmword [edx + 0x78a0], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x78b0], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x78c0], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x78d0], xmm0
mov ecx, dword [ebp + 8]
push 0x10
push 0
push dword [esp + 0xc]
push 0x31
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
test eax, eax
js 0x1007a12f
test byte [esp + 0x2c], 0xf
je 0x1007d7ea
mov eax, dword [esp + 4]
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0xc]
add eax, 0x6c60
mov dword [esp + 0x18], eax
mov ebx, 0x13
mov esi, 0x130
shl dword [esp + 0x1c], 6
lea eax, [ebx - 3]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov edi, dword [ecx + 0x2a6e0]
add edi, dword [esp + 0x1c]
lea edx, [esi - 0x30]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push edi
push dword [esp + 0x30]
push dword [esp + 0x14]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea eax, [ebx - 2]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov edi, dword [ecx + 0x2a6e0]
add edi, dword [esp + 0x1c]
lea edx, [esi - 0x20]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push edi
push dword [esp + 0x30]
push dword [esp + 0x14]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea eax, [ebx - 1]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov edi, dword [ecx + 0x2a6e0]
add edi, dword [esp + 0x1c]
lea edx, [esi - 0x10]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push edi
push dword [esp + 0x30]
push dword [esp + 0x14]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov eax, dword [eax + 0x2a6e0]
add eax, dword [esp + 0x1c]
mov edx, esi
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x18]
lea edi, [ecx + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push eax
push dword [esp + 0x30]
push ebx
push edi
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
add ebx, 4
add esi, 0x40
cmp ebx, 0x23
jne 0x1007c05a
jmp 0x1007d807
cmp ecx, 0xf
ja 0x1007aa39
test al, 1
jne 0x1007d7d8
lea ecx, [ecx + 0x102ddc30]
jmp 0x1007d7de
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x2c], ecx
mov esi, eax
mov eax, ecx
shr eax, 3
mov eax, dword [edi + eax]
bswap eax
mov ecx, dword [esp + 0x2c]
and cl, 7
shl eax, cl
mov esi, dword [esi + 0x14]
mov dword [esp + 0x10], esi
shr eax, 0xf0
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
cmp esi, ecx
cmovb ecx, esi
shl eax, 0x10
mov esi, ecx
shr esi, 3
mov dword [esp + 4], edi
mov esi, dword [edi + esi]
bswap esi
and cl, 7
shl esi, cl
shr esi, 0xf0
or esi, eax
or esi, 1
bsr ecx, esi
xor ecx, 0x1f
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x2c]
neg edi
cmp ecx, eax
cmovl eax, ecx
mov dword [esp + 0xc], ecx
cmp ecx, edi
cmovl eax, edi
add eax, dword [esp + 0x2c]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, eax
shr ecx, 3
cmp esi, 0x80
jb 0x1007d2bc
mov esi, dword [esp + 4]
mov edi, dword [esi + ecx]
bswap edi
mov ecx, eax
and cl, 7
shl edi, cl
mov ecx, dword [esp + 0xc]
add eax, ecx
inc eax
not cl
shr edi, cl
mov ecx, dword [esp + 0x10]
cmp ecx, eax
cmovb eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x1007d329
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 4]
mov eax, dword [eax]
xor ecx, ecx
inc ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], 0
xor edi, edi
movzx ebx, byte [edi + 0x102dd680]
mov esi, dword [ebp + 0xc]
movzx ecx, byte [esi + ebx + 0x517b]
movzx edx, byte [esi + ebx + 0x5174]
cmp cl, dl
cmovl edx, ecx
test dl, dl
mov ecx, 2
cmovs edx, ecx
mov ecx, eax
movzx eax, dl
mov dword [esp + 0xc], eax
mov edx, ecx
shr edx, 3
xor eax, eax
cmp ecx, dword [esp + 0x20]
setl al
add eax, ecx
mov esi, dword [esp + 8]
movzx edx, byte [esi + edx]
mov esi, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
and cl, 7
shl edx, cl
test dl, 0x80
jne 0x1007c33f
mov ecx, eax
shr ecx, 3
mov edx, dword [esp + 8]
mov esi, dword [edx + ecx]
bswap esi
mov ecx, eax
and cl, 7
shl esi, cl
shr esi, 0xfd
add eax, 3
mov ecx, dword [esp + 0x20]
cmp ecx, eax
cmovb eax, ecx
xor ecx, ecx
cmp esi, dword [esp + 0xc]
setge cl
add ecx, esi
mov edx, dword [esp + 4]
mov dword [edx], eax
mov dword [esp + 0xc], ecx
cmp byte [esp + 0x14], 0
je 0x1007c366
mov edx, dword [esp + 0xc]
mov ecx, edx
shl ecx, 8
add ecx, edx
mov edx, dword [ebp + 0xc]
mov word [edx + ebx + 0x517c], cx
mov word [edx + ebx + 0x5184], cx
jmp 0x1007c374
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0xc]
mov byte [ecx + ebx + 0x517c], dl
add edi, dword [esp + 0x1c]
cmp edi, 0x10
jb 0x1007c2ac
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0x51a0]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0xb1b4c]
mov edx, dword [edi + 0x5200]
mov ecx, dword [ecx + edx*4]
mov edx, dword [edi + 0x51a4]
mov dword [edx + ecx], eax
mov al, byte [edi + 0x519b]
mov byte [edx + ecx + 4], al
mov al, byte [edi + 0x5193]
mov byte [edx + ecx + 5], al
mov al, byte [edi + 0x518b]
mov byte [edx + ecx + 6], al
lea eax, [edi + 0x517c]
push dword [edi + 0x51e4]
push dword [edi + 0x51dc]
push dword [esi + 4]
push eax
call fcn.101c57e0
add esp, 0x10
jmp 0x10079dcc
mov edi, dword [edi + 0xb1350]
mov dword [edi + eax*4], 0xffffffff
jmp 0x1007a8cc
cmp cl, 3
ja 0x1007aa39
movzx edx, byte [ecx*4 + 0x102dea18]
mov dword [esp + 0xa0], edx
movzx ecx, word [ecx*4 + 0x102dea16]
mov edx, dword [ebp + 0xc]
mov word [edx + 0x6c58], cx
mov ecx, ebx
shr ecx, 3
mov esi, dword [edi + ecx]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx edx, byte [esi + 0x102b0dc9]
add edx, ebx
cmp eax, edx
cmovb edx, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebx + 0xc], edx
movzx ecx, byte [esi + 0x102b0fc9]
mov word [ebx + 0x6c5a], cx
cmp cx, 3
ja 0x1007aa39
movzx ecx, cx
movzx esi, byte [ecx*4 + 0x102dea18]
mov dword [esp + 0xa4], esi
movzx ecx, word [ecx*4 + 0x102dea16]
mov esi, dword [ebp + 0xc]
mov word [esi + 0x6c5a], cx
mov ecx, edx
shr ecx, 3
mov esi, dword [edi + ecx]
bswap esi
mov ecx, edx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ebx, byte [esi + 0x102b0dc9]
add ebx, edx
cmp eax, ebx
cmovb ebx, eax
mov edx, dword [ebp + 0xc]
mov dword [edx + 0xc], ebx
movzx ecx, byte [esi + 0x102b0fc9]
mov word [edx + 0x6c5c], cx
cmp cx, 3
ja 0x1007aa39
movzx ecx, cx
movzx edx, byte [ecx*4 + 0x102dea18]
mov dword [esp + 0xa8], edx
movzx ecx, word [ecx*4 + 0x102dea16]
mov esi, dword [ebp + 0xc]
mov word [esi + 0x6c5c], cx
mov ecx, ebx
shr ecx, 3
mov edx, dword [edi + ecx]
bswap edx
mov ecx, ebx
and cl, 7
shl edx, cl
shr edx, 0x17
movzx ecx, byte [edx + 0x102b0dc9]
add ecx, ebx
cmp eax, ecx
cmovb ecx, eax
mov dword [esi + 0xc], ecx
movzx eax, byte [edx + 0x102b0fc9]
mov word [esi + 0x6c5e], ax
cmp ax, 3
ja 0x1007aa39
movzx eax, ax
movzx ecx, byte [eax*4 + 0x102dea18]
mov dword [esp + 0xac], ecx
movzx eax, word [eax*4 + 0x102dea16]
mov ecx, dword [ebp + 0xc]
mov word [ecx + 0x6c5e], ax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x5850]
mov dword [esp + 0x74], eax
test eax, eax
je 0x1007c8e1
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
movzx eax, word [eax + 0x6c58]
mov dword [esp + 8], eax
xor eax, eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x20], ecx
bt dword [esp + 0x1c], 9
mov ecx, 1
mov dword [esp + 0xc], ecx
jb 0x1007c5a7
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*2 + 0x5848]
mov cl, byte [ecx + 0x5224]
shl edx, cl
mov dword [esp + 0xc], edx
mov edi, 0x1000
mov ecx, eax
shl edi, cl
bt dword [esp + 8], 8
jb 0x1007c67a
xor ecx, ecx
dec ecx
test dword [esp + 8], edi
je 0x1007c673
cmp dword [esp + 0xc], 1
je 0x1007c620
cmp dword [esp + 0xc], 2
jne 0x1007c624
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x14], edx
mov edx, ecx
shr edx, 3
mov dword [esp + 0x24], edx
xor edx, edx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
movzx esi, byte [esi + ebx]
setl dl
add edx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], edx
xor ecx, ecx
mov edx, esi
test dl, 0x80
sete cl
jmp 0x1007c673
xor ecx, ecx
jmp 0x1007c673
mov ecx, dword [esp + 4]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, esi
mov ebx, esi
shr edx, 3
mov esi, dword [ecx + edx]
bswap esi
mov edx, ebx
mov ecx, edx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
cmp edx, ecx
cmovb ecx, edx
mov edx, dword [esp + 4]
mov dword [edx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
cmp dword [esp + 0xc], ecx
jbe 0x1007aa39
mov dword [esp + eax*8 + 0x80], ecx
mov ecx, dword [ebp + 0xc]
movzx edx, word [ecx + 0x6c5a]
bt edx, 8
jb 0x1007c744
xor ecx, ecx
dec ecx
test edi, edx
je 0x1007c73d
cmp dword [esp + 0xc], 1
je 0x1007c6ea
cmp dword [esp + 0xc], 2
jne 0x1007c6ee
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x14], edx
mov edx, ecx
shr edx, 3
mov ebx, edx
xor edx, edx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 0x14]
movzx esi, byte [esi + ebx]
setl dl
add edx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], edx
xor ecx, ecx
mov edx, esi
test dl, 0x80
sete cl
jmp 0x1007c73d
xor ecx, ecx
jmp 0x1007c73d
mov ecx, dword [esp + 4]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, esi
mov ebx, esi
shr edx, 3
mov esi, dword [ecx + edx]
bswap esi
mov edx, ebx
mov ecx, edx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
cmp edx, ecx
cmovb ecx, edx
mov edx, dword [esp + 4]
mov dword [edx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
cmp dword [esp + 0xc], ecx
jbe 0x1007aa39
mov dword [esp + eax*8 + 0x84], ecx
mov ecx, dword [ebp + 0xc]
movzx edx, word [ecx + 0x6c5c]
bt edx, 8
jb 0x1007c80e
xor ecx, ecx
dec ecx
test edi, edx
je 0x1007c807
cmp dword [esp + 0xc], 1
je 0x1007c7b4
cmp dword [esp + 0xc], 2
jne 0x1007c7b8
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x14], edx
mov edx, ecx
shr edx, 3
mov ebx, edx
xor edx, edx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 0x14]
movzx esi, byte [esi + ebx]
setl dl
add edx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], edx
xor ecx, ecx
mov edx, esi
test dl, 0x80
sete cl
jmp 0x1007c807
xor ecx, ecx
jmp 0x1007c807
mov ecx, dword [esp + 4]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, esi
mov ebx, esi
shr edx, 3
mov esi, dword [ecx + edx]
bswap esi
mov edx, ebx
mov ecx, edx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
cmp edx, ecx
cmovb ecx, edx
mov edx, dword [esp + 4]
mov dword [edx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
cmp dword [esp + 0xc], ecx
jbe 0x1007aa39
mov dword [esp + eax*8 + 0x88], ecx
mov ecx, dword [ebp + 0xc]
movzx edx, word [ecx + 0x6c5e]
bt edx, 8
jb 0x1007c8d4
xor ecx, ecx
dec ecx
test edi, edx
je 0x1007c8cd
cmp dword [esp + 0xc], 1
je 0x1007c87c
cmp dword [esp + 0xc], 2
jne 0x1007c880
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [esp + 0xc], edx
mov edi, ecx
shr edi, 3
xor edx, edx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 0xc]
movzx esi, byte [esi + edi]
setl dl
add edx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], edx
xor ecx, ecx
mov edx, esi
test dl, 0x80
sete cl
jmp 0x1007c8cd
xor ecx, ecx
jmp 0x1007c8cd
mov ecx, dword [esp + 4]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov edx, edi
shr edx, 3
mov esi, dword [ecx + edx]
bswap esi
mov edx, edi
mov ecx, edx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, edi
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
cmp edx, ecx
cmovb ecx, edx
mov edx, dword [esp + 4]
mov dword [edx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
cmp dword [esp + 0xc], ecx
jbe 0x1007aa39
mov dword [esp + eax*8 + 0x8c], ecx
add eax, 2
dec dword [esp + 0x20]
jne 0x1007c580
cmp dword [esp + 0x28], 0
je 0x1007e8db
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2284]
cmp dword [eax + 0x48], 0
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x6c58]
mov ecx, 0x1700170
mov edx, 0x700070
cmove edx, ecx
or eax, dword [esi + 0x6c5c]
xor ecx, ecx
test eax, edx
sete cl
mov dword [esp + 0x28], ecx
cmp dword [esp + 0x74], 0
je 0x10079e45
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
lea ecx, [eax + eax]
mov edx, 0x1000
shl edx, cl
mov dword [esp + 0x70], edx
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea esi, [eax + edx*8]
add esi, 0x6b4b
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], edx
mov esi, 0x3000
shl esi, cl
mov dword [esp + 0x68], esi
shl edx, 5
mov dword [esp + 0x64], edx
add eax, edx
add eax, 0x6a28
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], 0x102dd680
mov dword [esp + 0x5c], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x5c]
test byte [eax + ecx*2 + 0x6c59], 1
jne 0x1007cfa1
mov eax, dword [esp + 0x58]
shl eax, 4
add eax, esp
add eax, 0x80
mov edi, dword [esp + 0x5c]
mov cl, byte [eax + edi*4]
movzx eax, byte [edi*4 + 0x102dd680]
mov edx, dword [ebp + 0xc]
mov esi, dword [esp + 0x48]
lea esi, [edx + esi*8]
mov byte [eax + esi + 0x6b49], cl
mov byte [eax + esi + 0x6b48], cl
mov byte [eax + esi + 0x6b41], cl
mov dword [esp + 0x40], esi
mov byte [eax + esi + 0x6b40], cl
movzx ecx, word [edx + edi*2 + 0x6c58]
mov dword [esp + 0x3c], ecx
test dword [esp + 0x70], ecx
je 0x1007cfe0
mov eax, dword [esp + 0x3c]
and eax, 0x18
cmp eax, 1
mov eax, 2
sbb eax, 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
mov eax, dword [esp + eax*4 + 0xa0]
mov dword [esp + 0x44], eax
test eax, eax
jle 0x1007cfc5
mov eax, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov bh, byte [eax]
movzx ecx, bh
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x48]
lea eax, [edx + eax*8 + 0x6b40]
mov edi, dword [esp + 0x40]
mov dl, byte [ecx + edi + 0x6b38]
mov byte [esp + 0x14], dl
mov dl, byte [ecx + edi + 0x6b3f]
mov byte [esp + 0xc], dl
mov edx, dword [esp + 0x34]
lea edx, [ecx + edx - 8]
mov dword [esp + 0x50], edx
mov bl, byte [eax + edx]
mov eax, ecx
and eax, 7
mov esi, dword [esp + 0x64]
mov edx, dword [ebp + 0xc]
add esi, edx
mov dword [esp + 8], esi
mov dword [esp + 0x1c], ecx
movsx ecx, byte [ecx + edi + 0x6b40]
mov dword [esp + 0x24], ecx
cmp eax, 4
jne 0x1007cb9e
cmp bh, 0x14
jb 0x1007cb9e
mov eax, dword [ebp + 8]
cmp dword [eax + 0xb1b58], 0
je 0x1007cb9e
cmp bl, 0xfe
jne 0x1007cb9e
mov eax, dword [esp + 0x54]
cmp byte [eax], 0xfe
je 0x1007cba9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb1304]
mov edx, dword [eax + 0x34]
mov eax, dword [esp + 0x4c]
mov dword [eax], 0
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
mov eax, dword [eax + 0x51c8]
je 0x1007ced5
test al, 0x80
jne 0x1007cba9
xor eax, eax
cmp byte [esp + 0x1c], 0x24
setae al
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + eax*4 + 0x51b4]
mov esi, dword [esp + 0x4c]
xor edi, edi
dec edi
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], ecx
test dword [edx + ecx*4], eax
je 0x1007cbc6
mov edx, dword [esp + 0x1c]
shr edx, 2
mov eax, edx
and eax, 3
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0xb1304]
mov esi, dword [esp + 0x58]
mov ecx, dword [ecx + esi*4 + 0x28]
mov esi, dword [ebx + 0xb1b48]
imul eax, dword [ebx + 0xb1b50]
mov ebx, dword [esp + 0x50]
add eax, dword [esi + ebx*4]
movzx esi, word [ecx + eax*4 + 0xc]
mov edi, dword [esp + 0x4c]
mov word [edi], si
movzx eax, word [ecx + eax*4 + 0xe]
mov ecx, eax
shr ecx, 0xf
add ecx, eax
movsx eax, cx
shr eax, 1
mov esi, edi
mov word [edi + 2], ax
and edx, 2
lea eax, [edx + ebx*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xb1304]
mov edx, dword [esp + 0x58]
mov ecx, dword [ecx + edx*4 + 0x48]
movsx edi, byte [ecx + eax + 1]
add edi, edi
jmp 0x1007cbc6
movsx eax, bl
cmp al, 0xfe
jne 0x1007ce49
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 8]
lea esi, [eax + ecx*4]
add esi, 0x69dc
mov eax, dword [esp + 0x40]
movsx edi, byte [ecx + eax + 0x6b37]
xor edx, edx
mov ebx, dword [esp + 0x24]
mov eax, edi
cmp edi, ebx
sete dl
xor ecx, ecx
cmp byte [esp + 0x14], bl
sete cl
xor eax, eax
cmp byte [esp + 0xc], bl
sete al
add eax, ecx
add eax, edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
lea edx, [edx + ecx*4]
add edx, 0x69fc
cmp eax, 2
jb 0x1007cca3
movsx eax, word [esi]
movsx ecx, word [edx - 0x1c]
movsx edi, word [edx]
mov ebx, ecx
cmp edi, ecx
cmovg ebx, edi
cmovg edi, ecx
cmp edi, eax
cmovl edi, eax
cmp ebx, edi
cmovg ebx, edi
mov dword [esp + 0x24], ebx
movsx eax, word [esi + 2]
movsx ecx, word [edx - 0x1a]
movsx edx, word [edx + 2]
mov esi, ecx
cmp edx, ecx
cmovg esi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp esi, edx
cmovg esi, edx
mov dword [esp + 0x14], esi
mov eax, dword [esp + 4]
mov ebx, dword [eax]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax]
mov eax, ebx
shr eax, 3
mov eax, dword [edi + eax]
bswap eax
mov ecx, ebx
and cl, 7
shl eax, cl
cmp eax, 0x8000000
jb 0x1007ccd9
shr eax, 0x17
movzx ecx, byte [eax + 0x102b0dc9]
add ebx, ecx
mov ecx, dword [esp + 0xc]
mov esi, ecx
cmp ecx, ebx
jb 0x1007cc8f
mov esi, ebx
mov ecx, dword [esp + 4]
mov edx, esi
mov dword [ecx], esi
movsx ebx, byte [eax + 0x102b11c9]
jmp 0x1007cd2f
cmp eax, 1
jne 0x1007ce61
mov eax, dword [esp + 0x24]
cmp byte [esp + 0xc], al
je 0x1007ce74
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x14], al
jne 0x1007cf91
movzx eax, word [edx - 0x1c]
mov dword [esp + 0x24], eax
movzx eax, word [edx - 0x1a]
jmp 0x1007ce7f
or eax, 1
bsr eax, eax
mov ecx, eax
xor ecx, 0x1f
add ecx, ebx
mov esi, dword [esp + 0xc]
mov edx, esi
cmp esi, ecx
jb 0x1007ccf2
mov edx, ecx
mov ecx, edx
shr ecx, 3
mov ebx, dword [edi + ecx]
bswap ebx
mov ecx, edx
and cl, 7
shl ebx, cl
mov ecx, eax
shr ebx, cl
sub edx, eax
add edx, 0x20
mov eax, dword [esp + 0xc]
mov esi, eax
cmp eax, edx
jb 0x1007cd18
mov esi, edx
mov eax, dword [esp + 4]
mov ecx, esi
mov dword [eax], esi
mov eax, ebx
and eax, 1
mov ecx, eax
neg ecx
shr ebx, 1
xor ebx, ecx
add ebx, eax
add ebx, dword [esp + 0x24]
mov ecx, esi
mov eax, esi
shr eax, 3
mov eax, dword [edi + eax]
bswap eax
and cl, 7
shl eax, cl
cmp eax, 0x8000000
jb 0x1007cd76
shr eax, 0x17
movzx ecx, byte [eax + 0x102b0dc9]
add esi, ecx
cmp dword [esp + 0xc], esi
jb 0x1007cd63
mov ecx, esi
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov dword [ecx], edx
movsx edi, byte [eax + 0x102b11c9]
jmp 0x1007cdcc
or eax, 1
bsr eax, eax
mov ecx, eax
xor ecx, 0x1f
add ecx, esi
mov esi, dword [esp + 0xc]
mov edx, esi
cmp esi, ecx
jb 0x1007cd8f
mov edx, ecx
mov ecx, edx
shr ecx, 3
mov edi, dword [edi + ecx]
bswap edi
mov ecx, edx
and cl, 7
shl edi, cl
mov ecx, eax
shr edi, cl
sub edx, eax
add edx, 0x20
cmp dword [esp + 0xc], edx
jb 0x1007cdb3
mov dword [esp + 0xc], edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov dword [eax], ecx
mov eax, edi
and eax, 1
mov ecx, eax
neg ecx
shr edi, 1
xor edi, ecx
add edi, eax
add edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
lea eax, [ecx + eax*4]
add eax, 0x6a00
test byte [esp + 0x3c], 8
jne 0x1007ce03
test byte [esp + 0x3c], 0x10
jne 0x1007ce88
test byte [esp + 0x3c], 0x20
je 0x1007ce1b
mov word [eax + 0x20], bx
mov word [eax + 0x22], di
jmp 0x1007ce1b
mov word [eax + 0x24], bx
mov word [eax + 0x20], bx
mov word [eax + 4], bx
mov word [eax + 0x26], di
mov word [eax + 0x22], di
mov word [eax + 6], di
mov word [eax], bx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov word [ecx + eax*4 + 0x6a02], di
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
dec dword [esp + 0x44]
jne 0x1007ca30
jmp 0x1007cfc5
mov edi, eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x50]
lea esi, [eax + ecx*4]
add esi, 0x6a00
jmp 0x1007cbc6
cmp byte [esp + 0x14], 0xfe
jne 0x1007ce8e
cmp edi, 0xfffffffe
jne 0x1007ce8e
cmp byte [esp + 0xc], 0xfe
je 0x1007ce8e
movzx eax, word [edx]
mov dword [esp + 0x24], eax
movzx eax, word [edx + 2]
mov dword [esp + 0x14], eax
jmp 0x1007cc49
mov word [eax + 4], bx
jmp 0x1007ce17
movsx eax, word [esi]
movsx ecx, word [edx - 0x1c]
movsx edi, word [edx]
mov ebx, ecx
cmp edi, ecx
cmovg ebx, edi
cmovg edi, ecx
cmp edi, eax
cmovl edi, eax
cmp ebx, edi
cmovg ebx, edi
mov dword [esp + 0x24], ebx
movsx eax, word [esi + 2]
movsx ecx, word [edx - 0x1a]
movsx edx, word [edx + 2]
mov esi, ecx
cmp edx, ecx
cmovg esi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp esi, edx
cmovg esi, edx
jmp 0x1007cc45
test al, 0x80
je 0x1007cba9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb1dd8]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + 0x51b4]
add edi, eax
mov ecx, dword [ecx + 0x51fc]
and ecx, 1
mov esi, dword [esp + 0x1c]
shr esi, 5
lea ecx, [esi + ecx*2]
mov dword [esp + 0x78], ecx
shr ecx, 2
imul ecx, eax
mov dword [esp + 0x50], edi
add ecx, edi
mov esi, dword [esp + 0x4c]
xor edi, edi
dec edi
mov eax, dword [esp + 0x68]
test dword [edx + ecx*4], eax
je 0x1007cbc6
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xb1304]
mov ecx, dword [esp + 0x58]
mov eax, dword [eax + ecx*4 + 0x28]
mov ecx, dword [esi + 0xb1b48]
mov edx, dword [esi + 0xb1b50]
mov esi, dword [esp + 0x78]
imul edx, esi
mov edi, dword [esp + 0x50]
add edx, dword [ecx + edi*4]
movzx ecx, word [eax + edx*4 + 0xc]
mov ebx, dword [esp + 0x4c]
mov word [ebx], cx
movzx eax, word [eax + edx*4 + 0xe]
add eax, eax
mov word [ebx + 2], ax
and esi, 0xfffffffe
lea eax, [esi + edi*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xb1304]
mov edx, dword [esp + 0x58]
mov ecx, dword [ecx + edx*4 + 0x48]
mov al, byte [ecx + eax + 1]
sar al, 1
movsx edi, al
mov esi, ebx
jmp 0x1007cbc6
movzx eax, word [esi]
mov dword [esp + 0x24], eax
movzx eax, word [esi + 2]
jmp 0x1007ce7f
mov eax, dword [esp + 0x5c]
movzx eax, byte [eax*4 + 0x102dd680]
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x48]
lea ecx, [ecx + edx*8]
mov dl, byte [eax + ecx + 0x6b41]
mov byte [eax + ecx + 0x6b40], dl
mov ecx, dword [esp + 0x5c]
inc ecx
add dword [esp + 0x60], 4
mov eax, ecx
mov dword [esp + 0x5c], ecx
cmp ecx, 4
jne 0x1007c989
jmp 0x1007d009
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x64]
add ecx, edx
xor edx, edx
mov dword [ecx + eax*4 + 0x6a24], edx
mov dword [ecx + eax*4 + 0x6a20], edx
mov dword [ecx + eax*4 + 0x6a04], edx
mov dword [ecx + eax*4 + 0x6a00], edx
jmp 0x1007cfc5
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x74]
jne 0x1007c933
jmp 0x10079e45
lea eax, [esp + 0x7c]
push eax
push dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push esi
call fcn.101a61e0
add esp, 0xc
mov eax, dword [esi + 0xb2284]
mov ecx, dword [esp + 0x28]
and ecx, dword [eax + 0x48]
mov dword [esp + 0x28], ecx
jmp 0x10079e45
mov eax, ecx
or eax, 0x3808
mov dword [esp + 0xa0], eax
mov esi, dword [ebp + 8]
mov ecx, esi
mov edi, dword [ebp + 0xc]
mov edx, edi
mov dword [esp + 0x2c], eax
push eax
call fcn.1007e910
add esp, 4
xor eax, eax
dec eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0xb1330]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xb1350]
mov dword [esp + 4], eax
mov eax, dword [esi + 0xb1b50]
mov dword [esp + 0x38], eax
xor edx, edx
mov dword [edi + 0x6b4c], edx
mov dword [edi + 0x6b54], edx
mov dword [edi + 0x6b5c], edx
mov dword [edi + 0x6b64], edx
mov edx, dword [edi + 0x51c8]
test edx, 0x3000
je 0x1007ddb9
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x51b4]
mov ecx, dword [eax + 0x51d0]
movzx ecx, byte [ecx]
mov edi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xb1b48]
imul ecx, dword [esp + 0x38]
add ecx, dword [eax + esi*4]
and edi, 0xfffffffe
lea eax, [edi + esi*4]
mov esi, dword [esp + 4]
movsx eax, byte [esi + eax + 1]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
lea eax, [eax + ecx*4]
add eax, 0xc
mov dword [esp + 0x28], eax
cmp dword [ebx + 0xb1b58], 0
je 0x1007d16f
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
je 0x1007e674
test dl, 0x80
jne 0x1007d16f
mov eax, dword [esp + 0xc]
add eax, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x80], eax
mov ecx, eax
shr ecx, 0x10
shr eax, 0x1f
add eax, ecx
movsx edx, ax
shr edx, 1
lea eax, [esp + 0x80]
mov dword [esp + 0x28], eax
mov word [eax + 2], dx
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
or eax, dword [esp + 0xc]
je 0x1007e648
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x51c0]
test edx, 0x3000
je 0x1007e634
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x51ac]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0xb1b48]
mov esi, dword [esp + 0x38]
lea esi, [esi + esi*2]
add esi, dword [ecx + eax*4]
mov ecx, dword [esp + 4]
movsx ebx, byte [ecx + eax*4 + 2]
mov eax, dword [esp + 0x10]
lea eax, [eax + esi*4]
mov dword [esp + 0x30], eax
cmp dword [edi + 0xb1b58], 0
je 0x1007d20f
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
je 0x1007e80d
test dl, 0x80
jne 0x1007d20f
add ebx, ebx
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x84], eax
mov ecx, eax
shr ecx, 0x10
shr eax, 0x1f
add eax, ecx
movsx edx, ax
shr edx, 1
lea eax, [esp + 0x84]
mov dword [esp + 0x30], eax
mov word [eax + 2], dx
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
or eax, ebx
je 0x1007e648
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x51c4]
test edx, 0x3000
je 0x1007e69c
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x51b0]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0xb1b48]
mov esi, dword [esp + 0x38]
lea esi, [esi + esi*2]
add esi, dword [ecx + eax*4]
mov ecx, dword [esp + 4]
movsx eax, byte [ecx + eax*4 + 2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
lea esi, [eax + esi*4]
cmp dword [edi + 0xb1b58], 0
je 0x1007e6a9
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
je 0x1007e833
test dl, 0x80
jne 0x1007e6a9
mov eax, dword [esp + 0x18]
add eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [esi]
mov dword [esp + 0x88], eax
mov ecx, eax
shr ecx, 0x10
shr eax, 0x1f
add eax, ecx
movsx ecx, ax
shr ecx, 1
lea eax, [esp + 0x88]
mov esi, eax
mov word [eax + 2], cx
jmp 0x1007e6a9
mov esi, dword [esp + 4]
mov edi, dword [esi + ecx]
bswap edi
mov ecx, eax
and cl, 7
shl edi, cl
shr edi, 0xf0
mov dword [esp + 0x2c], edi
add eax, 0x10
mov ecx, dword [esp + 0x10]
cmp ecx, eax
cmovb eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, eax
shr ecx, 3
mov edi, dword [esi + ecx]
mov esi, dword [esp + 0xc]
lea ecx, [esi - 0xf]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
shl dword [esp + 0x2c], cl
add esi, eax
add esi, 0xfffffff1
mov ecx, eax
bswap edi
and cl, 7
shl edi, cl
mov ecx, dword [esp + 4]
neg cl
shr edi, cl
mov eax, dword [esp + 0x10]
cmp eax, esi
cmovb esi, eax
mov eax, dword [ebp + 0xc]
mov dword [eax + 0xc], esi
or edi, dword [esp + 0x2c]
dec edi
mov dword [esp + 0xc], 0xbebbb1b7
mov eax, dword [ebp + 8]
cmp edi, dword [eax + 0xb1ddc]
ja 0x1007a12f
jmp 0x1007a15b
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0xb1350]
mov dword [esi + eax*4], 0xffffffff
jmp 0x1007a30b
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x5850]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x10079e45
mov eax, dword [ebp + 0xc]
lea edx, [eax + 0x6b64]
xor eax, eax
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ebx, cl
bt ebx, 0xc
jae 0x1007d470
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax*2 + 0x5848]
mov cl, byte [ecx + 0x5224]
shl edi, cl
cmp edi, 1
je 0x1007d400
cmp edi, 2
jne 0x1007d404
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edi, dword [esp + 0x10]
mov edi, dword [edi]
mov dword [esp + 8], edi
mov edi, ecx
shr edi, 3
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi]
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x20]
movzx edi, byte [edi + ebx]
mov ebx, 0
setl bl
add ebx, ecx
and cl, 7
shl edi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], ebx
xor ecx, ecx
mov ebx, edi
test bl, 0x80
sete cl
jmp 0x1007d45f
xor ecx, ecx
jmp 0x1007d45f
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov ebx, dword [esp + 8]
shr ebx, 3
mov ebx, dword [ecx + ebx]
bswap ebx
mov ecx, dword [esp + 8]
and cl, 7
shl ebx, cl
shr ebx, 0x17
mov dword [esp + 0x20], ebx
movzx ecx, byte [ebx + 0x102b0dc9]
add ecx, dword [esp + 8]
mov ebx, dword [esp + 0x18]
mov ebx, dword [ebx]
cmp ebx, ecx
cmovb ecx, ebx
mov ebx, dword [esp + 4]
mov dword [ebx], ecx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + 0x102b0fc9]
cmp edi, ecx
jbe 0x1007a12f
imul ecx, ecx, 0x1010101
mov dword [edx - 0x18], ecx
mov dword [edx - 0x10], ecx
mov dword [edx - 8], ecx
mov dword [edx], ecx
add edx, 0x28
add eax, 2
dec esi
jne 0x1007d386
cmp dword [esp + 0x3c], 0
je 0x10079e45
mov eax, dword [ebp + 0xc]
lea esi, [eax + 0x6a0c]
add eax, 0x6b4c
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
shr eax, cl
bt eax, 0xc
jae 0x1007d72e
mov eax, dword [esp + 0xc]
mov al, byte [eax - 4]
mov byte [esp + 0x20], al
cmp al, 0xfe
jne 0x1007d4dc
mov eax, dword [esp + 0xc]
mov al, byte [eax - 9]
mov byte [esp + 0x20], al
mov edi, esi
jmp 0x1007d4f2
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*4]
shl eax, 5
mov ecx, dword [ebp + 0xc]
lea edi, [ecx + eax]
add edi, 0x6a20
mov eax, dword [esp + 0xc]
mov dh, byte [eax]
mov dl, byte [eax - 8]
mov al, byte [eax - 1]
mov byte [esp + 0x14], al
xor ebx, ebx
cmp byte [esp + 0x20], dh
sete bl
xor ecx, ecx
mov byte [esp + 0x34], dl
cmp dl, dh
sete cl
xor eax, eax
mov byte [esp + 0x40], dh
cmp byte [esp + 0x14], dh
sete al
add eax, ecx
add eax, ebx
cmp eax, 2
jb 0x1007d5cc
movsx eax, word [edi]
movsx ecx, word [esi + 4]
movsx edx, word [esi + 0x20]
mov ebx, ecx
cmp edx, ecx
cmovg ebx, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp ebx, edx
cmovg ebx, edx
mov dword [esp + 0x34], ebx
movsx eax, word [edi + 2]
movsx ecx, word [esi + 6]
movsx edx, word [esi + 0x22]
mov edi, ecx
cmp edx, ecx
cmovg edi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp edi, edx
cmovg edi, edx
mov dword [esp + 0x14], edi
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x20], edx
mov ebx, dword [edx + ecx]
bswap ebx
mov ecx, eax
and cl, 7
shl ebx, cl
cmp ebx, 0x8000000
jb 0x1007d602
shr ebx, 0x17
movzx ecx, byte [ebx + 0x102b0dc9]
add eax, ecx
mov edx, edi
cmp edi, eax
jb 0x1007d5ba
mov edx, eax
mov eax, dword [esp + 4]
mov dword [eax], edx
movsx eax, byte [ebx + 0x102b11c9]
jmp 0x1007d652
cmp eax, 1
jne 0x1007d751
mov al, byte [esp + 0x40]
cmp byte [esp + 0x14], al
je 0x1007d766
mov al, byte [esp + 0x40]
cmp byte [esp + 0x34], al
jne 0x1007d7c3
movzx eax, word [esi + 4]
mov dword [esp + 0x34], eax
movzx eax, word [esi + 6]
jmp 0x1007d772
or ebx, 1
bsr edx, ebx
mov ecx, edx
xor ecx, 0x1f
add ecx, eax
mov ebx, edi
cmp edi, ecx
jb 0x1007d617
mov ebx, ecx
mov eax, ebx
shr eax, 3
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + eax]
bswap eax
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, edx
shr eax, cl
sub ebx, edx
add ebx, 0x20
mov edx, edi
cmp edi, ebx
jb 0x1007d63d
mov edx, ebx
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, eax
and ecx, 1
mov ebx, ecx
neg ebx
shr eax, 1
xor eax, ebx
add eax, ecx
add eax, dword [esp + 0x34]
mov ecx, edx
shr ecx, 3
mov ebx, dword [esp + 0x20]
mov ebx, dword [ebx + ecx]
bswap ebx
mov ecx, edx
and cl, 7
shl ebx, cl
cmp ebx, 0x8000000
jb 0x1007d694
shr ebx, 0x17
movzx ecx, byte [ebx + 0x102b0dc9]
add edx, ecx
cmp edi, edx
jb 0x1007d685
mov edi, edx
mov ecx, dword [esp + 4]
mov dword [ecx], edi
movsx edx, byte [ebx + 0x102b11c9]
jmp 0x1007d6e6
or ebx, 1
bsr ecx, ebx
mov dword [esp + 0x34], ecx
xor ecx, 0x1f
add ecx, edx
mov ebx, edi
cmp edi, ecx
jb 0x1007d6ab
mov ebx, ecx
mov ecx, ebx
shr ecx, 3
mov edx, dword [esp + 0x20]
mov edx, dword [edx + ecx]
bswap edx
mov ecx, ebx
and cl, 7
shl edx, cl
mov ecx, dword [esp + 0x34]
shr edx, cl
sub ebx, ecx
add ebx, 0x20
cmp edi, ebx
jb 0x1007d6d1
mov edi, ebx
mov ecx, dword [esp + 4]
mov dword [ecx], edi
mov ecx, edx
and ecx, 1
mov edi, ecx
neg edi
shr edx, 1
xor edx, edi
add edx, ecx
add edx, dword [esp + 0x14]
movzx eax, ax
shl edx, 0x10
or edx, eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], edx
mov dword [esi + 0x2c], edx
mov dword [esi + 0x30], edx
mov dword [esi + 0x44], edx
mov dword [esi + 0x48], edx
mov dword [esi + 0x4c], edx
mov dword [esi + 0x50], edx
mov dword [esi + 0x64], edx
mov dword [esi + 0x68], edx
mov dword [esi + 0x6c], edx
mov dword [esi + 0x70], edx
mov dword [esi + 0x84], edx
mov dword [esi + 0x88], edx
mov dword [esi + 0x8c], edx
mov dword [esi + 0x90], edx
inc dword [esp + 0x24]
add esi, 0xa0
add dword [esp + 0xc], 0x28
add dword [esp + 8], 2
dec dword [esp + 0x3c]
jne 0x1007d4aa
jmp 0x10079e45
cmp byte [esp + 0x34], 0xfe
jne 0x1007d77b
cmp byte [esp + 0x20], 0xfe
jne 0x1007d77b
cmp byte [esp + 0x14], 0xfe
je 0x1007d77b
movzx eax, word [esi + 0x20]
mov dword [esp + 0x34], eax
movzx eax, word [esi + 0x22]
mov dword [esp + 0x14], eax
jmp 0x1007d577
movsx eax, word [edi]
movsx ecx, word [esi + 4]
movsx edx, word [esi + 0x20]
mov ebx, ecx
cmp edx, ecx
cmovg ebx, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp ebx, edx
cmovg ebx, edx
mov dword [esp + 0x34], ebx
movsx eax, word [edi + 2]
movsx ecx, word [esi + 6]
movsx edx, word [esi + 0x22]
mov edi, ecx
cmp edx, ecx
cmovg edi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp edi, edx
cmovg edi, edx
jmp 0x1007d573
movzx eax, word [edi]
mov dword [esp + 0x34], eax
movzx eax, word [edi + 2]
jmp 0x1007d772
lea ecx, [ecx + 0x102de92d]
jmp 0x1007d7de
lea ecx, [ecx + 0x102ddc20]
movzx ecx, byte [ecx]
mov dword [esp + 0x2c], ecx
jmp 0x10079e75
xor eax, eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x69bc], eax
mov dword [ecx + 0x69c4], eax
mov dword [ecx + 0x69cc], eax
mov dword [ecx + 0x69d4], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
test cl, 2
jne 0x1007dbe3
xor eax, eax
test byte [esp + 0x24], 7
sete al
lea eax, [eax + eax*2 + 2]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
lea eax, [eax + 0x6c60]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
lea ecx, [eax + 0x10]
mov dword [esp + 0x50], ecx
lea ecx, [eax + 0x20]
mov dword [esp + 0x48], ecx
add eax, 0x30
mov dword [esp + 0x44], eax
mov esi, 0x23
mov dword [esp + 0x18], 0x200
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
bt eax, ecx
jae 0x1007da56
bt dword [esp + 0x24], 0x18
jb 0x1007da77
lea ebx, [esi - 3]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov edi, dword [esp + 0x1c]
shl edi, 6
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, edi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx eax, byte [esi + 0x102dd67d]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x40], eax
lea ebx, [esi - 2]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, edi
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 0x10]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx eax, byte [esi + 0x102dd67e]
mov ecx, dword [ebp + 0xc]
movzx ebx, byte [ecx + eax + 0x6988]
lea eax, [esi - 1]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov ecx, dword [esp + 8]
mov eax, dword [eax + ecx*4 + 0x2a6dc]
add eax, edi
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 0x20]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + edx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0xc]
push dword [esp + 0x20]
push dword [esp + 0x4c]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx eax, byte [esi + 0x102dd67f]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xb2280]
mov ecx, dword [esp + 8]
add edi, dword [eax + ecx*4 + 0x2a6dc]
mov eax, dword [esp + 0x18]
add eax, 0x30
mov ecx, dword [esp + 0x30]
shl eax, cl
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*2]
mov ecx, edx
mov edx, dword [ebp + 0xc]
push 0x10
push edi
push dword [esp + 0xc]
push esi
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov edx, dword [esp + 0x40]
or edx, ebx
or edx, dword [esp + 0x14]
movzx eax, byte [esi + 0x102dd680]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx + eax + 0x6988]
or eax, edx
jmp 0x1007dbb4
movzx eax, byte [esi + 0x102dd67d]
mov ecx, dword [ebp + 0xc]
xor edx, edx
mov word [ecx + eax + 0x6990], dx
mov word [ecx + eax + 0x6988], dx
jmp 0x1007dbbe
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
shl eax, cl
mov edx, dword [ebp + 0xc]
lea ebx, [edx + eax*2]
add ebx, 0x6c60
lea eax, [esi - 3]
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0xb2280]
mov edi, dword [esp + 0x1c]
shl edi, 8
mov eax, dword [esp + 8]
mov eax, dword [ecx + eax*4 + 0x2a6f4]
add eax, edi
mov ecx, edx
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x40]
push dword [esp + 0x20]
mov dword [esp + 0x24], ebx
push ebx
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea ebx, [esi - 2]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 8]
mov eax, dword [eax + edx*4 + 0x2a6f4]
add eax, edi
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x58]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea ebx, [esi - 1]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 8]
mov eax, dword [eax + edx*4 + 0x2a6f4]
add eax, edi
mov edx, dword [ebp + 0xc]
push 0x10
push eax
push dword [esp + 0x50]
push ebx
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xb2280]
mov edx, dword [esp + 8]
add edi, dword [eax + edx*4 + 0x2a6f4]
mov edx, dword [ebp + 0xc]
push 0x10
push edi
push dword [esp + 0x4c]
push esi
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
movzx ecx, byte [esi + 0x102dd67d]
mov edi, dword [ebp + 0xc]
mov dl, byte [edi + ecx + 0x6990]
add dl, byte [edi + ecx + 0x6989]
add dl, byte [edi + ecx + 0x6991]
xor eax, eax
add byte [edi + ecx + 0x6988], dl
setne al
mov ecx, dword [esp + 0x28]
shl eax, cl
or dword [esp + 0x34], eax
inc dword [esp + 0x28]
add esi, 4
add dword [esp + 0x18], 0x40
cmp esi, 0x33
jne 0x1007d87e
cmp dword [esp + 0x34], 0
jns 0x1007a0a3
jmp 0x1007a12f
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0x78e0]
pxor xmm0, xmm0
movdqa xmmword [edx + 0x78e0], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x78f0], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x7900], xmm0
pxor xmm0, xmm0
movdqa xmmword [edx + 0x7910], xmm0
mov ecx, dword [ebp + 8]
push 0x10
push 0
push dword [esp + 0xc]
push 0x32
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
test eax, eax
js 0x1007a12f
test byte [esp + 0x2c], 0xf
mov ecx, dword [ebp + 0xc]
je 0x1007a089
inc dword [esp + 4]
lea eax, [ecx + 0x6c60]
mov dword [esp + 0x2c], eax
mov edi, 0x23
mov ebx, 0x230
shl dword [esp + 0x1c], 6
lea eax, [edi - 3]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov esi, dword [ecx + 0x2a6e4]
add esi, dword [esp + 0x1c]
lea edx, [ebx - 0x30]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x2c]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push esi
push dword [esp + 0xc]
push dword [esp + 0x44]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea eax, [edi - 2]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov esi, dword [ecx + 0x2a6e4]
add esi, dword [esp + 0x1c]
lea edx, [ebx - 0x20]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x2c]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push esi
push dword [esp + 0xc]
push dword [esp + 0x44]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
lea eax, [edi - 1]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xb2280]
mov esi, dword [ecx + 0x2a6e4]
add esi, dword [esp + 0x1c]
lea edx, [ebx - 0x10]
mov ecx, dword [esp + 0x30]
shl edx, cl
mov eax, dword [esp + 0x2c]
lea eax, [eax + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push esi
push dword [esp + 0xc]
push dword [esp + 0x44]
push eax
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb2280]
mov eax, dword [eax + 0x2a6e4]
add eax, dword [esp + 0x1c]
mov edx, ebx
mov ecx, dword [esp + 0x30]
shl edx, cl
mov ecx, dword [esp + 0x2c]
lea esi, [ecx + edx*2]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
push 0xf
push eax
push dword [esp + 0xc]
push edi
push esi
push dword [esp + 0x24]
call fcn.1007fae0
add esp, 0x18
test eax, eax
js 0x1007a12f
add edi, 4
add ebx, 0x40
cmp edi, 0x33
jne 0x1007dc70
jmp 0x1007a0a3
test edx, edx
je 0x1007e648
mov dword [esp + 0x28], 0x102dd6b4
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
jmp 0x1007d17f
cmp dword [esp + 0x60], 0
je 0x10079e45
mov eax, dword [ebp + 0xc]
lea edx, [eax + 0x6b64]
xor eax, eax
xor ecx, ecx
dec ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x1c]
mov ecx, eax
shr ebx, cl
mov dword [esp + 8], 0xff
bt ebx, 0xc
mov ecx, 0xff
jae 0x1007dec3
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax*2 + 0x5848]
mov cl, byte [ecx + 0x5224]
shl edi, cl
cmp edi, 1
je 0x1007de76
cmp edi, 2
jne 0x1007de7a
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x10]
mov esi, dword [esi]
mov dword [esp + 0x14], esi
mov edi, ecx
shr edi, 3
xor ebx, ebx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 0x14]
movzx esi, byte [esi + edi]
setl bl
add ebx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], ebx
xor ecx, ecx
mov ebx, esi
test bl, 0x80
sete cl
jmp 0x1007dec3
xor ecx, ecx
jmp 0x1007dec3
mov ecx, dword [esp + 4]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov esi, ebx
shr esi, 3
mov esi, dword [ecx + esi]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov ebx, dword [esp + 0x18]
mov ebx, dword [ebx]
cmp ebx, ecx
cmovb ecx, ebx
mov ebx, dword [esp + 4]
mov dword [ebx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
cmp edi, ecx
jbe 0x1007a12f
imul ecx, ecx, 0x1010101
mov dword [edx - 0x18], ecx
mov dword [edx - 0x10], ecx
mov ecx, eax
inc cl
mov ebx, dword [esp + 0x1c]
shr ebx, cl
bt ebx, 0xc
jae 0x1007df9b
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + eax*2 + 0x5848]
mov cl, byte [ecx + 0x5224]
shl edi, cl
cmp edi, 1
je 0x1007df44
cmp edi, 2
jne 0x1007df4e
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov esi, dword [esp + 0x10]
mov esi, dword [esi]
mov dword [esp + 8], esi
mov edi, ecx
shr edi, 3
xor ebx, ebx
mov esi, dword [esp + 0x18]
cmp ecx, dword [esi]
mov esi, dword [esp + 8]
movzx esi, byte [esi + edi]
setl bl
add ebx, ecx
and cl, 7
shl esi, cl
mov ecx, dword [esp + 4]
mov dword [ecx], ebx
xor ecx, ecx
mov ebx, esi
test bl, 0x80
sete cl
mov dword [esp + 8], ecx
jmp 0x1007df9b
mov dword [esp + 8], 0
jmp 0x1007df9b
mov ecx, dword [esp + 4]
mov ebx, dword [ecx]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov esi, ebx
shr esi, 3
mov esi, dword [ecx + esi]
bswap esi
mov ecx, ebx
and cl, 7
shl esi, cl
shr esi, 0x17
movzx ecx, byte [esi + 0x102b0dc9]
add ecx, ebx
mov ebx, dword [esp + 0x18]
mov ebx, dword [ebx]
cmp ebx, ecx
cmovb ecx, ebx
mov ebx, dword [esp + 4]
mov dword [ebx], ecx
movzx ecx, byte [esi + 0x102b0fc9]
mov dword [esp + 8], ecx
cmp edi, ecx
jbe 0x1007a12f
imul ecx, dword [esp + 8], 0x1010101
mov dword [edx - 8], ecx
mov dword [edx], ecx
add edx, 0x28
add eax, 2
dec dword [esp + 0x20]
jne 0x1007ddfa
cmp dword [esp + 0x60], 0
je 0x10079e45
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x4c]
lea ecx, [eax + eax]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
lea esi, [eax + edx*8]
add esi, 0x6b5b
mov dword [esp + 0x3c], esi
mov dword [esp + 0x64], edx
shl edx, 5
mov esi, 0x3000
mov dword [esp + 0x34], ecx
shl esi, cl
mov dword [esp + 0x58], esi
lea ecx, [eax + edx]
add ecx, 0x6a6c
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], edx
lea eax, [eax + edx + 0x6a28]
mov dword [esp + 0x54], eax
mov al, 1
mov dword [esp + 0xc], eax
xor eax, eax
mov ecx, eax
or ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
shr edx, cl
mov esi, eax
shl esi, 4
or esi, 0xc
bt edx, 0xc
jae 0x1007e079
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x64]
lea edi, [ecx + edx*8]
movsx ecx, byte [esi + edi + 0x6b40]
mov dword [esp + 8], ecx
test byte [esp + 0xc], 1
je 0x1007e080
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 8]
cmp byte [ecx - 0x17], dl
jne 0x1007e0f8
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax - 0x5c]
mov dword [esp + 0x24], ecx
movzx eax, word [eax - 0x5a]
jmp 0x1007e09b
xor edx, edx
jmp 0x1007e354
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 8]
cmp byte [ecx], dl
jne 0x1007e0f8
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax]
mov dword [esp + 0x24], ecx
movzx eax, word [eax + 2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov ecx, eax
shr ecx, 3
mov dword [esp + 8], edx
mov ebx, dword [edx + ecx]
bswap ebx
mov ecx, eax
and cl, 7
shl ebx, cl
cmp ebx, 0x8000000
jb 0x1007e264
shr ebx, 0x17
movzx ecx, byte [ebx + 0x102b0dc9]
add eax, ecx
mov edx, edi
cmp edi, eax
jb 0x1007e0e6
mov edx, eax
mov eax, dword [esp + 4]
mov dword [eax], edx
movsx eax, byte [ebx + 0x102b11c9]
jmp 0x1007e2b4
mov ah, byte [eax*8 + 0x102dd680]
movzx ecx, ah
mov al, byte [ecx + edi + 0x6b38]
mov byte [esp + 0x44], al
mov al, byte [ecx + edi + 0x6b3c]
mov dl, byte [ecx + edi + 0x6b3f]
mov byte [esp + 0x50], dl
mov edx, dword [ebp + 0xc]
mov ebx, dword [esp + 0x20]
add edx, ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], ecx
and ecx, 7
cmp ecx, 4
jne 0x1007e3b0
cmp ah, 0x14
jb 0x1007e3b0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xb1b58], 0
je 0x1007e3b0
cmp al, 0xfe
jne 0x1007e3b0
mov eax, dword [esp + 0x3c]
cmp byte [eax - 0x10], 0xfe
je 0x1007e3bf
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb1304]
mov ebx, dword [eax + 0x34]
mov eax, dword [esp + 0x54]
mov dword [eax], 0
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
mov eax, dword [eax + 0x51c8]
je 0x1007e53a
test al, 0x80
jne 0x1007e3bf
xor eax, eax
cmp byte [esp + 0x14], 0x24
setae al
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + eax*4 + 0x51b4]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], eax
xor eax, eax
dec eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], ecx
test dword [ebx + ecx*4], eax
je 0x1007e3e0
mov eax, dword [esp + 0x14]
shr eax, 2
mov ecx, eax
and ecx, 3
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0xb1304]
mov edi, ebx
mov ebx, dword [esp + 0x4c]
mov edx, dword [edx + ebx*4 + 0x28]
mov ebx, edi
mov edi, dword [edi + 0xb1b48]
mov dword [esp + 0x40], edi
imul ecx, dword [ebx + 0xb1b50]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
add ecx, dword [ebx + edi*4]
movzx ebx, word [edx + ecx*4 + 0xc]
mov edi, dword [esp + 0x54]
mov word [edi], bx
movzx ecx, word [edx + ecx*4 + 0xe]
mov edx, ecx
shr edx, 0xf
add edx, ecx
movsx ecx, dx
shr ecx, 1
mov edx, dword [esp + 0x5c]
mov word [edx - 0x42], cx
and eax, 2
mov ecx, dword [esp + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xb1304]
mov edx, dword [esp + 0x4c]
mov ecx, dword [ecx + edx*4 + 0x48]
movsx eax, byte [ecx + eax + 1]
add eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edi
jmp 0x1007e3e0
or ebx, 1
bsr edx, ebx
mov ecx, edx
xor ecx, 0x1f
add ecx, eax
mov ebx, edi
cmp edi, ecx
jb 0x1007e279
mov ebx, ecx
mov eax, ebx
shr eax, 3
mov ecx, dword [esp + 8]
mov eax, dword [ecx + eax]
bswap eax
mov ecx, ebx
and cl, 7
shl eax, cl
mov ecx, edx
shr eax, cl
sub ebx, edx
add ebx, 0x20
mov edx, edi
cmp edi, ebx
jb 0x1007e29f
mov edx, ebx
mov ecx, dword [esp + 4]
mov dword [ecx], edx
mov ecx, eax
and ecx, 1
mov ebx, ecx
neg ebx
shr eax, 1
xor eax, ebx
add eax, ecx
add eax, dword [esp + 0x24]
mov ecx, edx
shr ecx, 3
mov ebx, dword [esp + 8]
mov ebx, dword [ebx + ecx]
bswap ebx
mov ecx, edx
and cl, 7
shl ebx, cl
cmp ebx, 0x8000000
jb 0x1007e2f6
shr ebx, 0x17
movzx ecx, byte [ebx + 0x102b0dc9]
add edx, ecx
cmp edi, edx
jb 0x1007e2e7
mov edi, edx
mov ecx, dword [esp + 4]
mov dword [ecx], edi
movsx edx, byte [ebx + 0x102b11c9]
jmp 0x1007e348
or ebx, 1
bsr ecx, ebx
mov dword [esp + 0x24], ecx
xor ecx, 0x1f
add ecx, edx
mov ebx, edi
cmp edi, ecx
jb 0x1007e30d
mov ebx, ecx
mov ecx, ebx
shr ecx, 3
mov edx, dword [esp + 8]
mov edx, dword [edx + ecx]
bswap edx
mov ecx, ebx
and cl, 7
shl edx, cl
mov ecx, dword [esp + 0x24]
shr edx, cl
sub ebx, ecx
add ebx, 0x20
cmp edi, ebx
jb 0x1007e333
mov edi, ebx
mov ecx, dword [esp + 4]
mov dword [ecx], edi
mov ecx, edx
and ecx, 1
mov edi, ecx
neg edi
shr edx, 1
xor edx, edi
add edx, ecx
add edx, dword [esp + 0x14]
movzx eax, ax
shl edx, 0x10
or edx, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
add eax, ecx
mov dword [eax + esi*4 + 0x6a00], edx
mov dword [eax + esi*4 + 0x6a04], edx
mov dword [eax + esi*4 + 0x6a08], edx
mov dword [eax + esi*4 + 0x6a0c], edx
mov dword [eax + esi*4 + 0x6a20], edx
mov dword [eax + esi*4 + 0x6a24], edx
mov dword [eax + esi*4 + 0x6a28], edx
mov dword [eax + esi*4 + 0x6a2c], edx
xor eax, eax
inc eax
test byte [esp + 0xc], 1
mov dword [esp + 0xc], 0
jne 0x1007e01f
jmp 0x1007e61c
movsx eax, al
mov dword [esp + 0x40], eax
cmp al, 0xfe
jne 0x1007e4a2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + eax*4]
add ecx, 0x69dc
mov dword [esp + 0x48], ecx
movsx eax, byte [eax + edi + 0x6b37]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
lea edi, [ecx + eax*4]
add edi, 0x69fc
xor ebx, ebx
mov edx, dword [esp + 8]
cmp dword [esp + 0x40], edx
sete bl
xor eax, eax
cmp byte [esp + 0x44], dl
sete al
xor ecx, ecx
cmp byte [esp + 0x50], dl
sete cl
add ecx, eax
add ecx, ebx
cmp ecx, 2
jb 0x1007e474
mov eax, dword [esp + 0x48]
movsx eax, word [eax]
mov dword [esp + 8], eax
movsx ecx, word [edi - 0x1c]
movsx eax, word [edi]
mov edx, ecx
mov ebx, dword [esp + 8]
cmp eax, ecx
cmovg edx, eax
cmovg eax, ecx
cmp eax, ebx
cmovl eax, ebx
cmp edx, eax
cmovg edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x48]
movsx eax, word [eax + 2]
movsx ecx, word [edi - 0x1a]
movsx edx, word [edi + 2]
mov edi, ecx
cmp edx, ecx
cmovg edi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp edi, edx
cmovg edi, edx
mov dword [esp + 0x14], edi
jmp 0x1007e09f
cmp ecx, 1
jne 0x1007e4be
mov al, byte [esp + 0x50]
cmp al, byte [esp + 8]
je 0x1007e4d3
mov al, byte [esp + 0x44]
cmp al, byte [esp + 8]
jne 0x1007e608
movzx eax, word [edi - 0x1c]
mov dword [esp + 0x24], eax
movzx eax, word [edi - 0x1a]
jmp 0x1007e09b
mov eax, dword [esp + 0x14]
add eax, 0xfffffffc
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax*4]
add eax, 0x6a00
mov dword [esp + 0x48], eax
jmp 0x1007e3e0
cmp byte [esp + 0x44], 0xfe
jne 0x1007e4e3
cmp dword [esp + 0x40], 0xfffffffe
jne 0x1007e4e3
cmp byte [esp + 0x50], 0xfe
je 0x1007e4e3
movzx eax, word [edi]
mov dword [esp + 0x24], eax
movzx eax, word [edi + 2]
jmp 0x1007e09b
mov eax, dword [esp + 0x48]
movsx eax, word [eax]
mov dword [esp + 8], eax
movsx ecx, word [edi - 0x1c]
movsx eax, word [edi]
mov edx, ecx
mov ebx, dword [esp + 8]
cmp eax, ecx
cmovg edx, eax
cmovg eax, ecx
cmp eax, ebx
cmovl eax, ebx
cmp edx, eax
cmovg edx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x48]
movsx eax, word [eax + 2]
movsx ecx, word [edi - 0x1a]
movsx edx, word [edi + 2]
mov edi, ecx
cmp edx, ecx
cmovg edi, edx
cmovg edx, ecx
cmp edx, eax
cmovl edx, eax
cmp edi, edx
cmovg edi, edx
jmp 0x1007e46b
test al, 0x80
je 0x1007e3bf
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xb1dd8]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx + 0x51b4]
add edi, eax
mov ecx, dword [ecx + 0x51fc]
and ecx, 1
mov edx, dword [esp + 0x14]
shr edx, 5
lea ecx, [edx + ecx*2]
mov dword [esp + 0x68], ecx
shr ecx, 2
imul ecx, eax
add ecx, edi
mov eax, dword [esp + 0x54]
mov dword [esp + 0x48], eax
xor eax, eax
dec eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
test dword [ebx + ecx*4], eax
je 0x1007e3e0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xb1304]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + ecx*4 + 0x28]
mov dword [esp + 0x40], eax
mov ecx, dword [ebx + 0xb1b48]
mov edx, dword [ebx + 0xb1b50]
mov ebx, dword [esp + 0x68]
imul edx, ebx
add edx, dword [ecx + edi*4]
movzx ecx, word [eax + edx*4 + 0xc]
mov eax, dword [esp + 0x54]
mov word [eax], cx
mov eax, dword [esp + 0x40]
movzx eax, word [eax + edx*4 + 0xe]
add eax, eax
mov ecx, dword [esp + 0x5c]
mov word [ecx - 0x42], ax
and ebx, 0xfffffffe
lea eax, [ebx + edi*4]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xb1304]
mov edx, dword [esp + 0x4c]
mov ecx, dword [ecx + edx*4 + 0x48]
mov al, byte [ecx + eax + 1]
sar al, 1
movsx eax, al
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x54]
jmp 0x1007e4b5
mov ecx, dword [esp + 0x48]
movzx eax, word [ecx]
mov dword [esp + 0x24], eax
movzx eax, word [ecx + 2]
jmp 0x1007e09b
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x60]
jne 0x1007dfcb
jmp 0x10079e45
test edx, edx
je 0x1007e648
mov dword [esp + 0x30], 0x102dd6b4
xor ebx, ebx
dec ebx
jmp 0x1007d21d
pxor xmm0, xmm0
mov eax, dword [ebp + 0xc]
movdqu xmmword [eax + 0x6a30], xmm0
movdqu xmmword [eax + 0x6a50], xmm0
movdqu xmmword [eax + 0x6a70], xmm0
movdqu xmmword [eax + 0x6a90], xmm0
jmp 0x1007a258
test dl, 0x80
je 0x1007d16f
sar dword [esp + 0xc], 1
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov dword [esp + 0x80], edx
shr edx, 0xf
and edx, 0xfffe
jmp 0x1007d160
mov esi, 0x102dd6b4
test edx, edx
je 0x1007e857
xor edx, edx
test ebx, ebx
sete dl
xor ecx, ecx
cmp dword [esp + 0xc], 0
sete cl
cmp dword [esp + 0x18], 1
adc ecx, edx
cmp ecx, 2
jb 0x1007e78f
mov dword [esp + 0x10], esi
movsx eax, word [esi]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x30]
movsx edx, word [ebx]
mov edi, dword [esp + 0x28]
movsx esi, word [edi]
mov ecx, edx
mov eax, dword [esp + 4]
cmp esi, edx
cmovg ecx, esi
cmovg esi, edx
cmp esi, eax
cmovl esi, eax
cmp ecx, esi
cmovg ecx, esi
mov eax, dword [esp + 0x10]
movsx edx, word [eax + 2]
movsx esi, word [ebx + 2]
movsx edi, word [edi + 2]
mov eax, esi
cmp edi, esi
cmovg eax, edi
cmovg edi, esi
cmp edi, edx
cmovl edi, edx
cmp eax, edi
cmovg eax, edi
movzx ecx, cx
shl eax, 0x10
or eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 0x6a30], eax
mov dword [ecx + 0x6a34], eax
mov dword [ecx + 0x6a38], eax
mov dword [ecx + 0x6a3c], eax
mov dword [ecx + 0x6a50], eax
mov dword [ecx + 0x6a54], eax
mov dword [ecx + 0x6a58], eax
mov dword [ecx + 0x6a5c], eax
mov dword [ecx + 0x6a70], eax
mov dword [ecx + 0x6a74], eax
mov dword [ecx + 0x6a78], eax
mov dword [ecx + 0x6a7c], eax
mov dword [ecx + 0x6a90], eax
mov dword [ecx + 0x6a94], eax
mov dword [ecx + 0x6a98], eax
mov dword [ecx + 0x6a9c], eax
jmp 0x1007a258
cmp ecx, 1
jne 0x1007e7b3
cmp dword [esp + 0xc], 0
je 0x1007e8e8
test ebx, ebx
je 0x1007e8f8
movzx ecx, word [esi]
movzx eax, word [esi + 2]
jmp 0x1007e71f
mov dword [esp + 0x10], esi
movsx eax, word [esi]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x30]
movsx edx, word [ebx]
mov edi, dword [esp + 0x28]
movsx esi, word [edi]
mov ecx, edx
mov eax, dword [esp + 4]
cmp esi, edx
cmovg ecx, esi
cmovg esi, edx
cmp esi, eax
cmovl esi, eax
cmp ecx, esi
cmovg ecx, esi
mov eax, dword [esp + 0x10]
movsx edx, word [eax + 2]
movsx esi, word [ebx + 2]
movsx edi, word [edi + 2]
mov eax, esi
cmp edi, esi
cmovg eax, edi
cmovg edi, esi
cmp edi, edx
cmovl edi, edx
cmp eax, edi
cmovg eax, edi
jmp 0x1007e71f
test dl, 0x80
je 0x1007d20f
sar ebx, 1
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
mov dword [esp + 0x84], edx
shr edx, 0xf
and edx, 0xfffe
jmp 0x1007d200
test dl, 0x80
je 0x1007e6a9
sar dword [esp + 0x18], 1
mov ecx, dword [esi]
mov dword [esp + 0x88], ecx
shr ecx, 0xf
and ecx, 0xfffe
jmp 0x1007d2aa
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x51bc]
mov dword [esp + 8], eax
test eax, 0x3000
je 0x1007e6a9
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x51d4]
mov esi, dword [esp + 0x38]
lea ecx, [esi + esi]
and ecx, eax
add ecx, esi
mov edx, dword [edx + 0x51a8]
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0xb1b48]
add ecx, dword [esi + edx*4]
and eax, 2
lea eax, [eax + edx*4]
mov edx, dword [esp + 4]
movsx eax, byte [edx + eax + 1]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
lea esi, [eax + ecx*4]
add esi, 0xc
cmp dword [edi + 0xb1b58], 0
je 0x1007e6a9
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x5220], 0
je 0x1007e8fe
test byte [esp + 8], 0x80
je 0x1007d288
jmp 0x1007e6a9
mov dword [esp + 0x28], 0
jmp 0x1007c920
mov eax, dword [esp + 0x28]
movzx ecx, word [eax]
movzx eax, word [eax + 2]
jmp 0x1007e71f
mov eax, dword [esp + 0x30]
jmp 0x1007e8ec
test byte [esp + 8], 0x80
je 0x1007e6a9
jmp 0x1007e83c