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

Disassembly:
sub esp, 0x88
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x3c], edx
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x54], edx
mov edx, dword [ecx + 8]
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x74], edx
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 4], ecx
mov cl, byte [eax + 0xc]
mov byte [esp + 3], cl
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xa0]
push ebx
push ebp
mov ebp, dword [eax + 0x10]
add ecx, 3
push esi
mov esi, dword [eax + 4]
sar ecx, 2
cmp dword [esp + 0xc8], 0
push edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x94], edx
mov dword [esp + 0x38], 0
jle 0x10020be8
fld dword [esp + 0xa8]
fld dword [esp + 0xa4]
jmp 0x1001e7b0
mov ecx, dword [esp + 0x90]
cmp ecx, 8
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x4c]
jl 0x1001e7cf
mov eax, 8
mov dword [esp + 0x74], eax
jmp 0x1001e7e1
mov eax, ecx
and eax, 0x80000007
jns 0x1001e7dd
dec eax
or eax, 0xfffffff8
inc eax
mov dword [esp + 0x74], eax
sub ecx, eax
test eax, eax
mov dword [esp + 0x90], ecx
je 0x10020c1b
cmp eax, 1
jbe 0x1001e801
mov dword [esp + 0x48], 4
jmp 0x1001e815
mov eax, edi
shl eax, 5
mov ecx, eax
mov eax, dword [esp + 0xb0]
sub eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [ebx + edi*4]
mov dword [esp + 0x28], eax
lea ecx, [edi + edx]
lea eax, [ebx + ecx*4]
mov dword [esp + 0x78], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
xor eax, eax
cmp dword [esp + 0xac], eax
mov dword [esp + 0x50], eax
jbe 0x1001f3f7
mov ecx, edi
shl ecx, 5
mov dword [esp + 0x68], ecx
imul ecx, dword [esp + 0xc4]
mov dword [esp + 0x7c], ecx
jmp 0x1001e865
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
lea ecx, [eax + 2]
imul ecx, edx
add ecx, edi
add ecx, ecx
add ecx, ecx
mov ebx, dword [ecx + ebx]
mov dword [esp + 0x3c], ebx
lea ebx, [eax + 1]
mov dword [esp + 0x80], ebx
imul ebx, edx
mov edx, dword [esp + 0x84]
add ebx, edi
add ebx, ebx
add ebx, ebx
mov edx, dword [ebx + edx]
shr edx, 0x1c
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x7c]
add edx, eax
test edi, edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0x12], 0
jne 0x1001e903
mov edx, dword [0x1009ba30]
mov eax, dword [esp + 0x58]
mov ecx, dword [0x1009bab0]
mov edi, dword [esp + 0x28]
and eax, edx
shr eax, cl
and edx, edi
shr edx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edx
mov edx, dword [esp + 0x3c]
and edx, dword [0x1009ba30]
add eax, eax
shr edx, cl
jmp 0x1001e95d
imul eax, dword [esp + 0xcc]
mov edx, dword [esp + 0x4c]
mov ecx, dword [ecx + edx - 4]
add eax, edi
mov eax, dword [edx + eax*4 - 4]
mov edi, dword [ebx + edx - 4]
and eax, 1
add eax, eax
add eax, eax
add eax, eax
and edi, 1
or eax, edi
mov edi, dword [esp + 0x28]
add eax, eax
and ecx, 1
add eax, eax
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x3c]
shr ecx, 3
mov edx, edi
and edx, 0xc7ffffff
or edx, ecx
mov ecx, dword [esp + 0x58]
shr edx, 3
and ecx, 0xc0ffffff
or edx, ecx
shr edx, 0x18
add eax, eax
add eax, eax
or eax, edx
test eax, eax
je 0x1001e96c
mov byte [esp + 0x12], 1
mov eax, dword [0x1009ba34]
mov edx, dword [esp + 0x58]
mov ecx, dword [0x1009bab4]
and edx, eax
shr edx, cl
and eax, edi
shr eax, cl
add edx, edx
add edx, edx
add edx, edx
or edx, eax
mov eax, dword [esp + 0x3c]
and eax, dword [0x1009ba34]
add edx, edx
add edx, edx
shr eax, cl
add edx, edx
or edx, eax
je 0x1001e9a6
mov byte [esp + 0x12], 1
mov eax, dword [0x1009ba38]
mov edx, dword [esp + 0x58]
mov ecx, dword [0x1009bab8]
and edx, eax
shr edx, cl
and eax, edi
shr eax, cl
add edx, edx
add edx, edx
add edx, edx
or edx, eax
mov eax, dword [esp + 0x3c]
and eax, dword [0x1009ba38]
add edx, edx
add edx, edx
shr eax, cl
add edx, edx
or edx, eax
je 0x1001e9e0
mov byte [esp + 0x12], 1
mov eax, dword [0x1009ba3c]
mov edx, dword [esp + 0x58]
mov ecx, dword [0x1009babc]
and edx, eax
shr edx, cl
mov ecx, eax
and ecx, edi
mov edi, ecx
mov ecx, dword [0x1009babc]
add edx, edx
add edx, edx
shr edi, cl
add edx, edx
or edx, edi
mov edi, dword [esp + 0x3c]
add edx, edx
and edi, eax
add edx, edx
shr edi, cl
add edx, edx
or edx, edi
jne 0x1001eef5
cmp byte [esp + 0x12], dl
jne 0x1001eef5
cmp dword [esp + 0x48], 4
jne 0x1001eef5
cmp dword [esp + 0x40], edx
jne 0x1001eef5
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
movzx eax, byte [ecx + 0x11]
mov eax, dword [eax*4 + 0x1008a1b8]
add ecx, 0x11
mov edx, eax
mov ebx, esi
shr edx, 0x10
shr ebx, 0x10
add edi, 0x11
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1001eabf
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001ea90
movzx edi, byte [edi]
mov edx, dword [esp + 0x1c]
jmp 0x1001eb54
cmp ebx, edx
jb 0x1001ea9c
movzx edi, byte [edi]
shr eax, 8
jmp 0x1001eaf3
mov bl, byte [edi]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
shr eax, 1
mov byte [edi], dl
mov edi, dword [esp + 0x18]
and al, 0x7f
jmp 0x1001eaf3
lea ebx, [edx + edx]
cmp dword [esp + 0x14], ebx
jae 0x1001ead0
movzx edi, byte [edi]
shr eax, 8
jmp 0x1001eaf1
mov bl, byte [edi]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor dl, bl
mov byte [edi], dl
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov ebx, edx
mov edx, dword [esp + 0x1c]
mov byte [ecx], al
mov ecx, dword [esp + 0x44]
test ebp, ebp
jne 0x1001eb3d
cmp edx, ecx
je 0x1001eb32
mov al, byte [edx]
add edx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001eb1f
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001eb38
cmp al, 0x8f
ja 0x1001eb32
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001eb3d
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001eafd
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
test edi, edi
je 0x1001f3df
movzx ecx, byte [0x1009bb46]
mov eax, dword [ecx*4 + 0x1008a1b8]
mov edi, eax
mov ecx, esi
shr edi, 0x10
shr ecx, 0x10
cmp ecx, edi
jb 0x1001ebcc
mov ecx, eax
and ecx, 0xffff0000
sub ebx, edi
sub esi, ecx
test ebx, 0x8000
mov cl, byte [0x1009ff34]
mov dword [esp + 0x14], ebx
je 0x1001eb9e
movzx eax, cl
jmp 0x1001ec61
cmp ebx, edi
movzx edi, cl
jb 0x1001ebae
mov dword [esp + 0x18], edi
shr eax, 8
jmp 0x1001ebff
mov bl, al
and bl, 1
xor cl, bl
mov ebx, dword [esp + 0x14]
xor edi, 1
shr eax, 1
mov dword [esp + 0x18], edi
mov byte [0x1009ff34], cl
and al, 0x7f
jmp 0x1001ebff
lea ecx, [edi + edi]
cmp ebx, ecx
mov cl, byte [0x1009ff34]
movzx ebx, cl
jae 0x1001ebe5
mov dword [esp + 0x18], ebx
shr eax, 8
jmp 0x1001ebfd
xor ebx, 1
mov dword [esp + 0x18], ebx
mov bl, al
and bl, 1
xor cl, bl
shr eax, 1
mov byte [0x1009ff34], cl
and al, 0x7f
mov ebx, edi
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001ec46
cmp edx, dword [esp + 0x44]
je 0x1001ec3b
mov al, byte [edx]
add edx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001ec28
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001ec41
cmp al, 0x8f
ja 0x1001ec3b
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001ec46
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001ec04
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
add eax, eax
mov dword [esp + 0x24], eax
movzx eax, byte [0x1009bb46]
mov eax, dword [eax*4 + 0x1008a1b8]
mov edi, eax
mov ebx, esi
shr edi, 0x10
shr ebx, 0x10
cmp ebx, edi
jb 0x1001ecd4
sub dword [esp + 0x14], edi
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001eca5
movzx ecx, cl
jmp 0x1001ed6e
cmp ebx, edi
jb 0x1001ecb1
movzx ecx, cl
shr eax, 8
jmp 0x1001ed10
mov bl, al
movzx edi, cl
and bl, 1
xor cl, bl
mov ebx, dword [esp + 0x14]
xor edi, 1
shr eax, 1
mov byte [0x1009ff34], cl
mov dword [esp + 0x18], edi
and al, 0x7f
mov ecx, edi
jmp 0x1001ed10
lea ecx, [edi + edi]
cmp dword [esp + 0x14], ecx
jae 0x1001ece9
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001ed0e
mov bl, byte [0x1009ff34]
movzx ecx, bl
xor ecx, 1
mov dword [esp + 0x18], ecx
mov cl, al
and cl, 1
xor bl, cl
mov ecx, dword [esp + 0x18]
shr eax, 1
mov byte [0x1009ff34], bl
and al, 0x7f
mov ebx, edi
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001ed57
cmp edx, dword [esp + 0x44]
je 0x1001ed4c
mov al, byte [edx]
add edx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001ed39
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001ed52
cmp al, 0x8f
ja 0x1001ed4c
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001ed57
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001ed15
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x24]
or edx, ecx
mov ecx, edx
imul ecx, dword [esp + 0xc4]
add dword [esp + 0x34], ecx
mov ecx, edx
mov eax, 0x80000000
shr eax, cl
mov dword [esp + 0x24], edx
mov ebx, esi
shr ebx, 0x10
or dword [esp + 0x28], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
movzx edx, byte [ecx + 9]
mov edi, dword [eax + 4]
mov eax, dword [edx*4 + 0x1008a1b8]
add ecx, 9
mov edx, eax
shr edx, 0x10
add edi, 9
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1001ee1a
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001ede8
cmp byte [edi], 0
setne dl
jmp 0x1001eeaf
cmp ebx, edx
jb 0x1001edf7
cmp byte [edi], 0
setne dl
shr eax, 8
jmp 0x1001ee4e
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, dl
mov dl, byte [esp + 0x12]
shr eax, 1
mov byte [edi], bl
mov ebx, dword [esp + 0x14]
and al, 0x7f
jmp 0x1001ee4e
add edx, edx
cmp dword [esp + 0x14], edx
jae 0x1001ee2d
cmp byte [edi], 0
setne dl
shr eax, 8
jmp 0x1001ee4a
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, dl
mov dl, byte [esp + 0x12]
shr eax, 1
mov byte [edi], bl
and al, 0x7f
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x1001ee98
cmp ecx, edi
je 0x1001ee8d
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001ee7a
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001ee93
cmp al, 0x8f
ja 0x1001ee8d
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001ee98
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001ee58
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x2c]
test dl, dl
mov edx, dword [esp + 0xbc]
je 0x1001eee0
mov eax, dword [esp + 0x64]
fld st(0)
mov ecx, dword [esp + 0x5c]
fchs
or dword [ebx + eax], ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
mov eax, dword [esp + 0x34]
fst dword [edx + eax*4]
fsub st(2)
jmp 0x1001eeeb
mov eax, dword [esp + 0x34]
fst dword [edx + eax*4]
fld st(0)
fadd st(2)
mov ecx, dword [esp + 0xc0]
fstp dword [ecx + eax*4]
mov edx, dword [esp + 0x4c]
mov eax, dword [ebx + edx]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x68]
shr eax, 0x1c
or dword [esp + 0x40], eax
lea eax, [edx + ecx]
imul eax, dword [esp + 0xc4]
add eax, dword [esp + 0x50]
add ecx, 1
cmp ecx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
jae 0x1001f3d4
mov edx, dword [esp + 0xc0]
lea edi, [edx + eax*4]
mov eax, dword [esp + 0xbc]
sub eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc4]
add eax, eax
add eax, eax
add edi, eax
mov eax, dword [esp + 0x40]
cmp byte [ecx + eax*4 + 0x1009bb48], 0
mov dword [esp + 0x5c], edi
jne 0x1001f3c3
test ecx, ecx
mov edx, dword [ecx*4 + 0x1009ba30]
jne 0x1001efe0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x1001efe0
mov edx, dword [esp + 0x50]
imul edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x4c]
add edx, eax
mov eax, dword [ecx + edx*4 - 4]
mov edx, dword [ebx + ecx - 4]
and eax, 1
add eax, eax
add eax, eax
and edx, 1
add eax, eax
or eax, edx
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + ecx - 4]
mov edx, dword [esp + 0x28]
add eax, eax
add eax, eax
and ecx, 1
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x3c]
and edx, 0xc7ffffff
shr ecx, 3
or edx, ecx
mov ecx, dword [esp + 0x58]
shr edx, 3
and ecx, 0xc0ffffff
add eax, eax
or edx, ecx
add eax, eax
shr edx, 0x18
or eax, edx
jmp 0x1001f02a
mov ecx, dword [ecx*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x58]
mov ebx, edx
and ebx, dword [esp + 0x28]
and edx, dword [esp + 0x3c]
shr eax, cl
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx*4 + 0x1009bab0]
shr ebx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx*4 + 0x1009bab0]
add eax, eax
add eax, eax
shr edx, cl
add eax, eax
or eax, edx
cmp ebx, 0x1f
jne 0x1001f02a
add eax, eax
mov edx, dword [esp + 0xb4]
mov ecx, dword [edx + eax*4]
mov ebx, dword [esp + 0x60]
mov edx, dword [ebx]
mov ebx, dword [ebx + 4]
add edx, ecx
add ebx, ecx
movzx ecx, byte [edx]
mov ecx, dword [ecx*4 + 0x1008a1b8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ebx
mov ebx, ecx
mov edx, esi
shr ebx, 0x10
shr edx, 0x10
cmp edx, ebx
mov dword [esp + 0x20], ebx
jb 0x1001f0d3
sub dword [esp + 0x14], ebx
mov edx, ecx
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001f092
mov ecx, dword [esp + 0x30]
cmp byte [ecx], 0
mov ebx, dword [esp + 0x2c]
setne cl
jmp 0x1001f183
cmp edx, ebx
mov edx, dword [esp + 0x30]
jb 0x1001f0ad
cmp byte [edx], 0
mov edx, dword [esp + 0x24]
setne byte [esp + 0x12]
shr ecx, 8
mov byte [edx], cl
jmp 0x1001f119
mov dl, byte [edx]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, cl
and bl, 1
xor bl, dl
mov edx, dword [esp + 0x30]
mov byte [edx], bl
mov edx, dword [esp + 0x24]
shr ecx, 1
and cl, 0x7f
mov byte [edx], cl
jmp 0x1001f119
lea edx, [ebx + ebx]
cmp dword [esp + 0x14], edx
mov edx, dword [esp + 0x30]
jae 0x1001f0ed
cmp byte [edx], 0
setne byte [esp + 0x12]
shr ecx, 8
jmp 0x1001f10b
mov dl, byte [edx]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, cl
and bl, 1
xor bl, dl
mov edx, dword [esp + 0x30]
shr ecx, 1
mov byte [edx], bl
and cl, 0x7f
mov edx, dword [esp + 0x24]
mov byte [edx], cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
test ebp, ebp
jne 0x1001f164
cmp edx, dword [esp + 0x44]
je 0x1001f159
mov cl, byte [edx]
add edx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], cl
je 0x1001f145
movzx ecx, cl
shl ecx, 8
add esi, ecx
jmp 0x1001f15f
cmp cl, 0x8f
ja 0x1001f159
movzx ecx, cl
shl ecx, 9
add esi, ecx
mov ebp, 7
jmp 0x1001f164
add esi, 0xff00
mov ebp, 8
mov ecx, dword [esp + 0x14]
add ecx, ecx
add esi, esi
sub ebp, 1
test ecx, 0x8000
mov dword [esp + 0x14], ecx
je 0x1001f121
mov cl, byte [esp + 0x12]
mov dword [esp + 0x1c], edx
test cl, cl
mov ecx, dword [esp + 0x18]
je 0x1001f3c3
mov edx, 0x80000000
shr edx, cl
mov ecx, dword [esp + 0x64]
or dword [esp + 0x28], edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x50]
imul edx, dword [esp + 0xcc]
add edx, dword [esp + 0x38]
cmp dword [esp + 0x38], 0
mov edi, dword [ecx + edx*4]
mov edx, dword [ebx + ecx]
mov ebx, dword [esp + 0x6c]
mov ebx, dword [ebx + ecx]
je 0x1001f201
cmp dword [esp + 0x18], 0
jne 0x1001f201
and edx, 0x40000000
shr ebx, 3
or edx, ebx
shr edx, 3
and edi, 0x81ffffff
or edx, edi
mov edi, dword [esp + 0x2c]
mov ecx, dword [edi + ecx - 4]
and ecx, 1
shr edx, 0x19
shl ecx, 4
and eax, 0xaa
or edx, ecx
or edx, eax
mov eax, edx
jmp 0x1001f24d
and eax, 0xaa
cmp dword [esp + 0x18], 0x1f
mov dword [esp + 0x24], eax
je 0x1001f232
mov ecx, 0x1e
sub ecx, dword [esp + 0x18]
shr edi, cl
shr edx, cl
shr ebx, cl
and edi, 2
add edi, edi
add edi, edi
add edi, edi
and edx, 5
or edi, edx
shr ebx, 1
jmp 0x1001f242
and edi, 1
add edi, edi
add edi, edi
add edi, edi
and edx, 2
or edi, edx
add edi, edi
add edi, edi
and ebx, 1
add edi, edi
or edi, ebx
or eax, edi
mov edx, dword [esp + 0xb8]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x60]
mov edi, dword [edx + 4]
mov cl, al
and cl, 1
shr eax, 1
mov byte [esp + 0x12], cl
mov ecx, dword [edx]
add ecx, eax
add edi, eax
movzx eax, byte [ecx]
mov eax, dword [eax*4 + 0x1008a1b8]
mov edx, eax
mov ebx, esi
shr edx, 0x10
shr ebx, 0x10
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1001f2ec
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001f2b3
mov cl, byte [edi]
xor cl, byte [esp + 0x12]
setne bl
jmp 0x1001f384
cmp ebx, edx
mov dl, byte [edi]
jb 0x1001f2c9
xor dl, byte [esp + 0x12]
mov edx, dword [esp + 0x14]
setne bl
shr eax, 8
jmp 0x1001f323
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov bl, byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
jmp 0x1001f323
add edx, edx
cmp dword [esp + 0x14], edx
mov dl, byte [edi]
jae 0x1001f302
xor dl, byte [esp + 0x12]
setne bl
shr eax, 8
jmp 0x1001f31f
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov bl, byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
and al, 0x7f
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x1001f36d
cmp ecx, edi
je 0x1001f362
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001f34f
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001f368
cmp al, 0x8f
ja 0x1001f362
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001f36d
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001f32d
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x5c]
test bl, bl
mov ebx, dword [esp + 0x2c]
je 0x1001f3b2
mov ecx, dword [esp + 0x70]
fld st(0)
mov eax, dword [esp + 0x64]
fchs
mov edx, dword [esp + 0x34]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
or dword [ebx + eax], ecx
fst dword [edx + edi]
fsub st(2)
jmp 0x1001f3bd
mov eax, dword [esp + 0x34]
fst dword [eax + edi]
fld st(0)
fadd st(2)
mov ecx, dword [esp + 0x18]
fstp dword [edi]
add ecx, 1
cmp ecx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
jb 0x1001ef42
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov dword [ebx + edx], ecx
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xac]
mov dword [esp + 0x50], eax
jb 0x1001e856
mov eax, dword [esp + 0x74]
add eax, 0xffffffff
cmp eax, 1
mov dword [esp + 0x48], 1
jbe 0x1001ff01
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 0x78]
mov ecx, dword [eax]
xor edi, edi
cmp dword [esp + 0xac], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x50], edi
jbe 0x1001fee7
mov edx, dword [esp + 0x38]
mov eax, 7
sub eax, dword [esp + 0x48]
add eax, eax
add eax, eax
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x28], eax
lea eax, [edi + 2]
imul eax, dword [esp + 0xcc]
add edi, 1
mov dword [esp + 0x80], edi
imul edi, dword [esp + 0xcc]
add eax, edx
add eax, eax
add eax, eax
mov ebx, dword [eax + ebx]
add edi, edx
mov dword [esp + 0x6c], eax
mov eax, ecx
or eax, ebx
or eax, dword [esp + 0x28]
add edi, edi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x84]
add edi, edi
mov dword [esp + 0x3c], ebx
mov ebx, dword [edi + ecx]
mov ecx, dword [esp + 0x8c]
shr ebx, cl
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], edi
and ebx, 0xf
cmp ebx, dword [0x1009bb40]
mov dword [esp + 0x40], ebx
je 0x1001fecf
mov ecx, dword [esp + 0x48]
add ecx, ecx
add ecx, ecx
shl edx, 5
add ecx, edx
imul ecx, dword [esp + 0xc4]
add ecx, dword [esp + 0x50]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x34], ecx
lea ecx, [edx*4]
mov edx, ecx
mov ecx, 0x1b
sub ecx, edx
shr eax, cl
mov dword [esp + 0x24], 0xffffffff
test al, 0x3f
jne 0x1001f9f1
test ebx, ebx
jne 0x1001f9f1
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
movzx eax, byte [ecx + 0x11]
mov eax, dword [eax*4 + 0x1008a1b8]
add ecx, 0x11
mov edx, eax
mov ebx, esi
shr edx, 0x10
shr ebx, 0x10
add edi, 0x11
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1001f5a1
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001f572
movzx edi, byte [edi]
mov ecx, dword [esp + 0x1c]
jmp 0x1001f636
cmp ebx, edx
jb 0x1001f57e
movzx edi, byte [edi]
shr eax, 8
jmp 0x1001f5d5
mov bl, byte [edi]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
shr eax, 1
mov byte [edi], dl
mov edi, dword [esp + 0x18]
and al, 0x7f
jmp 0x1001f5d5
lea ebx, [edx + edx]
cmp dword [esp + 0x14], ebx
jae 0x1001f5b2
movzx edi, byte [edi]
shr eax, 8
jmp 0x1001f5d3
mov bl, byte [edi]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor dl, bl
mov byte [edi], dl
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov ebx, edx
mov edx, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x1001f61f
cmp ecx, edx
je 0x1001f614
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001f601
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001f61a
cmp al, 0x8f
ja 0x1001f614
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001f61f
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001f5df
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
test edi, edi
je 0x1001fecb
movzx edx, byte [0x1009bb46]
mov eax, dword [edx*4 + 0x1008a1b8]
mov edi, eax
mov edx, esi
shr edi, 0x10
shr edx, 0x10
cmp edx, edi
jb 0x1001f6ae
mov edx, eax
and edx, 0xffff0000
sub ebx, edi
sub esi, edx
test ebx, 0x8000
mov dl, byte [0x1009ff34]
mov dword [esp + 0x14], ebx
je 0x1001f680
movzx eax, dl
jmp 0x1001f743
cmp ebx, edi
movzx edi, dl
jb 0x1001f690
mov dword [esp + 0x18], edi
shr eax, 8
jmp 0x1001f6e1
mov bl, al
and bl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
xor edi, 1
shr eax, 1
mov dword [esp + 0x18], edi
mov byte [0x1009ff34], dl
and al, 0x7f
jmp 0x1001f6e1
lea edx, [edi + edi]
cmp ebx, edx
mov dl, byte [0x1009ff34]
movzx ebx, dl
jae 0x1001f6c7
mov dword [esp + 0x18], ebx
shr eax, 8
jmp 0x1001f6df
xor ebx, 1
mov dword [esp + 0x18], ebx
mov bl, al
and bl, 1
xor dl, bl
shr eax, 1
mov byte [0x1009ff34], dl
and al, 0x7f
mov ebx, edi
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001f728
cmp ecx, dword [esp + 0x44]
je 0x1001f71d
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001f70a
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001f723
cmp al, 0x8f
ja 0x1001f71d
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001f728
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001f6e6
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
add eax, eax
mov dword [esp + 0x24], eax
movzx eax, byte [0x1009bb46]
mov eax, dword [eax*4 + 0x1008a1b8]
mov edi, eax
mov ebx, esi
shr edi, 0x10
shr ebx, 0x10
cmp ebx, edi
jb 0x1001f7b6
sub dword [esp + 0x14], edi
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001f787
movzx edx, dl
jmp 0x1001f850
cmp ebx, edi
jb 0x1001f793
movzx edx, dl
shr eax, 8
jmp 0x1001f7f2
mov bl, al
movzx edi, dl
and bl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
xor edi, 1
shr eax, 1
mov byte [0x1009ff34], dl
mov dword [esp + 0x18], edi
and al, 0x7f
mov edx, edi
jmp 0x1001f7f2
lea edx, [edi + edi]
cmp dword [esp + 0x14], edx
jae 0x1001f7cb
movzx edx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001f7f0
mov bl, byte [0x1009ff34]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor bl, dl
mov edx, dword [esp + 0x18]
shr eax, 1
mov byte [0x1009ff34], bl
and al, 0x7f
mov ebx, edi
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001f839
cmp ecx, dword [esp + 0x44]
je 0x1001f82e
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001f81b
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001f834
cmp al, 0x8f
ja 0x1001f82e
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001f839
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x1001f7f7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
or ecx, edx
add eax, eax
add eax, eax
mov edx, ecx
imul edx, dword [esp + 0xc4]
add dword [esp + 0x34], edx
mov dword [esp + 0x24], ecx
add ecx, eax
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x28]
mov ebx, esi
shr ebx, 0x10
or ecx, eax
or dword [esp + 0x54], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov edi, dword [eax + 4]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax]
movzx eax, byte [ecx + 9]
mov eax, dword [eax*4 + 0x1008a1b8]
add ecx, 9
mov edx, eax
shr edx, 0x10
add edi, 9
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1001f912
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001f8dc
cmp byte [edi], 0
setne bl
jmp 0x1001f9a7
cmp ebx, edx
jb 0x1001f8ef
cmp byte [edi], 0
mov edx, dword [esp + 0x14]
setne bl
shr eax, 8
jmp 0x1001f946
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, dl
mov edx, dword [esp + 0x14]
shr eax, 1
mov byte [edi], bl
mov bl, byte [esp + 0x12]
and al, 0x7f
jmp 0x1001f946
add edx, edx
cmp dword [esp + 0x14], edx
jae 0x1001f925
cmp byte [edi], 0
setne bl
shr eax, 8
jmp 0x1001f942
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, dl
shr eax, 1
mov byte [edi], bl
mov bl, byte [esp + 0x12]
and al, 0x7f
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x1001f990
cmp ecx, edi
je 0x1001f985
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001f972
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001f98b
cmp al, 0x8f
ja 0x1001f985
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001f990
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001f950
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0xbc]
test bl, bl
mov ebx, dword [esp + 0x40]
je 0x1001f9dc
mov eax, dword [esp + 0x64]
fld st(0)
mov ecx, dword [esp + 0x18]
fchs
or dword [edi + eax], ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
mov eax, dword [esp + 0x34]
fst dword [edx + eax*4]
fsub st(2)
jmp 0x1001f9e7
mov eax, dword [esp + 0x34]
fst dword [edx + eax*4]
fld st(0)
fadd st(2)
mov ecx, dword [esp + 0xc0]
fstp dword [ecx + eax*4]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov eax, dword [edi + eax]
add edx, edx
add edx, edx
mov ecx, 0x1c
sub ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x24]
and eax, 0xf
or ebx, eax
mov eax, dword [esp + 0x68]
add eax, ecx
add eax, edx
imul eax, dword [esp + 0xc4]
add eax, dword [esp + 0x50]
add ecx, 1
cmp ecx, 4
jae 0x1001fec0
add edx, ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0xc0]
lea edx, [edx + eax*4]
lea eax, [ecx + ebx*4 + 0x1009bb48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
add eax, eax
add eax, eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xbc]
sub eax, dword [esp + 0xc0]
mov dword [esp + 0x34], eax
mov eax, 4
sub eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x18]
add eax, eax
add eax, eax
add edx, eax
cmp byte [ecx], 0
mov dword [esp + 0x70], edx
jne 0x1001fea4
mov eax, dword [esp + 0x68]
mov edi, dword [eax + 0x1009ba30]
mov ecx, dword [esp + 0x54]
test ecx, edi
mov dword [esp + 0x5c], edi
je 0x1001faf5
mov ecx, dword [eax + 0x1009bab0]
mov eax, edi
and eax, dword [esp + 0x58]
and edi, dword [esp + 0x28]
shr eax, cl
shr edi, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edi
mov edi, dword [esp + 0x5c]
and edi, dword [esp + 0x3c]
add eax, eax
add eax, eax
shr edi, cl
add eax, eax
or eax, edi
cmp dword [esp + 0x40], 0x1f
mov dword [esp + 0x30], eax
jne 0x1001fae9
add eax, eax
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx + eax*4]
jmp 0x1001fafb
xor eax, eax
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x60]
mov ecx, dword [edi]
mov edi, dword [edi + 4]
add ecx, eax
add edi, eax
movzx eax, byte [ecx]
mov eax, dword [eax*4 + 0x1008a1b8]
mov dword [esp + 0x24], ecx
mov ecx, eax
mov ebx, esi
shr ecx, 0x10
shr ebx, 0x10
cmp ebx, ecx
mov dword [esp + 0x20], ecx
jb 0x1001fb83
sub dword [esp + 0x14], ecx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001fb4d
cmp byte [edi], 0
setne bl
jmp 0x1001fc1a
cmp ebx, ecx
jb 0x1001fb60
cmp byte [edi], 0
mov edi, dword [esp + 0x14]
setne bl
shr eax, 8
jmp 0x1001fbb7
mov cl, byte [edi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
mov byte [edi], bl
mov bl, byte [esp + 0x12]
mov edi, dword [esp + 0x14]
shr eax, 1
and al, 0x7f
jmp 0x1001fbb7
add ecx, ecx
cmp dword [esp + 0x14], ecx
jae 0x1001fb96
cmp byte [edi], 0
setne bl
shr eax, 8
jmp 0x1001fbb3
mov cl, byte [edi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
shr eax, 1
mov byte [edi], bl
mov bl, byte [esp + 0x12]
and al, 0x7f
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x1001fc03
cmp ecx, dword [esp + 0x44]
je 0x1001fbf8
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001fbe5
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001fbfe
cmp al, 0x8f
ja 0x1001fbf8
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001fc03
add esi, 0xff00
mov ebp, 8
add edi, edi
add esi, esi
sub ebp, 1
test edi, 0x8000
je 0x1001fbc1
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ecx
test bl, bl
je 0x1001fea0
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x28]
or ecx, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x54]
or eax, ecx
test eax, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x54], eax
je 0x1001fd2d
mov edx, dword [esp + 0x50]
imul edx, dword [esp + 0xcc]
add edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + edx*4]
mov edx, dword [esp + 0x2c]
mov edi, dword [edx + ecx]
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + ecx]
mov ecx, edx
or ecx, edi
or ecx, eax
test ebx, ecx
mov ecx, dword [esp + 0x30]
je 0x1001fd11
mov ebx, dword [esp + 0x40]
and ecx, 0xaa
cmp ebx, 0x1f
mov dword [esp + 0x24], ecx
je 0x1001fce0
mov ecx, 0x1e
sub ecx, ebx
shr eax, cl
shr edi, cl
shr edx, cl
mov ecx, dword [esp + 0x24]
and eax, 2
add eax, eax
add eax, eax
add eax, eax
and edi, 5
or eax, edi
add eax, eax
shr edx, 1
add eax, eax
and edx, 1
or eax, edx
mov edx, dword [esp + 0xb8]
or ecx, eax
mov ecx, dword [edx + ecx*4]
mov al, cl
and al, 1
mov byte [esp + 0x12], al
shr ecx, 1
jmp 0x1001fd37
and eax, 1
add eax, eax
add eax, eax
add eax, eax
and edi, 2
or eax, edi
add eax, eax
add eax, eax
add eax, eax
and edx, 1
or eax, edx
mov edx, dword [esp + 0xb8]
or ecx, eax
mov ecx, dword [edx + ecx*4]
mov al, cl
and al, 1
mov byte [esp + 0x12], al
shr ecx, 1
jmp 0x1001fd37
mov edx, dword [esp + 0xb8]
and ecx, 0xaa
mov ecx, dword [edx + ecx*4]
mov al, cl
and al, 1
mov byte [esp + 0x12], al
shr ecx, 1
jmp 0x1001fd37
mov ecx, 9
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x60]
mov edx, dword [eax]
mov edi, dword [eax + 4]
movzx eax, byte [edx + ecx]
mov eax, dword [eax*4 + 0x1008a1b8]
add edx, ecx
add edi, ecx
mov ecx, eax
mov ebx, esi
shr ecx, 0x10
shr ebx, 0x10
cmp ebx, ecx
mov dword [esp + 0x20], ecx
jb 0x1001fdc6
sub dword [esp + 0x14], ecx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001fd89
mov cl, byte [edi]
xor cl, byte [esp + 0x12]
setne bl
jmp 0x1001fe5e
cmp ebx, ecx
mov cl, byte [edi]
jb 0x1001fda1
xor cl, byte [esp + 0x12]
setne bl
shr eax, 8
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001fdff
xor cl, byte [esp + 0x12]
xor cl, 1
setne byte [esp + 0x12]
mov bl, byte [esp + 0x12]
mov cl, al
and cl, 1
xor cl, byte [edi]
shr eax, 1
and al, 0x7f
mov byte [edi], cl
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001fdff
add ecx, ecx
cmp dword [esp + 0x14], ecx
mov cl, byte [edi]
jae 0x1001fddc
xor cl, byte [esp + 0x12]
setne bl
shr eax, 8
jmp 0x1001fdf9
xor cl, byte [esp + 0x12]
xor cl, 1
setne byte [esp + 0x12]
mov bl, byte [esp + 0x12]
mov cl, al
and cl, 1
xor cl, byte [edi]
shr eax, 1
mov byte [edi], cl
and al, 0x7f
mov byte [edx], al
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
test ebp, ebp
jne 0x1001fe47
cmp ecx, edi
je 0x1001fe3c
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001fe29
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x1001fe42
cmp al, 0x8f
ja 0x1001fe3c
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001fe47
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001fe07
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
test bl, bl
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
je 0x1001fe91
mov eax, dword [esp + 0x64]
fld st(0)
mov ecx, dword [esp + 0x88]
fchs
or dword [edi + eax], ecx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
mov eax, dword [esp + 0x34]
fst dword [edx + eax]
fsub st(2)
fstp dword [edx]
jmp 0x1001fea4
mov ecx, dword [esp + 0x34]
fst dword [edx + ecx]
fld st(0)
fadd st(2)
fstp dword [edx]
jmp 0x1001fea4
mov edi, dword [esp + 0x2c]
add dword [esp + 0x68], 4
mov eax, 1
add dword [esp + 0x18], eax
add dword [esp + 0x40], eax
sub dword [esp + 0x7c], eax
jne 0x1001fa76
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
mov dword [edi + eax], edx
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x80]
cmp edi, dword [esp + 0xac]
mov dword [esp + 0x50], edi
jb 0x1001f453
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x74]
add ecx, 1
add eax, 0xffffffff
cmp ecx, eax
mov dword [esp + 0x48], ecx
jb 0x1001f40f
cmp dword [esp + 0x74], 1
jbe 0x10020bc1
mov edx, dword [esp + 0x38]
mov edi, edx
neg edi
lea ecx, [eax*4]
shl edi, 5
sub edi, ecx
mov ecx, dword [esp + 0xb0]
add ecx, edi
cmp ecx, 4
mov dword [esp + 0x48], 4
jae 0x1001ff3a
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x4c]
mov ebx, dword [ecx + edx*4]
mov edx, dword [esp + 0x78]
mov edi, dword [edx]
xor edx, edx
cmp dword [esp + 0xac], edx
mov dword [esp + 0x50], edx
jbe 0x10020bc1
lea ecx, [eax*4]
mov eax, 0x1c
sub eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x38]
shl eax, 5
mov dword [esp + 0x68], eax
add eax, ecx
imul eax, dword [esp + 0xc4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xcc]
add eax, 0xffffffff
mov dword [esp + 0x30], ecx
mov dword [esp + 0x70], eax
jmp 0x1001ffa4
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
lea eax, [edx + 2]
imul eax, dword [esp + 0xcc]
add eax, dword [esp + 0x38]
mov dword [esp + 0x58], ebx
add eax, eax
add eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [eax + ecx]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x84]
lea eax, [edx + 1]
mov dword [esp + 0x80], eax
imul eax, dword [esp + 0xcc]
add eax, dword [esp + 0x38]
mov dword [esp + 0x28], edi
add eax, eax
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [eax + ecx]
mov ecx, dword [esp + 0x7c]
shr eax, cl
mov dword [esp + 0x24], 0xffffffff
mov byte [esp + 0x12], 0
and eax, 0xf
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x88]
add eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax*4 + 0x1009ba30]
mov ecx, dword [eax*4 + 0x1009bab0]
mov eax, edx
and eax, ebx
shr eax, cl
mov ebx, edx
and edx, dword [esp + 0x3c]
and ebx, edi
mov edi, dword [esp + 0x30]
add eax, eax
add eax, eax
add eax, eax
shr ebx, cl
shr edx, cl
or eax, ebx
add eax, eax
add eax, eax
add eax, eax
or eax, edx
cmp edi, 0x1f
jne 0x1002005c
add eax, eax
test eax, eax
je 0x10020065
mov byte [esp + 0x12], 1
mov edx, dword [edi*4 + 0x1009ba34]
lea eax, [edi + 1]
mov ecx, dword [eax*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x58]
mov ebx, edx
and ebx, dword [esp + 0x28]
shr eax, cl
shr ebx, cl
mov dword [esp + 0x54], ecx
add eax, eax
add eax, eax
add eax, eax
or eax, ebx
mov ebx, dword [esp + 0x3c]
add eax, eax
and edx, ebx
shr edx, cl
add eax, eax
add eax, eax
lea ecx, [edi + 1]
or eax, edx
cmp ecx, 0x1f
jne 0x100200ac
add eax, eax
test eax, eax
je 0x100200b5
mov byte [esp + 0x12], 1
mov edx, dword [edi*4 + 0x1009ba38]
mov ecx, dword [edi*4 + 0x1009bab8]
mov eax, edx
and eax, dword [esp + 0x58]
add edi, 2
mov edi, edx
and edi, dword [esp + 0x28]
and edx, ebx
mov dword [esp + 0x78], edx
mov edx, eax
shr edx, cl
mov ebx, edi
shr ebx, cl
mov dword [esp + 0x54], ecx
add edx, edx
add edx, edx
add edx, edx
or edx, ebx
mov ebx, dword [esp + 0x78]
add edx, edx
shr ebx, cl
mov ecx, dword [esp + 0x30]
add edx, edx
add edx, edx
add ecx, 2
or edx, ebx
cmp ecx, 0x1f
jne 0x10020108
add edx, edx
test edx, edx
mov bl, 1
jne 0x10020112
mov bl, byte [esp + 0x12]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x70]
je 0x10020185
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + edx + 4]
mov edi, dword [esp + 0x6c]
mov edi, dword [edi + edx + 4]
and eax, 0x8fffffff
shr edi, 3
or eax, edi
mov edi, dword [esp + 0x50]
imul edi, dword [esp + 0xcc]
add edi, ecx
mov ecx, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x58]
and edx, 3
add edx, edx
and ecx, 0x81ffffff
add edx, edx
shr eax, 3
or eax, ecx
mov ecx, dword [esp + 0x28]
add edx, edx
and ecx, 3
or edx, ecx
mov ecx, dword [esp + 0x3c]
add edx, edx
add edx, edx
add edx, edx
and ecx, 3
or edx, ecx
shr eax, 0x19
add edx, edx
or eax, edx
jmp 0x100201b4
mov edx, dword [esp + 0x30]
mov ecx, dword [edx*4 + 0x1009babc]
shr eax, cl
add edx, 3
shr edi, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edi
mov edi, dword [esp + 0x78]
add eax, eax
add eax, eax
shr edi, cl
add eax, eax
or eax, edi
cmp edx, 0x1f
jne 0x100201b4
add eax, eax
test eax, eax
jne 0x1002069d
test bl, bl
jne 0x1002069d
cmp dword [esp + 0x48], 4
jne 0x1002069d
cmp dword [esp + 0x40], 0
jne 0x1002069d
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
movzx edx, byte [ecx + 0x11]
mov edi, dword [eax + 4]
mov eax, dword [edx*4 + 0x1008a1b8]
add ecx, 0x11
mov edx, eax
mov ebx, esi
shr edx, 0x10
shr ebx, 0x10
add edi, 0x11
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x1002025b
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1002022c
movzx edi, byte [edi]
mov ecx, dword [esp + 0x1c]
jmp 0x100202f0
cmp ebx, edx
jb 0x10020238
movzx edi, byte [edi]
shr eax, 8
jmp 0x1002028f
mov bl, byte [edi]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
shr eax, 1
mov byte [edi], dl
mov edi, dword [esp + 0x18]
and al, 0x7f
jmp 0x1002028f
lea ebx, [edx + edx]
cmp dword [esp + 0x14], ebx
jae 0x1002026c
movzx edi, byte [edi]
shr eax, 8
jmp 0x1002028d
mov bl, byte [edi]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor dl, bl
mov byte [edi], dl
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov ebx, edx
mov edx, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x100202d9
cmp ecx, edx
je 0x100202ce
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x100202bb
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x100202d4
cmp al, 0x8f
ja 0x100202ce
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x100202d9
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x10020299
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
test edi, edi
je 0x10020ba9
movzx edx, byte [0x1009bb46]
mov eax, dword [edx*4 + 0x1008a1b8]
mov edi, eax
mov edx, esi
shr edi, 0x10
shr edx, 0x10
cmp edx, edi
jb 0x10020368
mov edx, eax
and edx, 0xffff0000
sub ebx, edi
sub esi, edx
test ebx, 0x8000
mov dl, byte [0x1009ff34]
mov dword [esp + 0x14], ebx
je 0x1002033a
movzx eax, dl
jmp 0x100203fd
cmp ebx, edi
movzx edi, dl
jb 0x1002034a
mov dword [esp + 0x18], edi
shr eax, 8
jmp 0x1002039b
mov bl, al
and bl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
xor edi, 1
shr eax, 1
mov dword [esp + 0x18], edi
mov byte [0x1009ff34], dl
and al, 0x7f
jmp 0x1002039b
lea edx, [edi + edi]
cmp ebx, edx
mov dl, byte [0x1009ff34]
movzx ebx, dl
jae 0x10020381
mov dword [esp + 0x18], ebx
shr eax, 8
jmp 0x10020399
xor ebx, 1
mov dword [esp + 0x18], ebx
mov bl, al
and bl, 1
xor dl, bl
shr eax, 1
mov byte [0x1009ff34], dl
and al, 0x7f
mov ebx, edi
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x100203e2
cmp ecx, dword [esp + 0x44]
je 0x100203d7
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x100203c4
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x100203dd
cmp al, 0x8f
ja 0x100203d7
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x100203e2
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x100203a0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
add eax, eax
mov dword [esp + 0x24], eax
movzx eax, byte [0x1009bb46]
mov eax, dword [eax*4 + 0x1008a1b8]
mov edi, eax
mov ebx, esi
shr edi, 0x10
shr ebx, 0x10
cmp ebx, edi
jb 0x10020470
sub dword [esp + 0x14], edi
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x10020441
movzx edx, dl
jmp 0x1002050a
cmp ebx, edi
jb 0x1002044d
movzx edx, dl
shr eax, 8
jmp 0x100204ac
mov bl, al
movzx edi, dl
and bl, 1
xor dl, bl
mov ebx, dword [esp + 0x14]
xor edi, 1
shr eax, 1
mov byte [0x1009ff34], dl
mov dword [esp + 0x18], edi
and al, 0x7f
mov edx, edi
jmp 0x100204ac
lea edx, [edi + edi]
cmp dword [esp + 0x14], edx
jae 0x10020485
movzx edx, byte [0x1009ff34]
shr eax, 8
jmp 0x100204aa
mov bl, byte [0x1009ff34]
movzx edx, bl
xor edx, 1
mov dword [esp + 0x18], edx
mov dl, al
and dl, 1
xor bl, dl
mov edx, dword [esp + 0x18]
shr eax, 1
mov byte [0x1009ff34], bl
and al, 0x7f
mov ebx, edi
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x100204f3
cmp ecx, dword [esp + 0x44]
je 0x100204e8
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x100204d5
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x100204ee
cmp al, 0x8f
ja 0x100204e8
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x100204f3
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x100204b1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x24]
or eax, edx
mov edx, dword [esp + 0x30]
mov ecx, eax
imul ecx, dword [esp + 0xc4]
add dword [esp + 0x34], ecx
lea ecx, [eax + edx]
mov dword [esp + 0x24], eax
mov eax, 0x80000000
shr eax, cl
mov ebx, esi
shr ebx, 0x10
or dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov edi, dword [eax + 4]
movzx eax, byte [ecx + 9]
mov eax, dword [eax*4 + 0x1008a1b8]
add ecx, 9
mov edx, eax
shr edx, 0x10
add edi, 9
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x100205bb
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x10020589
cmp byte [edi], 0
setne dl
jmp 0x10020650
cmp ebx, edx
jb 0x10020598
cmp byte [edi], 0
setne dl
shr eax, 8
jmp 0x100205ef
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, dl
mov dl, byte [esp + 0x12]
shr eax, 1
mov byte [edi], bl
mov ebx, dword [esp + 0x14]
and al, 0x7f
jmp 0x100205ef
add edx, edx
cmp dword [esp + 0x14], edx
jae 0x100205ce
cmp byte [edi], 0
setne dl
shr eax, 8
jmp 0x100205eb
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, dl
mov dl, byte [esp + 0x12]
shr eax, 1
mov byte [edi], bl
and al, 0x7f
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x10020639
cmp ecx, edi
je 0x1002062e
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1002061b
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x10020634
cmp al, 0x8f
ja 0x1002062e
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x10020639
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x100205f9
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
test dl, dl
je 0x10020681
mov eax, dword [esp + 0x64]
fld st(0)
mov ecx, dword [esp + 0x2c]
fchs
mov edx, dword [esp + 0x18]
fstp dword [esp + 0x20]
or dword [ecx + eax], edx
fld dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xbc]
fst dword [ecx + eax*4]
fsub st(2)
jmp 0x10020693
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xbc]
fst dword [ecx + eax*4]
fld st(0)
fadd st(2)
mov edx, dword [esp + 0xc0]
fstp dword [edx + eax*4]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + eax]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
shr edx, cl
mov ecx, dword [esp + 0x24]
add eax, ecx
add eax, dword [esp + 0x30]
and edx, 0xf
or dword [esp + 0x40], edx
mov edx, dword [esp + 0xc4]
imul eax, edx
add eax, dword [esp + 0x50]
add ecx, 1
cmp ecx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
jae 0x10020b9a
add edx, edx
add edx, edx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xc0]
lea eax, [edx + eax*4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xbc]
sub eax, edx
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x40]
add dword [esp + 0x54], edx
cmp byte [ecx + eax*4 + 0x1009bb48], 0
jne 0x10020b89
mov edx, dword [esp + 0x30]
add edx, ecx
cmp ecx, 3
mov eax, dword [edx*4 + 0x1009ba30]
mov dword [esp + 0x5c], edx
jne 0x100207c3
mov ecx, dword [esp + 0x38]
cmp ecx, dword [esp + 0x70]
je 0x100207c3
cmp dword [esp + 0x74], 8
jne 0x100207c3
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x6c]
mov edx, dword [edx + eax + 4]
mov edi, dword [esp + 0x2c]
mov edi, dword [edi + eax + 4]
shr edx, 3
and edi, 0x8fffffff
or edx, edi
mov edi, dword [esp + 0x50]
imul edi, dword [esp + 0xcc]
add edi, ecx
mov eax, dword [eax + edi*4 + 4]
mov ecx, dword [esp + 0x58]
and ecx, 3
add ecx, ecx
and eax, 0x81ffffff
add ecx, ecx
shr edx, 3
or edx, eax
mov eax, dword [esp + 0x28]
add ecx, ecx
and eax, 3
or ecx, eax
mov eax, dword [esp + 0x3c]
add ecx, ecx
add ecx, ecx
add ecx, ecx
and eax, 3
or ecx, eax
add ecx, ecx
shr edx, 0x19
or edx, ecx
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx + edx*4]
jmp 0x10020803
mov ecx, dword [edx*4 + 0x1009bab0]
mov edx, eax
and edx, dword [esp + 0x58]
mov edi, eax
and edi, dword [esp + 0x28]
and eax, dword [esp + 0x3c]
shr edx, cl
shr edi, cl
shr eax, cl
add edx, edx
add edx, edx
add edx, edx
or edx, edi
add edx, edx
add edx, edx
add edx, edx
or edx, eax
cmp dword [esp + 0x5c], 0x1f
jne 0x100207f9
add edx, edx
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + edx*4]
mov edi, dword [esp + 0x60]
mov ecx, dword [edi]
mov edi, dword [edi + 4]
add ecx, eax
mov dword [esp + 0x24], ecx
movzx ecx, byte [ecx]
add edi, eax
mov eax, dword [ecx*4 + 0x1008a1b8]
mov ecx, eax
mov ebx, esi
shr ecx, 0x10
shr ebx, 0x10
cmp ebx, ecx
mov dword [esp + 0x20], ecx
jb 0x10020885
sub dword [esp + 0x14], ecx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x10020855
cmp byte [edi], 0
setne al
jmp 0x1002091e
cmp ebx, ecx
jb 0x10020866
cmp byte [edi], 0
setne byte [esp + 0x12]
shr eax, 8
jmp 0x100208b7
mov cl, byte [edi]
mov bl, cl
xor bl, 1
mov bl, al
setne byte [esp + 0x12]
and bl, 1
xor bl, cl
shr eax, 1
mov byte [edi], bl
mov ebx, dword [esp + 0x14]
and al, 0x7f
jmp 0x100208b7
add ecx, ecx
cmp dword [esp + 0x14], ecx
jae 0x1002089a
cmp byte [edi], 0
setne byte [esp + 0x12]
shr eax, 8
jmp 0x100208b3
mov cl, byte [edi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
shr eax, 1
mov byte [edi], bl
and al, 0x7f
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x10020903
cmp ecx, dword [esp + 0x44]
je 0x100208f8
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x100208e5
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x100208fe
cmp al, 0x8f
ja 0x100208f8
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x10020903
add esi, 0xff00
mov ebp, 8
add ebx, ebx
add esi, esi
sub ebp, 1
test ebx, 0x8000
je 0x100208c1
mov al, byte [esp + 0x12]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
test al, al
je 0x10020b85
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x64]
mov edi, dword [edi + ecx]
mov dword [esp + 0x20], edi
or dword [esp + 0x28], eax
mov edi, dword [esp + 0x6c]
mov edi, dword [edi + ecx]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x50]
imul eax, dword [esp + 0xcc]
add eax, ebx
cmp ebx, dword [esp + 0x70]
mov eax, dword [ecx + eax*4]
je 0x100209b5
cmp dword [esp + 0x18], 3
jne 0x100209b5
cmp dword [esp + 0x74], 8
jne 0x100209b5
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x2c]
and eax, 1
add eax, eax
add eax, eax
add eax, eax
and ecx, 2
or eax, ecx
mov ecx, dword [esp + 0x64]
mov ecx, dword [ebx + ecx + 4]
add eax, eax
add eax, eax
shr ecx, 0x1d
add eax, eax
and ecx, 4
or eax, ecx
and edi, 1
and edx, 0xaa
or eax, edi
or eax, edx
mov edx, eax
jmp 0x10020a0e
mov ebx, dword [esp + 0x5c]
and edx, 0xaa
cmp ebx, 0x1f
mov dword [esp + 0x24], edx
je 0x100209ef
mov edx, dword [esp + 0x20]
mov ecx, 0x1e
sub ecx, ebx
shr eax, cl
shr edx, cl
shr edi, cl
and eax, 2
add eax, eax
add eax, eax
and edx, 5
add eax, eax
or eax, edx
mov edx, dword [esp + 0x24]
shr edi, 1
jmp 0x10020a03
mov ecx, dword [esp + 0x20]
and eax, 1
add eax, eax
add eax, eax
add eax, eax
and ecx, 2
or eax, ecx
add eax, eax
add eax, eax
and edi, 1
add eax, eax
or eax, edi
or edx, eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x60]
mov edi, dword [edx + 4]
mov cl, al
and cl, 1
shr eax, 1
mov byte [esp + 0x12], cl
mov ecx, dword [edx]
movzx edx, byte [ecx + eax]
add ecx, eax
add edi, eax
mov eax, dword [edx*4 + 0x1008a1b8]
mov edx, eax
mov ebx, esi
shr edx, 0x10
shr ebx, 0x10
cmp ebx, edx
mov dword [esp + 0x20], edx
jb 0x10020aae
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x10020a75
mov al, byte [edi]
xor al, byte [esp + 0x12]
setne bl
jmp 0x10020b46
cmp ebx, edx
mov dl, byte [edi]
jb 0x10020a8b
xor dl, byte [esp + 0x12]
mov edx, dword [esp + 0x14]
setne bl
shr eax, 8
jmp 0x10020ae5
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov bl, byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
jmp 0x10020ae5
add edx, edx
cmp dword [esp + 0x14], edx
mov dl, byte [edi]
jae 0x10020ac4
xor dl, byte [esp + 0x12]
setne bl
shr eax, 8
jmp 0x10020ae1
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov bl, byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
and al, 0x7f
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
mov byte [ecx], al
mov ecx, dword [esp + 0x1c]
test ebp, ebp
jne 0x10020b2f
cmp ecx, edi
je 0x10020b24
mov al, byte [ecx]
add ecx, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x10020b11
movzx eax, al
shl eax, 8
add esi, eax
jmp 0x10020b2a
cmp al, 0x8f
ja 0x10020b24
movzx eax, al
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x10020b2f
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x10020aef
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ecx
test bl, bl
je 0x10020b74
mov eax, dword [esp + 0x64]
fld st(0)
mov ecx, dword [esp + 0x2c]
fchs
mov edx, dword [esp + 0x78]
fstp dword [esp + 0x20]
or dword [ecx + eax], edx
fld dword [esp + 0x20]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
fst dword [eax + ecx]
fsub st(2)
jmp 0x10020b83
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x34]
fst dword [eax + edx]
fld st(0)
fadd st(2)
fstp dword [eax]
mov ecx, dword [esp + 0x18]
add ecx, 1
cmp ecx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
jb 0x10020708
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
mov dword [edx + ecx], eax
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0xac]
mov dword [esp + 0x50], edx
jb 0x1001ff9c
mov eax, dword [esp + 0x38]
add eax, 1
cmp eax, dword [esp + 0xcc]
mov dword [esp + 0x38], eax
jl 0x1001e7a9
mov edx, dword [esp + 0x1c]
fstp st(0)
mov eax, dword [esp + 0xc8]
fstp st(0)
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov cl, byte [esp + 0x13]
mov byte [eax + 0xc], cl
mov dword [eax + 4], esi
mov esi, dword [eax + 0x14]
mov ecx, edx
sub ecx, dword [esp + 0x94]
mov dword [eax + 0x10], ebp
pop edi
mov dword [esi + 8], ecx
mov eax, dword [eax + 0x14]
pop esi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x88
ret
pop edi
fstp st(0)
pop esi
fstp st(0)
pop ebp
pop ebx
add esp, 0x88
ret