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

Disassembly:
sub esp, 0x80
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x58], edx
mov edx, dword [eax + 8]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x74], edx
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 8]
mov dword [esp + 4], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x9c]
push ebx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x80], edx
mov edx, dword [ecx + 4]
push ebp
add eax, 3
mov dword [esp + 0x14], edx
mov dl, byte [ecx + 0xc]
mov ecx, dword [ecx + 0x18]
sar eax, 2
cmp dword [esp + 0xbc], 0
push esi
push edi
mov byte [esp + 0x13], dl
mov dword [esp + 0x78], ecx
mov dword [esp + 0x88], eax
mov dword [esp + 0x28], 0
jbe 0x1001c039
fld dword [esp + 0xa4]
fld dword [esp + 0xa0]
fldz
mov ecx, dword [esp + 0x88]
cmp ecx, 8
jl 0x1001b4a9
mov eax, 8
jmp 0x1001b4b7
mov eax, ecx
and eax, 0x80000007
jns 0x1001b4b7
dec eax
or eax, 0xfffffff8
inc eax
sub ecx, eax
test eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x88], ecx
je 0x1001c07f
cmp eax, 1
mov ebp, dword [esp + 0x28]
jle 0x1001b4df
mov dword [esp + 0x30], 4
jmp 0x1001b4f1
mov eax, dword [esp + 0xac]
mov edx, ebp
shl edx, 5
sub eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x48]
mov esi, dword [eax + ebp*4]
mov ecx, dword [esp + 0xc4]
add ebp, ecx
add ebp, ebp
add ebp, ebp
cmp dword [esp + 0xa8], 0
mov edi, dword [eax + ebp]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x34], 0
jle 0x1001b882
mov ebx, dword [esp + 0xc4]
mov edx, eax
mov eax, dword [esp + 0x28]
lea ecx, [edx + eax*4 - 4]
lea eax, [eax + ebx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x68]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x80]
add ecx, ebp
sub eax, dword [esp + 0x68]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x70], eax
jmp 0x1001b564
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x38]
mov eax, dword [eax + ecx]
mov dword [esp + 0x50], esi
mov esi, edi
mov edi, dword [edx]
mov edx, dword [ecx]
shr eax, 0x1c
shr edx, 0x1c
xor ebx, ebx
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edx
jle 0x1001b84d
jmp 0x1001b5a1
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
cmp byte [ebx + eax*4 + 0x1009bb48], 0
je 0x1001b838
cmp byte [ebx + edx*4 + 0x1009bb48], 0
je 0x1001b5c3
mov eax, 0x10
jmp 0x1001b67f
cmp dword [esp + 0x28], 0
mov edx, dword [ebx*4 + 0x1009ba30]
je 0x1001b62c
test ebx, ebx
jne 0x1001b62c
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
mov eax, dword [ecx + eax - 4]
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx]
mov edx, dword [esp + 0x38]
and ecx, 1
add ecx, ecx
and eax, 1
add ecx, ecx
add ecx, ecx
or eax, ecx
mov ecx, dword [edx - 4]
mov edx, dword [esp + 0x50]
add eax, eax
add eax, eax
and esi, 0xc7ffffff
add eax, eax
shr edi, 3
or esi, edi
and ecx, 1
or eax, ecx
shr esi, 3
and edx, 0xc0ffffff
add eax, eax
or esi, edx
add eax, eax
shr esi, 0x18
or eax, esi
jmp 0x1001b65c
mov ecx, dword [ebx*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x50]
mov ebp, edx
shr eax, cl
and ebp, esi
shr ebp, cl
and edx, edi
add eax, eax
add eax, eax
add eax, eax
or eax, ebp
add eax, eax
add eax, eax
shr edx, cl
add eax, eax
or eax, edx
cmp ebx, 0x1f
jne 0x1001b65c
add eax, eax
mov edx, dword [esp + 0xb0]
xor ecx, ecx
cmp dword [edx + eax*4], ecx
mov edx, 0x80000000
setne cl
add ecx, 0xe
mov eax, ecx
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x2c]
or dword [ecx], edx
mov edx, dword [esp + 0x84]
mov ecx, ebx
mov esi, 0x80000000
shr esi, cl
mov ecx, dword [esp + 0x20]
or dword [ecx + edx], esi
mov ecx, dword [esp + 0x78]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
add edi, eax
add esi, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x1008a1b8]
mov ebp, eax
mov edx, ecx
shr ebp, 0x10
shr edx, 0x10
cmp edx, ebp
jb 0x1001b716
sub dword [esp + 0x14], ebp
mov edx, eax
and edx, 0xffff0000
sub ecx, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
mov dword [esp + 0x1c], ecx
je 0x1001b6e8
cmp byte [esi], 0
setne dl
jmp 0x1001b7c1
cmp edx, ebp
jb 0x1001b6f7
cmp byte [esi], 0
setne dl
shr eax, 8
jmp 0x1001b750
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
jmp 0x1001b74c
lea ecx, [ebp + ebp]
cmp dword [esp + 0x14], ecx
jae 0x1001b72b
cmp byte [esi], 0
setne dl
shr eax, 8
jmp 0x1001b748
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x58]
mov byte [edi], al
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x1001b7a2
cmp esi, ebp
je 0x1001b797
mov al, byte [esi]
add esi, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001b784
movzx eax, al
shl eax, 8
add ecx, eax
jmp 0x1001b79d
cmp al, 0x8f
ja 0x1001b797
movzx eax, al
shl eax, 9
add ecx, eax
mov eax, 7
jmp 0x1001b7a2
add ecx, 0xff00
mov eax, 8
add edi, edi
add ecx, ecx
sub eax, 1
test edi, 0x8000
je 0x1001b762
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0xb4]
shl ecx, 5
add ecx, ebx
imul ecx, dword [esp + 0xbc]
add ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
add ecx, ecx
add ecx, ecx
movzx edx, dl
fcom dword [ecx + esi]
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0xb8]
jp 0x1001b815
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul st(2)
fadd dword [ecx + esi]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [ecx + esi]
fadd st(3)
jmp 0x1001b831
fld dword [ecx + esi]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fst dword [ecx + esi]
fsub st(3)
mov esi, dword [esp + 0x44]
fstp dword [ecx + eax]
add ebx, 1
cmp ebx, dword [esp + 0x30]
jl 0x1001b599
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x34]
add eax, eax
add eax, eax
add dword [esp + 0x38], eax
add dword [esp + 0x20], eax
add dword [esp + 0x3c], eax
add edx, 1
add ecx, eax
cmp edx, dword [esp + 0xa8]
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], ecx
jl 0x1001b560
mov eax, dword [esp + 0x64]
add eax, 0xffffffff
cmp eax, 1
mov dword [esp + 0x30], 4
jle 0x1001bc01
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0xa8]
add eax, 0xffffffff
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x48]
test ebx, ebx
mov ecx, dword [eax + ebp]
mov edi, dword [eax + esi*4]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x34], 0
jle 0x1001bbf1
mov ebx, dword [esp + 0xc4]
mov edx, dword [esp + 0x68]
lea esi, [esi + ebx*2]
lea eax, [eax + esi*4]
mov esi, dword [esp + 0x80]
mov ecx, 0x1c
sub ecx, dword [esp + 0x30]
add edx, ebp
sub esi, dword [esp + 0x68]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x4c], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x70], esi
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [esi + edx]
shr eax, cl
mov dword [esp + 0x44], edi
and eax, 0xf
je 0x1001bbba
mov edx, dword [edx]
shr edx, cl
mov ecx, dword [esp + 0x30]
lea eax, [eax*4 + 0x1009bb48]
mov dword [esp + 0x38], 0
and edx, 0xf
mov dword [esp + 0x5c], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x60], eax
cmp byte [eax], 0
je 0x1001bb82
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x5c]
shl ebx, 5
add ebx, esi
imul ebx, dword [esp + 0xbc]
add ebx, dword [esp + 0x34]
cmp byte [edx + eax*4 + 0x1009bb48], 0
je 0x1001b98a
mov eax, 0x10
jmp 0x1001b9e8
mov edx, dword [esi*4 + 0x1009ba30]
mov ecx, dword [esi*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x50]
mov edi, edx
and edi, dword [esp + 0x44]
and edx, dword [esp + 0x40]
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 esi, 0x1f
jne 0x1001b9c5
add eax, eax
mov edx, dword [esp + 0xb0]
xor ecx, ecx
cmp dword [edx + eax*4], ecx
mov edx, 0x80000000
setne cl
add ecx, 0xe
mov eax, ecx
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x4c]
or dword [ecx], edx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
mov esi, 0x80000000
shr esi, cl
mov ecx, dword [esp + 0x3c]
or dword [ecx + edx], esi
mov ecx, dword [esp + 0x78]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
add edi, eax
add esi, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x1008a1b8]
mov ebp, eax
mov edx, ecx
shr ebp, 0x10
shr edx, 0x10
cmp edx, ebp
jb 0x1001ba81
sub dword [esp + 0x14], ebp
mov edx, eax
and edx, 0xffff0000
sub ecx, edx
mov edx, dword [esp + 0x14]
test edx, 0x8000
mov dword [esp + 0x1c], ecx
je 0x1001ba53
cmp byte [esi], 0
setne dl
jmp 0x1001bb2c
cmp edx, ebp
jb 0x1001ba62
cmp byte [esi], 0
setne dl
shr eax, 8
jmp 0x1001babb
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
jmp 0x1001bab7
lea ecx, [ebp + ebp]
cmp dword [esp + 0x14], ecx
jae 0x1001ba96
cmp byte [esi], 0
setne dl
shr eax, 8
jmp 0x1001bab3
mov cl, byte [esi]
mov dl, cl
xor dl, 1
setne byte [esp + 0x12]
mov dl, al
and dl, 1
xor dl, cl
shr eax, 1
mov byte [esi], dl
mov dl, byte [esp + 0x12]
and al, 0x7f
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x58]
mov byte [edi], al
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x1001bb09
cmp esi, edi
je 0x1001bafe
mov al, byte [esi]
add esi, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001baeb
movzx eax, al
shl eax, 8
add ecx, eax
jmp 0x1001bb04
cmp al, 0x8f
ja 0x1001bafe
movzx eax, al
shl eax, 9
add ecx, eax
mov eax, 7
jmp 0x1001bb09
add ecx, 0xff00
mov eax, 8
mov ebp, dword [esp + 0x14]
add ebp, ebp
add ecx, ecx
sub eax, 1
test ebp, 0x8000
mov dword [esp + 0x14], ebp
je 0x1001bac9
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0xb4]
fcom dword [ecx + ebx*4]
movzx edx, dl
fnstsw ax
test ah, 0x41
mov eax, dword [esp + 0xb8]
jp 0x1001bb63
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmul st(2)
fadd dword [ecx + ebx*4]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [ecx + ebx*4]
fadd st(3)
jmp 0x1001bb7f
fld dword [ecx + ebx*4]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [ecx + ebx*4]
fsub st(3)
fstp dword [eax + ebx*4]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x60]
add dword [esp + 0x20], 1
add ecx, 1
add eax, 1
cmp ecx, 4
mov dword [esp + 0x38], ecx
mov dword [esp + 0x60], eax
jl 0x1001b94f
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0xc4]
add dword [esp + 0x34], 1
mov ebx, dword [esp + 0xa8]
add eax, eax
add eax, eax
add dword [esp + 0x2c], eax
add dword [esp + 0x3c], eax
add edx, eax
cmp dword [esp + 0x34], ebx
mov dword [esp + 0x4c], edx
jl 0x1001b905
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
add dword [esp + 0x30], 4
sub dword [esp + 0x24], 1
jne 0x1001b8b0
cmp dword [esp + 0x64], 1
jle 0x1001c01b
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x28]
lea esi, [edx*4 - 4]
mov edi, esi
mov esi, dword [esp + 0xac]
mov eax, ecx
shl eax, 5
mov ebx, esi
sub ebx, edi
sub ebx, eax
cmp ebx, 4
mov dword [esp + 0x74], eax
jb 0x1001bc42
mov dword [esp + 0x30], 4
jmp 0x1001bc59
lea eax, [ecx*8]
mov edi, 1
sub edi, eax
sub edi, edx
lea edx, [esi + edi*4]
mov dword [esp + 0x30], edx
cmp dword [esp + 0xa8], 0
mov eax, dword [esp + 0x48]
mov edi, dword [eax + ecx*4]
mov ebx, dword [eax + ebp]
mov dword [esp + 0x34], 0
jle 0x1001c01b
mov eax, dword [esp + 0x64]
lea ecx, [eax*4 - 4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc4]
lea edx, [ecx*4]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x48]
lea esi, [edx + eax*4 + 4]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x68]
lea eax, [eax + ecx*2]
lea ecx, [edx + eax*4]
mov edx, dword [esp + 0x80]
add esi, ebp
sub edx, dword [esp + 0x68]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x70], edx
jmp 0x1001bcdb
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x50], edi
mov edi, ebx
mov ebx, dword [eax]
mov eax, dword [esp + 0x2c]
mov edx, dword [edx + eax]
mov eax, dword [eax]
mov ecx, 0x1c
sub ecx, dword [esp + 0x24]
mov dword [esp + 0x44], edi
shr edx, cl
shr eax, cl
xor ecx, ecx
mov dword [esp + 0x40], ebx
and edx, 0xf
and eax, 0xf
test esi, esi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], ecx
jle 0x1001bfed
cmp byte [ecx + edx*4 + 0x1009bb48], 0
je 0x1001bfd6
cmp byte [ecx + eax*4 + 0x1009bb48], 0
mov edx, dword [esp + 0x24]
lea esi, [edx + ecx]
mov dword [esp + 0x18], esi
je 0x1001bd4e
mov eax, 0x10
jmp 0x1001be18
cmp ecx, 3
mov edx, dword [esi*4 + 0x1009ba30]
jne 0x1001bdc1
mov eax, dword [esp + 0xc4]
add eax, 0xffffffff
cmp dword [esp + 0x28], eax
je 0x1001bdc1
cmp dword [esp + 0x64], 8
jne 0x1001bdc1
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + ebp + 4]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x60]
and eax, 0x8fffffff
shr ecx, 3
or eax, ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x50]
and edx, 3
add edx, edx
add edx, edx
add edx, edx
and edi, 3
or edx, edi
add edx, edx
add edx, edx
shr eax, 3
add edx, edx
and ecx, 0x81ffffff
and ebx, 3
or eax, ecx
or edx, ebx
shr eax, 0x19
add edx, edx
or eax, edx
jmp 0x1001bdf1
mov ecx, dword [esi*4 + 0x1009bab0]
mov eax, edx
and eax, dword [esp + 0x50]
mov ebp, edx
shr eax, cl
and ebp, edi
shr ebp, cl
and edx, ebx
add eax, eax
add eax, eax
add eax, eax
or eax, ebp
add eax, eax
add eax, eax
shr edx, cl
add eax, eax
or eax, edx
cmp esi, 0x1f
jne 0x1001bdf1
add eax, eax
mov edx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x3c]
xor ecx, ecx
cmp dword [edx + eax*4], ecx
mov edx, 0x80000000
setne cl
add ecx, 0xe
mov eax, ecx
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x2c]
or dword [ecx], edx
mov ecx, esi
mov edx, 0x80000000
shr edx, cl
mov ecx, dword [esp + 0x84]
or dword [ecx + ebp], edx
mov ecx, dword [esp + 0x78]
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov edx, dword [esp + 0x1c]
add edi, eax
add esi, eax
movzx eax, byte [edi]
mov eax, dword [eax*4 + 0x1008a1b8]
mov ebp, eax
mov ecx, edx
shr ebp, 0x10
shr ecx, 0x10
cmp ecx, ebp
jb 0x1001beb1
mov ecx, dword [esp + 0x14]
mov ebx, eax
and ebx, 0xffff0000
sub ecx, ebp
sub edx, ebx
test ecx, 0x8000
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
je 0x1001be7f
cmp byte [esi], 0
setne bl
jmp 0x1001bf52
cmp ecx, ebp
jb 0x1001be8e
cmp byte [esi], 0
setne bl
shr eax, 8
jmp 0x1001bee5
mov cl, byte [esi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
mov ecx, dword [esp + 0x14]
shr eax, 1
mov byte [esi], bl
mov bl, byte [esp + 0x12]
and al, 0x7f
jmp 0x1001bee5
lea ecx, [ebp + ebp]
cmp dword [esp + 0x14], ecx
jae 0x1001bec6
cmp byte [esi], 0
setne bl
shr eax, 8
jmp 0x1001bee3
mov cl, byte [esi]
mov bl, cl
xor bl, 1
setne byte [esp + 0x12]
mov bl, al
and bl, 1
xor bl, cl
shr eax, 1
mov byte [esi], bl
mov bl, byte [esp + 0x12]
and al, 0x7f
mov ecx, ebp
mov esi, dword [esp + 0x58]
mov byte [edi], al
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x7c]
test eax, eax
jne 0x1001bf33
cmp esi, edi
je 0x1001bf28
mov al, byte [esi]
add esi, 1
cmp byte [esp + 0x13], 0xff
mov byte [esp + 0x13], al
je 0x1001bf15
movzx eax, al
shl eax, 8
add edx, eax
jmp 0x1001bf2e
cmp al, 0x8f
ja 0x1001bf28
movzx eax, al
shl eax, 9
add edx, eax
mov eax, 7
jmp 0x1001bf33
add edx, 0xff00
mov eax, 8
add ecx, ecx
add edx, edx
sub eax, 1
test ecx, 0x8000
je 0x1001bef3
mov dword [esp + 0x54], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], esi
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
add ecx, edx
imul ecx, dword [esp + 0xbc]
add ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xb4]
mov edi, dword [esp + 0x44]
add ecx, ecx
add ecx, ecx
fcom dword [ecx + edx]
fnstsw ax
test ah, 0x41
movzx eax, bl
mov ebx, dword [esp + 0x40]
jp 0x1001bfa4
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul st(2)
fadd dword [ecx + edx]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [ecx + edx]
fadd st(3)
jmp 0x1001bfc0
fld dword [ecx + edx]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fst dword [ecx + edx]
fsub st(3)
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x5c]
fstp dword [ecx + edx]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x3c]
add ecx, 1
cmp ecx, esi
mov dword [esp + 0x38], ecx
jl 0x1001bd21
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
add dword [esp + 0x20], eax
add dword [esp + 0x2c], eax
add dword [esp + 0x60], eax
add ecx, 1
add ebp, eax
cmp ecx, dword [esp + 0xa8]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], ebp
jl 0x1001bcd7
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, dword [esp + 0xc4]
mov dword [esp + 0x28], eax
jb 0x1001b496
fstp st(2)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0x14]
mov dl, byte [esp + 0x13]
mov esi, dword [eax + 0x14]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1c]
mov byte [eax + 0xc], dl
mov edx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x10], edx
mov edx, ecx
sub edx, dword [esp + 0x8c]
pop edi
mov dword [esi + 8], edx
mov eax, dword [eax + 0x14]
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x80
ret
pop edi
fstp st(2)
pop esi
fstp st(0)
pop ebp
fstp st(0)
pop ebx
add esp, 0x80
ret