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

Disassembly:
sub esp, 0x88
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x40], edx
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x5c], 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 + 0x38], ecx
mov ecx, dword [eax + 0x18]
push ebx
mov bl, byte [eax + 0xc]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xa0]
push ebp
mov ebp, dword [eax + 0x10]
add ecx, 3
push esi
mov esi, dword [eax + 4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x90], edx
mov edx, dword [eax + 8]
sar ecx, 2
cmp dword [esp + 0xc0], 0
push edi
mov dword [esp + 0x14], edx
mov byte [esp + 0x13], bl
mov dword [esp + 0x34], 0
jle 0x1001e6c4
fld dword [esp + 0xa4]
jmp 0x1001c129
mov ecx, dword [esp + 0x88]
cmp ecx, 8
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x50]
jl 0x1001c141
mov eax, 8
mov dword [esp + 0x78], eax
jmp 0x1001c153
mov eax, ecx
and eax, 0x80000007
jns 0x1001c14f
dec eax
or eax, 0xfffffff8
inc eax
mov dword [esp + 0x78], eax
sub ecx, eax
test eax, eax
mov dword [esp + 0x88], ecx
je 0x1001e6f7
cmp eax, 1
jbe 0x1001c173
mov dword [esp + 0x4c], 4
jmp 0x1001c187
mov eax, edx
shl eax, 5
mov ecx, eax
mov eax, dword [esp + 0xac]
sub eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [edi + edx*4]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x28], eax
lea eax, [edx + ecx]
lea eax, [edi + eax*4]
mov edi, dword [eax]
mov dword [esp + 0x64], eax
xor eax, eax
cmp dword [esp + 0xa8], eax
mov dword [esp + 0x60], eax
jbe 0x1001cdea
mov ecx, edx
shl ecx, 5
mov dword [esp + 0x70], ecx
imul ecx, dword [esp + 0xbc]
mov dword [esp + 0x7c], ecx
jmp 0x1001c1cf
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x5c], ecx
lea ecx, [eax + 2]
imul ecx, dword [esp + 0xc4]
add ecx, edx
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x50]
add ecx, ecx
add ecx, ecx
mov edi, dword [ecx + edi]
mov dword [esp + 0x44], edi
lea edi, [eax + 1]
mov dword [esp + 0x80], edi
imul edi, dword [esp + 0xc4]
add edi, edx
mov edx, dword [esp + 0x84]
add edi, edi
add edi, edi
mov edx, dword [edi + edx]
shr edx, 0x1c
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x7c]
add edx, eax
cmp dword [esp + 0x34], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x12], 0
jne 0x1001c278
mov edx, dword [0x1009ba30]
mov eax, dword [esp + 0x5c]
mov ecx, dword [0x1009bab0]
and eax, edx
and edx, dword [esp + 0x28]
shr eax, cl
shr edx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edx
mov edx, dword [0x1009ba30]
and edx, dword [esp + 0x44]
add eax, eax
shr edx, cl
jmp 0x1001c2d6
imul eax, dword [esp + 0xc4]
add eax, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
mov eax, dword [edx + eax*4 - 4]
mov edx, dword [edi + edx - 4]
and eax, 1
add eax, eax
add eax, eax
and edx, 1
add eax, eax
or eax, edx
mov edx, dword [esp + 0x50]
mov ecx, dword [ecx + edx - 4]
mov edx, dword [esp + 0x28]
add eax, eax
and ecx, 1
add eax, eax
add eax, eax
or eax, ecx
mov ecx, dword [esp + 0x44]
and edx, 0xc7ffffff
shr ecx, 3
or edx, ecx
mov ecx, dword [esp + 0x5c]
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 0x1001c2e5
mov byte [esp + 0x12], 1
mov eax, dword [0x1009ba34]
mov edx, dword [esp + 0x5c]
mov ecx, dword [0x1009bab4]
and edx, eax
and eax, dword [esp + 0x28]
shr edx, cl
shr eax, cl
add edx, edx
add edx, edx
add edx, edx
or edx, eax
mov eax, dword [0x1009ba34]
and eax, dword [esp + 0x44]
add edx, edx
add edx, edx
shr eax, cl
add edx, edx
or edx, eax
je 0x1001c320
mov byte [esp + 0x12], 1
mov eax, dword [0x1009ba38]
mov edx, dword [esp + 0x5c]
mov ecx, dword [0x1009bab8]
and edx, eax
and eax, dword [esp + 0x28]
shr edx, cl
shr eax, cl
add edx, edx
add edx, edx
add edx, edx
or edx, eax
mov eax, dword [0x1009ba38]
and eax, dword [esp + 0x44]
add edx, edx
add edx, edx
shr eax, cl
add edx, edx
or edx, eax
je 0x1001c35b
mov byte [esp + 0x12], 1
mov eax, dword [0x1009ba3c]
mov edx, dword [esp + 0x5c]
mov ecx, dword [0x1009babc]
and edx, eax
and eax, dword [esp + 0x28]
shr edx, cl
shr eax, cl
add edx, edx
add edx, edx
add edx, edx
or edx, eax
mov eax, dword [0x1009ba3c]
and eax, dword [esp + 0x44]
add edx, edx
add edx, edx
shr eax, cl
add edx, edx
or edx, eax
jne 0x1001c8df
cmp byte [esp + 0x12], dl
jne 0x1001c8df
cmp dword [esp + 0x4c], 4
jne 0x1001c8df
cmp dword [esp + 0x58], edx
jne 0x1001c8df
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
movzx ecx, byte [eax + 0x11]
add eax, 0x11
mov dword [esp + 0x20], eax
mov eax, dword [ecx*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
add edi, 0x11
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001c445
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001c40a
movzx eax, byte [edi]
mov edi, dword [esp + 0x18]
jmp 0x1001c4e4
cmp edx, ecx
jb 0x1001c420
movzx ecx, byte [edi]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
shr eax, 8
mov byte [ecx], al
jmp 0x1001c47f
mov dl, byte [edi]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor cl, dl
mov edx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov byte [edi], cl
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001c47f
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001c45a
movzx edx, byte [edi]
mov dword [esp + 0x1c], edx
shr eax, 8
jmp 0x1001c477
mov dl, byte [edi]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor cl, dl
shr eax, 1
mov byte [edi], cl
mov ecx, dword [esp + 0x24]
and al, 0x7f
mov edx, dword [esp + 0x20]
mov byte [edx], al
mov edx, ecx
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
test ebp, ebp
jne 0x1001c4c5
cmp edi, eax
je 0x1001c4ba
cmp bl, 0xff
mov bl, byte [edi]
je 0x1001c4a3
movzx ecx, bl
shl ecx, 8
add edi, 1
add esi, ecx
jmp 0x1001c4c0
add edi, 1
cmp bl, 0x8f
ja 0x1001c4ba
movzx ecx, bl
shl ecx, 9
add esi, ecx
mov ebp, 7
jmp 0x1001c4c5
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001c487
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
test eax, eax
je 0x1001cdce
movzx edx, byte [0x1009bb46]
mov eax, dword [edx*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001c571
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001c532
movzx ecx, byte [0x1009ff34]
jmp 0x1001c613
cmp edx, ecx
jb 0x1001c542
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001c5b3
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
jmp 0x1001c5b3
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001c586
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001c5af
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
and al, 0x7f
mov edx, dword [esp + 0x24]
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001c5f8
cmp edi, dword [esp + 0x48]
je 0x1001c5ed
cmp bl, 0xff
mov bl, byte [edi]
je 0x1001c5d6
movzx eax, bl
shl eax, 8
add edi, 1
add esi, eax
jmp 0x1001c5f3
add edi, 1
cmp bl, 0x8f
ja 0x1001c5ed
movzx eax, bl
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001c5f8
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001c5b8
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
movzx edx, byte [0x1009bb46]
mov eax, dword [edx*4 + 0x1008a1b8]
add ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001c6ac
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001c65f
movzx edx, byte [0x1009ff34]
jmp 0x1001c74d
cmp edx, ecx
jb 0x1001c678
movzx edx, byte [0x1009ff34]
shr eax, 8
mov byte [0x1009bb46], al
mov eax, dword [esp + 0x14]
jmp 0x1001c6f3
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
shr eax, 1
and al, 0x7f
mov byte [0x1009ff34], dl
mov edx, dword [esp + 0x1c]
mov byte [0x1009bb46], al
mov eax, dword [esp + 0x14]
jmp 0x1001c6f3
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001c6c1
movzx edx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001c6ea
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
shr eax, 1
mov byte [0x1009ff34], dl
mov edx, dword [esp + 0x1c]
and al, 0x7f
mov byte [0x1009bb46], al
mov eax, dword [esp + 0x24]
test ebp, ebp
jne 0x1001c733
cmp edi, dword [esp + 0x48]
je 0x1001c728
cmp bl, 0xff
mov bl, byte [edi]
je 0x1001c711
movzx ecx, bl
shl ecx, 8
add edi, 1
add esi, ecx
jmp 0x1001c72e
add edi, 1
cmp bl, 0x8f
ja 0x1001c728
movzx ecx, bl
shl ecx, 9
add esi, ecx
mov ebp, 7
jmp 0x1001c733
add esi, 0xff00
mov ebp, 8
add eax, eax
add esi, esi
sub ebp, 1
test eax, 0x8000
je 0x1001c6f3
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
mov ecx, dword [esp + 0x30]
or ecx, edx
mov eax, 0x80000000
shr eax, cl
mov edx, ecx
imul edx, dword [esp + 0xbc]
or dword [esp + 0x28], eax
add dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x68]
mov edi, dword [ecx + 4]
mov dword [esp + 0x40], eax
mov eax, dword [ecx]
add eax, 9
mov dword [esp + 0x20], eax
movzx eax, byte [eax]
mov eax, dword [eax*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
add edi, 9
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001c806
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001c7c8
cmp byte [edi], 0
setne cl
jmp 0x1001c8a8
cmp edx, ecx
jb 0x1001c7dd
cmp byte [edi], 0
mov edi, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edi], al
jmp 0x1001c847
mov cl, byte [edi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
mov byte [edi], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
mov byte [ecx], al
mov cl, byte [esp + 0x12]
jmp 0x1001c847
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001c820
cmp byte [edi], 0
mov edx, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edx], al
jmp 0x1001c843
mov cl, byte [edi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov byte [edi], dl
mov byte [ecx], al
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
test ebp, ebp
jne 0x1001c88d
cmp eax, edi
je 0x1001c882
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001c86b
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001c888
add eax, 1
cmp bl, 0x8f
ja 0x1001c882
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001c88d
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001c84f
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test cl, cl
je 0x1001c8c5
mov edx, dword [esp + 0x40]
fld st(0)
mov eax, dword [esp + 0x38]
fchs
mov ecx, dword [esp + 0x6c]
fstp dword [esp + 0x40]
or dword [eax + ecx], edx
jmp 0x1001c8c9
fst dword [esp + 0x40]
fld dword [esp + 0x40]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
fstp dword [eax + ecx*4]
mov edx, dword [esp + 0x50]
mov eax, dword [edi + edx]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x70]
shr eax, 0x1c
or dword [esp + 0x58], eax
lea eax, [ecx + edx]
imul eax, dword [esp + 0xbc]
add eax, dword [esp + 0x60]
add ecx, 1
cmp ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
jae 0x1001cdbf
mov edx, dword [esp + 0xb8]
lea eax, [edx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x58]
add eax, eax
add eax, eax
add dword [esp + 0x3c], eax
cmp byte [ecx + edx*4 + 0x1009bb48], 0
jne 0x1001cdae
test ecx, ecx
mov edx, dword [ecx*4 + 0x1009ba30]
jne 0x1001c9c3
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1001c9c3
mov edx, dword [esp + 0x60]
imul edx, dword [esp + 0xc4]
mov ecx, dword [esp + 0x50]
add edx, eax
mov eax, dword [ecx + edx*4 - 4]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + ecx - 4]
and eax, 1
add eax, eax
add eax, eax
and edx, 1
add eax, eax
or eax, edx
mov edx, dword [esp + 0x74]
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 + 0x44]
and edx, 0xc7ffffff
shr ecx, 3
or edx, ecx
mov ecx, dword [esp + 0x5c]
shr edx, 3
and ecx, 0xc0ffffff
add eax, eax
or edx, ecx
add eax, eax
shr edx, 0x18
or eax, edx
jmp 0x1001ca0d
mov ecx, dword [ecx*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x5c]
mov edi, edx
and edi, dword [esp + 0x28]
and edx, dword [esp + 0x44]
shr eax, cl
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx*4 + 0x1009bab0]
shr edi, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edi
mov edi, dword [esp + 0x30]
mov ecx, dword [edi*4 + 0x1009bab0]
add eax, eax
add eax, eax
shr edx, cl
add eax, eax
or eax, edx
cmp edi, 0x1f
jne 0x1001ca0d
add eax, eax
mov edx, dword [esp + 0xb0]
mov ecx, dword [edx + eax*4]
mov edi, dword [esp + 0x68]
mov edx, dword [edi]
mov edi, dword [edi + 4]
add edx, ecx
add edi, ecx
movzx ecx, byte [edx]
mov ecx, dword [ecx*4 + 0x1008a1b8]
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], edi
mov edx, ecx
mov edi, esi
shr edx, 0x10
shr edi, 0x10
cmp edi, edx
mov dword [esp + 0x24], edx
jb 0x1001cac0
sub dword [esp + 0x14], edx
mov edi, ecx
and edi, 0xffff0000
sub esi, edi
mov edi, dword [esp + 0x14]
test edi, 0x8000
je 0x1001ca71
mov edx, dword [esp + 0x2c]
cmp byte [edx], 0
setne dl
jmp 0x1001cb6c
cmp edi, edx
jb 0x1001ca8e
mov edx, dword [esp + 0x2c]
cmp byte [edx], 0
mov edi, dword [esp + 0x20]
setne dl
shr ecx, 8
mov byte [edi], cl
mov edi, dword [esp + 0x14]
jmp 0x1001cb0d
mov edi, dword [esp + 0x2c]
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, cl
and bl, 1
xor bl, dl
mov edx, dword [esp + 0x20]
shr ecx, 1
mov byte [edi], bl
mov bl, byte [esp + 0x13]
mov edi, dword [esp + 0x14]
and cl, 0x7f
mov byte [edx], cl
mov dl, byte [esp + 0x12]
jmp 0x1001cb0d
add edx, edx
cmp dword [esp + 0x14], edx
jae 0x1001cadd
mov edx, dword [esp + 0x2c]
cmp byte [edx], 0
mov edi, dword [esp + 0x20]
setne dl
shr ecx, 8
mov byte [edi], cl
jmp 0x1001cb09
mov edi, dword [esp + 0x2c]
mov dl, byte [edi]
mov bl, dl
xor bl, 1
setne byte [esp + 0x12]
mov bl, cl
and bl, 1
xor bl, dl
mov edx, dword [esp + 0x20]
shr ecx, 1
mov byte [edi], bl
mov bl, byte [esp + 0x13]
and cl, 0x7f
mov byte [edx], cl
mov dl, byte [esp + 0x12]
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
test ebp, ebp
jne 0x1001cb51
cmp ecx, dword [esp + 0x48]
je 0x1001cb46
cmp bl, 0xff
mov bl, byte [ecx]
je 0x1001cb2f
movzx ebp, bl
shl ebp, 8
add ecx, 1
add esi, ebp
jmp 0x1001cb4c
add ecx, 1
cmp bl, 0x8f
ja 0x1001cb46
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001cb51
add esi, 0xff00
mov ebp, 8
add edi, edi
add esi, esi
sub ebp, 1
test edi, 0x8000
je 0x1001cb11
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
mov byte [esp + 0x13], bl
test dl, dl
mov ecx, dword [esp + 0x30]
je 0x1001cdae
mov ebx, dword [esp + 0x74]
mov edx, 0x80000000
shr edx, cl
mov ecx, dword [esp + 0x6c]
mov ebx, dword [ebx + ecx]
or dword [esp + 0x28], edx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x60]
imul edx, dword [esp + 0xc4]
add edx, dword [esp + 0x34]
cmp dword [esp + 0x34], 0
mov edi, dword [ecx + edx*4]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + ecx]
je 0x1001cbee
cmp dword [esp + 0x30], 0
jne 0x1001cbee
and edx, 0x40000000
shr ebx, 3
or edx, ebx
shr edx, 3
and edi, 0x81ffffff
or edx, edi
mov edi, dword [esp + 0x38]
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 0x1001cc3a
and eax, 0xaa
cmp dword [esp + 0x30], 0x1f
mov dword [esp + 0x24], eax
je 0x1001cc1f
mov ecx, 0x1e
sub ecx, dword [esp + 0x30]
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 0x1001cc2f
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 + 0xb4]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x68]
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 + 0x24], edx
jb 0x1001cce1
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001cca4
mov cl, byte [edi]
xor cl, byte [esp + 0x12]
mov bl, byte [esp + 0x13]
setne dl
jmp 0x1001cd7f
cmp ebx, edx
mov dl, byte [edi]
jb 0x1001ccbc
xor dl, byte [esp + 0x12]
setne dl
shr eax, 8
mov byte [ecx], al
mov ecx, dword [esp + 0x14]
jmp 0x1001cd1a
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x14]
jmp 0x1001cd1a
add edx, edx
cmp dword [esp + 0x14], edx
mov dl, byte [edi]
jae 0x1001ccf7
xor dl, byte [esp + 0x12]
setne dl
shr eax, 8
jmp 0x1001cd14
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
mov byte [ecx], al
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
mov bl, byte [esp + 0x13]
test ebp, ebp
jne 0x1001cd64
cmp eax, edi
je 0x1001cd59
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001cd42
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001cd5f
add eax, 1
cmp bl, 0x8f
ja 0x1001cd59
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001cd64
add esi, 0xff00
mov ebp, 8
add ecx, ecx
add esi, esi
sub ebp, 1
test ecx, 0x8000
je 0x1001cd26
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test dl, dl
je 0x1001cd9c
mov edx, dword [esp + 0x40]
fld st(0)
mov eax, dword [esp + 0x38]
fchs
mov ecx, dword [esp + 0x6c]
fstp dword [esp + 0x40]
or dword [eax + ecx], edx
jmp 0x1001cda0
fst dword [esp + 0x40]
fld dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
fstp dword [eax]
add ecx, 1
cmp ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
jb 0x1001c923
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov dword [eax + ecx], edx
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x60], eax
jb 0x1001c1cb
mov eax, dword [esp + 0x78]
add eax, 0xffffffff
cmp eax, 1
mov dword [esp + 0x4c], 1
jbe 0x1001d954
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x50]
mov ecx, dword [ecx + edx*4]
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
xor edx, edx
cmp dword [esp + 0xa8], edx
mov dword [esp + 0x60], edx
jbe 0x1001d93a
mov edi, 7
sub edi, dword [esp + 0x4c]
add edi, edi
add edi, edi
mov dword [esp + 0x7c], edi
jmp 0x1001ce41
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x28], eax
lea eax, [edx + 2]
imul eax, dword [esp + 0xc4]
add eax, dword [esp + 0x34]
add edx, 1
add eax, eax
add eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [eax + edi]
mov edi, edx
imul edi, dword [esp + 0xc4]
add edi, dword [esp + 0x34]
mov dword [esp + 0x5c], ecx
or ecx, eax
or ecx, dword [esp + 0x28]
add edi, edi
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x84]
add edi, edi
mov dword [esp + 0x44], eax
mov eax, dword [edi + ecx]
mov ecx, dword [esp + 0x7c]
shr eax, cl
mov dword [esp + 0x80], edx
mov dword [esp + 0x38], edi
and eax, 0xf
cmp eax, dword [0x1009bb40]
mov dword [esp + 0x58], eax
je 0x1001d922
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
shl ecx, 5
add edx, edx
add edx, edx
mov dword [esp + 0x70], ecx
add ecx, edx
imul ecx, dword [esp + 0xbc]
add ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x2c], ecx
lea ecx, [edx*4]
mov edx, ecx
mov ecx, 0x1b
sub ecx, edx
mov edx, dword [esp + 0x3c]
shr edx, cl
mov dword [esp + 0x30], 0xffffffff
test dl, 0x3f
jne 0x1001d441
test eax, eax
jne 0x1001d441
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
add eax, 0x11
mov dword [esp + 0x20], eax
movzx eax, byte [eax]
mov eax, dword [eax*4 + 0x1008a1b8]
mov edx, eax
mov ecx, esi
shr edx, 0x10
shr ecx, 0x10
add edi, 0x11
cmp ecx, edx
mov dword [esp + 0x24], edx
jb 0x1001cfa0
sub dword [esp + 0x14], edx
mov ecx, eax
and ecx, 0xffff0000
sub esi, ecx
mov ecx, dword [esp + 0x14]
test ecx, 0x8000
je 0x1001cf65
movzx ecx, byte [edi]
mov edi, dword [esp + 0x18]
jmp 0x1001d03d
cmp ecx, edx
jb 0x1001cf7b
mov edx, dword [esp + 0x20]
movzx ecx, byte [edi]
shr eax, 8
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001cfde
mov dl, byte [edi]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor cl, dl
mov edx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov byte [edi], cl
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001cfda
lea ecx, [edx + edx]
cmp dword [esp + 0x14], ecx
jae 0x1001cfb7
movzx ecx, byte [edi]
mov edi, dword [esp + 0x20]
shr eax, 8
mov byte [edi], al
jmp 0x1001cfde
mov dl, byte [edi]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor cl, dl
mov edx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov byte [edi], cl
mov byte [edx], al
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test ebp, ebp
jne 0x1001d022
cmp edi, dword [esp + 0x48]
je 0x1001d017
cmp bl, 0xff
mov bl, byte [edi]
je 0x1001d000
movzx eax, bl
shl eax, 8
add edi, 1
add esi, eax
jmp 0x1001d01d
add edi, 1
cmp bl, 0x8f
ja 0x1001d017
movzx eax, bl
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001d022
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001cfe2
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
test ecx, ecx
je 0x1001d922
movzx ecx, byte [0x1009bb46]
mov eax, dword [ecx*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001d0ca
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001d08b
movzx ecx, byte [0x1009ff34]
jmp 0x1001d16c
cmp edx, ecx
jb 0x1001d09b
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001d10c
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
jmp 0x1001d10c
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001d0df
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001d108
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
and al, 0x7f
mov edx, dword [esp + 0x24]
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001d151
cmp edi, dword [esp + 0x48]
je 0x1001d146
cmp bl, 0xff
mov bl, byte [edi]
je 0x1001d12f
movzx eax, bl
shl eax, 8
add edi, 1
add esi, eax
jmp 0x1001d14c
add edi, 1
cmp bl, 0x8f
ja 0x1001d146
movzx eax, bl
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001d151
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001d111
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
movzx edx, byte [0x1009bb46]
mov eax, dword [edx*4 + 0x1008a1b8]
add ecx, ecx
mov dword [esp + 0x30], ecx
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001d1f7
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001d1b8
movzx ecx, byte [0x1009ff34]
jmp 0x1001d299
cmp edx, ecx
jb 0x1001d1c8
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001d239
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
jmp 0x1001d239
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001d20c
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001d235
mov dl, byte [0x1009ff34]
mov edi, dword [esp + 0x18]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
and al, 0x7f
mov edx, dword [esp + 0x24]
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001d27e
cmp edi, dword [esp + 0x48]
je 0x1001d273
cmp bl, 0xff
mov bl, byte [edi]
je 0x1001d25c
movzx eax, bl
shl eax, 8
add edi, 1
add esi, eax
jmp 0x1001d279
add edi, 1
cmp bl, 0x8f
ja 0x1001d273
movzx eax, bl
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001d27e
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001d23e
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], bl
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x4c]
or edx, ecx
mov ecx, edx
imul ecx, dword [esp + 0xbc]
add dword [esp + 0x2c], ecx
add eax, eax
add eax, eax
lea ecx, [edx + eax]
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x30], edx
or ecx, eax
or dword [esp + 0x3c], ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x68]
mov edi, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
movzx edx, byte [eax + 9]
add eax, 9
mov dword [esp + 0x20], eax
mov eax, dword [edx*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
add edi, 9
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001d368
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001d32a
cmp byte [edi], 0
setne cl
jmp 0x1001d40a
cmp edx, ecx
jb 0x1001d33f
cmp byte [edi], 0
mov edi, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edi], al
jmp 0x1001d3a9
mov cl, byte [edi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
mov byte [edi], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
mov byte [ecx], al
mov cl, byte [esp + 0x12]
jmp 0x1001d3a9
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001d382
cmp byte [edi], 0
mov edx, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edx], al
jmp 0x1001d3a5
mov cl, byte [edi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov byte [edi], dl
mov byte [ecx], al
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
test ebp, ebp
jne 0x1001d3ef
cmp eax, edi
je 0x1001d3e4
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001d3cd
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001d3ea
add eax, 1
cmp bl, 0x8f
ja 0x1001d3e4
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001d3ef
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001d3b1
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test cl, cl
mov edi, dword [esp + 0x38]
je 0x1001d427
mov edx, dword [esp + 0x1c]
fld st(0)
mov eax, dword [esp + 0x6c]
fchs
or dword [edi + eax], edx
fstp dword [esp + 0x40]
jmp 0x1001d42b
fst dword [esp + 0x40]
mov eax, dword [esp + 0xb8]
fld dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
fstp dword [eax + ecx*4]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
add edx, edx
add edx, edx
mov ecx, 0x1c
sub ecx, edx
mov edx, dword [esp + 0x50]
mov edx, dword [edi + edx]
shr edx, cl
mov ecx, dword [esp + 0x30]
and edx, 0xf
or eax, edx
mov edx, dword [esp + 0x4c]
add edx, edx
mov dword [esp + 0x58], eax
add edx, edx
lea eax, [ecx + edx]
add eax, dword [esp + 0x70]
add ecx, 1
imul eax, dword [esp + 0xbc]
add eax, dword [esp + 0x60]
cmp ecx, 4
jae 0x1001d917
add edx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0xb8]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x30], eax
lea eax, [ecx + edx*4 + 0x1009bb48]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
lea eax, [edx*4]
mov dword [esp + 0x70], eax
mov eax, 4
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x58]
add eax, eax
add eax, eax
add dword [esp + 0x30], eax
cmp byte [ecx], 0
jne 0x1001d8fb
mov edx, dword [esp + 0x70]
mov edx, dword [edx + 0x1009ba30]
test dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edx
je 0x1001d547
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x5c]
mov edi, edx
and edi, dword [esp + 0x28]
and edx, dword [esp + 0x44]
shr eax, cl
shr edi, cl
shr edx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edi
add eax, eax
add eax, eax
add eax, eax
or eax, edx
cmp dword [esp + 0x2c], 0x1f
mov dword [esp + 0x54], eax
jne 0x1001d53b
add eax, eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + eax*4]
jmp 0x1001d54d
xor eax, eax
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
mov edi, dword [edx + 4]
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 + 0x24], edx
jb 0x1001d5da
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001d5a0
cmp byte [edi], 0
mov bl, byte [esp + 0x13]
setne dl
jmp 0x1001d675
cmp ebx, edx
jb 0x1001d5b5
cmp byte [edi], 0
setne dl
shr eax, 8
mov byte [ecx], al
mov ecx, dword [esp + 0x14]
jmp 0x1001d610
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
and al, 0x7f
mov byte [edi], bl
mov byte [ecx], al
mov ecx, dword [esp + 0x14]
jmp 0x1001d610
add edx, edx
cmp dword [esp + 0x14], edx
jae 0x1001d5ed
cmp byte [edi], 0
setne dl
shr eax, 8
jmp 0x1001d60a
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 byte [ecx], al
mov ecx, dword [esp + 0x24]
mov bl, byte [esp + 0x13]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
test ebp, ebp
jne 0x1001d65a
cmp eax, edi
je 0x1001d64f
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001d638
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001d655
add eax, 1
cmp bl, 0x8f
ja 0x1001d64f
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001d65a
add esi, 0xff00
mov ebp, 8
add ecx, ecx
add esi, esi
sub ebp, 1
test ecx, 0x8000
je 0x1001d61c
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test dl, dl
je 0x1001d8f7
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x1c]
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x28]
or ecx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
or eax, ecx
test eax, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x3c], eax
je 0x1001d785
mov eax, dword [esp + 0x60]
imul eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x38]
mov edi, dword [edx + ecx]
add eax, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov edx, dword [edx + ecx]
mov eax, dword [ecx + eax*4]
mov ecx, edx
or ecx, edi
or ecx, eax
test ebx, ecx
mov ecx, dword [esp + 0x54]
je 0x1001d769
mov ebx, dword [esp + 0x2c]
and ecx, 0xaa
cmp ebx, 0x1f
mov dword [esp + 0x24], ecx
je 0x1001d738
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 + 0xb4]
or ecx, eax
mov ecx, dword [edx + ecx*4]
mov al, cl
and al, 1
mov byte [esp + 0x12], al
shr ecx, 1
jmp 0x1001d78f
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 + 0xb4]
or ecx, eax
mov ecx, dword [edx + ecx*4]
mov al, cl
and al, 1
mov byte [esp + 0x12], al
shr ecx, 1
jmp 0x1001d78f
mov edx, dword [esp + 0xb4]
and ecx, 0xaa
mov ecx, dword [edx + ecx*4]
mov al, cl
and al, 1
mov byte [esp + 0x12], al
shr ecx, 1
jmp 0x1001d78f
mov ecx, 9
mov byte [esp + 0x12], 0
mov eax, dword [esp + 0x68]
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 + 0x24], ecx
jb 0x1001d822
sub dword [esp + 0x14], ecx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001d7e5
mov cl, byte [edi]
xor cl, byte [esp + 0x12]
mov bl, byte [esp + 0x13]
setne cl
jmp 0x1001d8c0
cmp ebx, ecx
mov cl, byte [edi]
jb 0x1001d7fd
xor cl, byte [esp + 0x12]
setne cl
shr eax, 8
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001d85b
xor cl, byte [esp + 0x12]
xor cl, 1
setne byte [esp + 0x12]
mov cl, al
and cl, 1
xor cl, byte [edi]
shr eax, 1
mov byte [edi], cl
mov cl, byte [esp + 0x12]
and al, 0x7f
mov byte [edx], al
mov edx, dword [esp + 0x14]
jmp 0x1001d85b
add ecx, ecx
cmp dword [esp + 0x14], ecx
mov cl, byte [edi]
jae 0x1001d838
xor cl, byte [esp + 0x12]
setne cl
shr eax, 8
jmp 0x1001d855
xor cl, byte [esp + 0x12]
xor cl, 1
setne byte [esp + 0x12]
mov cl, al
and cl, 1
xor cl, byte [edi]
shr eax, 1
mov byte [edi], cl
mov cl, byte [esp + 0x12]
and al, 0x7f
mov byte [edx], al
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
mov bl, byte [esp + 0x13]
test ebp, ebp
jne 0x1001d8a5
cmp eax, edi
je 0x1001d89a
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001d883
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001d8a0
add eax, 1
cmp bl, 0x8f
ja 0x1001d89a
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001d8a5
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001d867
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test cl, cl
mov edi, dword [esp + 0x38]
je 0x1001d8e7
mov edx, dword [esp + 0x40]
fld st(0)
mov eax, dword [esp + 0x6c]
fchs
or dword [edi + eax], edx
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
mov eax, dword [esp + 0x30]
fstp dword [eax]
jmp 0x1001d8fb
mov eax, dword [esp + 0x30]
fst dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [eax]
jmp 0x1001d8fb
mov edi, dword [esp + 0x38]
add dword [esp + 0x70], 4
mov eax, 1
add dword [esp + 0x58], eax
add dword [esp + 0x2c], eax
sub dword [esp + 0x20], eax
jne 0x1001d4ca
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
mov dword [edi + ecx], edx
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
jb 0x1001ce39
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x78]
add ecx, 1
add eax, 0xffffffff
cmp ecx, eax
mov dword [esp + 0x4c], ecx
jb 0x1001ce02
cmp dword [esp + 0x78], 1
jbe 0x1001e6a3
mov edx, dword [esp + 0x34]
mov edi, edx
neg edi
lea ecx, [eax*4]
shl edi, 5
sub edi, ecx
mov ecx, dword [esp + 0xac]
add ecx, edi
cmp ecx, 4
mov dword [esp + 0x4c], 4
jae 0x1001d98d
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x28], edx
mov edx, dword [ecx]
mov dword [esp + 0x44], edx
xor edx, edx
cmp dword [esp + 0xa8], edx
mov dword [esp + 0x60], edx
jbe 0x1001e6a3
lea ecx, [eax*4]
mov eax, 0x1c
sub eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
shl eax, 5
mov dword [esp + 0x70], eax
add eax, ecx
imul eax, dword [esp + 0xbc]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xc4]
add eax, 0xffffffff
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
lea eax, [edx + 2]
imul eax, dword [esp + 0xc4]
add eax, dword [esp + 0x34]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x50]
add eax, eax
add eax, eax
mov dword [esp + 0x74], eax
mov eax, dword [eax + ecx]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x84]
lea eax, [edx + 1]
mov dword [esp + 0x80], eax
imul eax, dword [esp + 0xc4]
add eax, dword [esp + 0x34]
mov dword [esp + 0x28], edi
add eax, eax
add eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [eax + ecx]
mov ecx, dword [esp + 0x7c]
shr eax, cl
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x12], 0
and eax, 0xf
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x90]
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x54]
mov edx, dword [eax*4 + 0x1009ba30]
mov ecx, dword [eax*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], ecx
shr eax, cl
mov ecx, edx
and edx, dword [esp + 0x44]
and ecx, edi
mov edi, dword [esp + 0x54]
add eax, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [edi*4 + 0x1009bab0]
mov edi, dword [esp + 0x64]
add eax, eax
shr edi, cl
add eax, eax
or eax, edi
mov edi, dword [esp + 0x54]
mov ecx, dword [edi*4 + 0x1009bab0]
add eax, eax
add eax, eax
shr edx, cl
add eax, eax
or eax, edx
cmp edi, 0x1f
jne 0x1001dad5
add eax, eax
test eax, eax
je 0x1001dade
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 + 0x5c]
mov dword [esp + 0x1c], edx
and edx, dword [esp + 0x28]
shr eax, cl
shr edx, cl
mov dword [esp + 0x3c], ecx
add eax, eax
add eax, eax
add eax, eax
or eax, edx
mov edx, dword [esp + 0x1c]
and edx, dword [esp + 0x44]
add eax, eax
shr edx, cl
add eax, eax
add eax, eax
lea ecx, [edi + 1]
or eax, edx
cmp ecx, 0x1f
jne 0x1001db29
add eax, eax
test eax, eax
je 0x1001db32
mov byte [esp + 0x12], 1
mov edx, dword [edi*4 + 0x1009ba38]
mov ecx, dword [edi*4 + 0x1009bab8]
mov eax, edx
and eax, dword [esp + 0x5c]
add edi, 2
mov edi, edx
and edx, dword [esp + 0x44]
and edi, dword [esp + 0x28]
mov dword [esp + 0x24], edx
mov edx, eax
shr edx, cl
mov dword [esp + 0x64], edi
shr edi, cl
mov dword [esp + 0x3c], ecx
add edx, edx
add edx, edx
add edx, edx
or edx, edi
mov edi, dword [esp + 0x24]
add edx, edx
shr edi, cl
mov ecx, dword [esp + 0x54]
add edx, edx
add edx, edx
add ecx, 2
or edx, edi
cmp ecx, 0x1f
jne 0x1001db89
add edx, edx
test edx, edx
je 0x1001db92
mov byte [esp + 0x12], 1
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x40]
je 0x1001dc05
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + edx + 4]
mov edi, dword [esp + 0x74]
mov edi, dword [edi + edx + 4]
and eax, 0x8fffffff
shr edi, 3
or eax, edi
mov edi, dword [esp + 0x60]
imul edi, dword [esp + 0xc4]
add edi, ecx
mov ecx, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x5c]
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 + 0x44]
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 0x1001dc3f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
add ecx, 3
mov ecx, dword [ecx*4 + 0x1009bab0]
shr eax, cl
shr edx, cl
add eax, eax
add eax, eax
add eax, eax
or eax, edx
mov edx, dword [esp + 0x24]
add eax, eax
shr edx, cl
mov ecx, dword [esp + 0x54]
add eax, eax
add eax, eax
add ecx, 3
or eax, edx
cmp ecx, 0x1f
jne 0x1001dc3f
add eax, eax
test eax, eax
jne 0x1001e146
cmp byte [esp + 0x12], al
jne 0x1001e146
cmp dword [esp + 0x4c], 4
jne 0x1001e146
cmp dword [esp + 0x58], eax
jne 0x1001e146
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
movzx edx, byte [eax + 0x11]
mov edi, dword [ecx + 4]
add eax, 0x11
mov dword [esp + 0x20], eax
mov eax, dword [edx*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
add edi, 0x11
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001dced
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001dcbc
movzx edi, byte [edi]
mov edx, dword [esp + 0x18]
jmp 0x1001dd8d
cmp edx, ecx
jb 0x1001dcce
mov ecx, dword [esp + 0x20]
movzx edi, byte [edi]
shr eax, 8
mov byte [ecx], al
jmp 0x1001dd29
mov dl, byte [edi]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor cl, dl
shr eax, 1
mov byte [edi], cl
mov edi, dword [esp + 0x1c]
and al, 0x7f
jmp 0x1001dd23
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001dcfe
movzx edi, byte [edi]
shr eax, 8
jmp 0x1001dd1f
mov dl, byte [edi]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor cl, dl
mov byte [edi], cl
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
shr eax, 1
and al, 0x7f
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x20]
mov byte [edx], al
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
test ebp, ebp
jne 0x1001dd73
cmp edx, ecx
je 0x1001dd68
cmp bl, 0xff
mov bl, byte [edx]
je 0x1001dd51
movzx ebp, bl
shl ebp, 8
add edx, 1
add esi, ebp
jmp 0x1001dd6e
add edx, 1
cmp bl, 0x8f
ja 0x1001dd68
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001dd73
add esi, 0xff00
mov ebp, 8
add eax, eax
add esi, esi
sub ebp, 1
test eax, 0x8000
je 0x1001dd35
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov byte [esp + 0x13], bl
test edi, edi
je 0x1001e68b
movzx eax, byte [0x1009bb46]
mov eax, dword [eax*4 + 0x1008a1b8]
mov edi, eax
mov ecx, esi
shr edi, 0x10
shr ecx, 0x10
cmp ecx, edi
jb 0x1001de3d
sub dword [esp + 0x14], edi
mov ecx, eax
and ecx, 0xffff0000
sub esi, ecx
mov ecx, dword [esp + 0x14]
test ecx, 0x8000
je 0x1001dddd
mov cl, byte [0x1009ff34]
movzx eax, cl
jmp 0x1001de99
cmp ecx, edi
mov cl, byte [0x1009ff34]
jb 0x1001ddf7
movzx edi, cl
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
shr eax, 8
jmp 0x1001de1a
mov edi, dword [esp + 0x14]
movzx edx, cl
xor edx, 1
mov dword [esp + 0x1c], edx
mov dl, al
and dl, 1
xor cl, dl
shr eax, 1
and al, 0x7f
mov byte [0x1009ff34], cl
mov edx, dword [esp + 0x18]
mov byte [0x1009bb46], al
test ebp, ebp
jne 0x1001de7a
cmp edx, dword [esp + 0x48]
je 0x1001de6f
cmp bl, 0xff
mov bl, byte [edx]
je 0x1001de58
movzx eax, bl
shl eax, 8
add edx, 1
add esi, eax
jmp 0x1001de75
lea ecx, [edi + edi]
cmp dword [esp + 0x14], ecx
mov cl, byte [0x1009ff34]
jae 0x1001ddfb
movzx edx, cl
mov dword [esp + 0x1c], edx
shr eax, 8
jmp 0x1001de16
add edx, 1
cmp bl, 0x8f
ja 0x1001de6f
movzx eax, bl
shl eax, 9
add esi, eax
mov ebp, 7
jmp 0x1001de7a
add esi, 0xff00
mov ebp, 8
add edi, edi
add esi, esi
sub ebp, 1
test edi, 0x8000
je 0x1001de1f
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov byte [esp + 0x13], bl
lea edx, [eax + eax]
movzx eax, byte [0x1009bb46]
mov eax, dword [eax*4 + 0x1008a1b8]
mov dword [esp + 0x30], edx
mov edi, eax
mov edx, esi
shr edi, 0x10
shr edx, 0x10
cmp edx, edi
jb 0x1001df0f
sub dword [esp + 0x14], edi
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001dede
movzx ecx, cl
jmp 0x1001dfb1
cmp edx, edi
jb 0x1001deea
movzx ecx, cl
shr eax, 8
jmp 0x1001df4b
movzx edx, cl
xor edx, 1
mov dword [esp + 0x1c], edx
mov dl, al
and dl, 1
xor cl, dl
mov edx, dword [esp + 0x14]
shr eax, 1
mov byte [0x1009ff34], cl
mov ecx, dword [esp + 0x1c]
and al, 0x7f
jmp 0x1001df4b
lea ecx, [edi + edi]
cmp dword [esp + 0x14], ecx
jae 0x1001df24
movzx ecx, byte [0x1009ff34]
shr eax, 8
jmp 0x1001df49
mov dl, byte [0x1009ff34]
movzx ecx, dl
xor ecx, 1
mov dword [esp + 0x1c], ecx
mov cl, al
and cl, 1
xor dl, cl
mov ecx, dword [esp + 0x1c]
shr eax, 1
mov byte [0x1009ff34], dl
and al, 0x7f
mov edx, edi
mov edi, dword [esp + 0x48]
mov byte [0x1009bb46], al
mov eax, dword [esp + 0x18]
test ebp, ebp
jne 0x1001df96
cmp eax, edi
je 0x1001df8b
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001df74
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001df91
add eax, 1
cmp bl, 0x8f
ja 0x1001df8b
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001df96
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001df58
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
mov eax, dword [esp + 0x30]
or eax, ecx
mov ecx, dword [esp + 0x54]
add ecx, eax
mov edx, eax
imul edx, dword [esp + 0xbc]
add dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x68]
mov edi, dword [ecx + 4]
add edi, 9
or dword [esp + 0x28], eax
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
movzx edx, byte [eax + 9]
add eax, 9
mov dword [esp + 0x20], eax
mov eax, dword [edx*4 + 0x1008a1b8]
mov ecx, eax
mov edx, esi
shr ecx, 0x10
shr edx, 0x10
cmp edx, ecx
mov dword [esp + 0x24], ecx
jb 0x1001e071
sub dword [esp + 0x14], ecx
mov edx, eax
and edx, 0xffff0000
sub esi, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
je 0x1001e033
cmp byte [edi], 0
setne cl
jmp 0x1001e113
cmp edx, ecx
jb 0x1001e048
cmp byte [edi], 0
mov edi, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edi], al
jmp 0x1001e0b2
mov cl, byte [edi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
mov byte [edi], dl
mov edx, dword [esp + 0x14]
and al, 0x7f
mov byte [ecx], al
mov cl, byte [esp + 0x12]
jmp 0x1001e0b2
lea edx, [ecx + ecx]
cmp dword [esp + 0x14], edx
jae 0x1001e08b
cmp byte [edi], 0
mov edx, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edx], al
jmp 0x1001e0ae
mov cl, byte [edi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
and al, 0x7f
mov byte [edi], dl
mov byte [ecx], al
mov cl, byte [esp + 0x12]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
test ebp, ebp
jne 0x1001e0f8
cmp eax, edi
je 0x1001e0ed
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001e0d6
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001e0f3
add eax, 1
cmp bl, 0x8f
ja 0x1001e0ed
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001e0f8
add esi, 0xff00
mov ebp, 8
add edx, edx
add esi, esi
sub ebp, 1
test edx, 0x8000
je 0x1001e0ba
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test cl, cl
je 0x1001e130
mov eax, dword [esp + 0x6c]
fld st(0)
mov edx, dword [esp + 0x1c]
fchs
mov ecx, dword [esp + 0x38]
fstp dword [esp + 0x64]
or dword [ecx + eax], edx
jmp 0x1001e134
fst dword [esp + 0x64]
fld dword [esp + 0x64]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xb8]
fstp dword [ecx + eax*4]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov edx, dword [edx + eax]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x54]
shr edx, cl
mov ecx, dword [esp + 0x30]
add eax, ecx
add eax, dword [esp + 0x70]
and edx, 0xf
or dword [esp + 0x58], edx
mov edx, dword [esp + 0xbc]
imul eax, edx
add eax, dword [esp + 0x60]
add ecx, 1
cmp ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
jae 0x1001e67c
add edx, edx
add edx, edx
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0xb8]
lea eax, [edx + eax*4]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x58]
add dword [esp + 0x1c], edx
cmp byte [ecx + eax*4 + 0x1009bb48], 0
jne 0x1001e66b
mov edx, dword [esp + 0x54]
add edx, ecx
cmp ecx, 3
mov eax, dword [edx*4 + 0x1009ba30]
mov dword [esp + 0x3c], edx
jne 0x1001e25f
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x40]
je 0x1001e25f
cmp dword [esp + 0x78], 8
jne 0x1001e25f
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
mov edx, dword [edx + eax + 4]
mov edi, dword [esp + 0x38]
mov edi, dword [edi + eax + 4]
shr edx, 3
and edi, 0x8fffffff
or edx, edi
mov edi, dword [esp + 0x60]
imul edi, dword [esp + 0xc4]
add edi, ecx
mov eax, dword [eax + edi*4 + 4]
mov ecx, dword [esp + 0x5c]
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 + 0x44]
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 + 0xb0]
mov eax, dword [ecx + edx*4]
jmp 0x1001e2b3
mov ecx, dword [edx*4 + 0x1009bab0]
mov edx, eax
and edx, dword [esp + 0x5c]
mov edi, eax
and edi, dword [esp + 0x28]
and eax, dword [esp + 0x44]
shr edx, cl
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx*4 + 0x1009bab0]
shr edi, cl
add edx, edx
add edx, edx
add edx, edx
or edx, edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [edi*4 + 0x1009bab0]
add edx, edx
add edx, edx
shr eax, cl
add edx, edx
or edx, eax
cmp edi, 0x1f
jne 0x1001e2a9
add edx, edx
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + edx*4]
mov edi, dword [esp + 0x68]
mov ecx, dword [edi]
mov edi, dword [edi + 4]
add ecx, eax
mov dword [esp + 0x20], ecx
movzx ecx, byte [ecx]
add edi, eax
mov eax, dword [ecx*4 + 0x1008a1b8]
mov dword [esp + 0x2c], edi
mov ecx, eax
mov edi, esi
shr ecx, 0x10
shr edi, 0x10
cmp edi, ecx
mov dword [esp + 0x24], ecx
jb 0x1001e35b
sub dword [esp + 0x14], ecx
mov edi, eax
and edi, 0xffff0000
sub esi, edi
mov edi, dword [esp + 0x14]
test edi, 0x8000
je 0x1001e30d
mov eax, dword [esp + 0x2c]
cmp byte [eax], 0
setne cl
jmp 0x1001e406
cmp edi, ecx
jb 0x1001e32a
mov ecx, dword [esp + 0x2c]
cmp byte [ecx], 0
mov edi, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edi], al
mov edi, dword [esp + 0x14]
jmp 0x1001e3a7
mov edi, dword [esp + 0x2c]
mov cl, byte [edi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
mov byte [edi], bl
mov bl, byte [esp + 0x13]
mov edi, dword [esp + 0x14]
and al, 0x7f
mov byte [ecx], al
mov cl, byte [esp + 0x12]
jmp 0x1001e3a7
add ecx, ecx
cmp dword [esp + 0x14], ecx
jae 0x1001e378
mov ecx, dword [esp + 0x2c]
cmp byte [ecx], 0
mov edi, dword [esp + 0x20]
setne cl
shr eax, 8
mov byte [edi], al
jmp 0x1001e3a3
mov edi, dword [esp + 0x2c]
mov cl, byte [edi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
mov ecx, dword [esp + 0x20]
shr eax, 1
mov byte [edi], bl
mov bl, byte [esp + 0x13]
and al, 0x7f
mov byte [ecx], al
mov cl, byte [esp + 0x12]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
test ebp, ebp
jne 0x1001e3eb
cmp eax, dword [esp + 0x48]
je 0x1001e3e0
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001e3c9
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001e3e6
add eax, 1
cmp bl, 0x8f
ja 0x1001e3e0
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001e3eb
add esi, 0xff00
mov ebp, 8
add edi, edi
add esi, esi
sub ebp, 1
test edi, 0x8000
je 0x1001e3ab
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test cl, cl
je 0x1001e667
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov eax, 0x80000000
shr eax, cl
mov ecx, dword [esp + 0x6c]
mov edi, dword [edi + ecx]
mov dword [esp + 0x2c], edi
or dword [esp + 0x28], eax
mov edi, dword [esp + 0x74]
mov edi, dword [edi + ecx]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
imul eax, dword [esp + 0xc4]
add eax, ebx
cmp ebx, dword [esp + 0x40]
mov eax, dword [ecx + eax*4]
je 0x1001e49d
cmp dword [esp + 0x30], 3
jne 0x1001e49d
cmp dword [esp + 0x78], 8
jne 0x1001e49d
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x38]
and eax, 1
add eax, eax
add eax, eax
add eax, eax
and ecx, 2
or eax, ecx
mov ecx, dword [esp + 0x6c]
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 0x1001e4f6
mov ebx, dword [esp + 0x3c]
and edx, 0xaa
cmp ebx, 0x1f
mov dword [esp + 0x24], edx
je 0x1001e4d7
mov edx, dword [esp + 0x2c]
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 0x1001e4eb
mov ecx, dword [esp + 0x2c]
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 + 0xb4]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x68]
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 + 0x24], edx
jb 0x1001e596
sub dword [esp + 0x14], edx
mov ebx, eax
and ebx, 0xffff0000
sub esi, ebx
mov ebx, dword [esp + 0x14]
test ebx, 0x8000
je 0x1001e561
mov al, byte [edi]
xor al, byte [esp + 0x12]
mov bl, byte [esp + 0x13]
setne dl
jmp 0x1001e63c
cmp ebx, edx
mov dl, byte [edi]
jb 0x1001e575
xor dl, byte [esp + 0x12]
setne dl
shr eax, 8
mov byte [ecx], al
jmp 0x1001e5d3
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
mov byte [ecx], al
jmp 0x1001e5d3
add edx, edx
cmp dword [esp + 0x14], edx
mov dl, byte [edi]
jae 0x1001e5ac
xor dl, byte [esp + 0x12]
setne dl
shr eax, 8
jmp 0x1001e5c9
xor dl, byte [esp + 0x12]
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, byte [edi]
shr eax, 1
mov byte [edi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
mov byte [ecx], al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov bl, byte [esp + 0x13]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
test ebp, ebp
jne 0x1001e621
cmp eax, edi
je 0x1001e616
cmp bl, 0xff
mov bl, byte [eax]
je 0x1001e5ff
movzx ebp, bl
shl ebp, 8
add eax, 1
add esi, ebp
jmp 0x1001e61c
add eax, 1
cmp bl, 0x8f
ja 0x1001e616
movzx ebp, bl
shl ebp, 9
add esi, ebp
mov ebp, 7
jmp 0x1001e621
add esi, 0xff00
mov ebp, 8
add ecx, ecx
add esi, esi
sub ebp, 1
test ecx, 0x8000
je 0x1001e5e3
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x13], bl
test dl, dl
je 0x1001e659
mov edx, dword [esp + 0x64]
fld st(0)
mov ecx, dword [esp + 0x6c]
fchs
mov eax, dword [esp + 0x38]
fstp dword [esp + 0x64]
or dword [eax + ecx], edx
jmp 0x1001e65d
fst dword [esp + 0x64]
fld dword [esp + 0x64]
mov eax, dword [esp + 0x1c]
fstp dword [eax]
mov ecx, dword [esp + 0x30]
add ecx, 1
cmp ecx, dword [esp + 0x4c]
mov dword [esp + 0x30], ecx
jb 0x1001e1a4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x50]
mov dword [edx + eax], ecx
mov edx, dword [esp + 0x80]
cmp edx, dword [esp + 0xa8]
mov dword [esp + 0x60], edx
jb 0x1001d9f5
mov eax, dword [esp + 0x34]
add eax, 1
cmp eax, dword [esp + 0xc4]
mov dword [esp + 0x34], eax
jl 0x1001c122
mov eax, dword [esp + 0xc0]
fstp st(0)
mov ecx, dword [esp + 0x14]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], esi
mov esi, dword [eax + 0x14]
mov edx, ecx
sub edx, dword [esp + 0x94]
mov byte [eax + 0xc], bl
mov dword [eax + 0x10], ebp
pop edi
mov dword [esi + 8], edx
mov eax, dword [eax + 0x14]
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x88
ret
pop edi
fstp st(0)
pop esi
pop ebp
pop ebx
add esp, 0x88
ret