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

Disassembly:
sub esp, 0x6c
push ebx
push ebp
push esi
mov esi, dword [0x91d3f0]
fld dword [esi + 0x18]
call fcn.0043bd30
fld dword [esi + 0x10]
push eax
call fcn.0043bd30
mov esi, dword [esp + 0x80]
fld dword [esi + 0x2cc]
push eax
call fcn.0043bd30
fld dword [esi + 0x2c4]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
add esp, 0x10
cmp eax, 0x64000
ja 0x6c6cc5
call fcn.00620800
test eax, eax
jne 0x6c6cce
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6c
ret
mov edx, dword [0x91cfa4]
mov cl, byte [esi]
mov al, byte [edx + 0xe]
cmp cl, al
push edi
je 0x6c7209
cmp dword [0xeebb30], 0xc
je 0x6c7209
cmp al, 1
mov edi, 1
je 0x6c7209
cmp al, 0xc
je 0x6c7209
cmp cl, byte [edx + 0xf]
jne 0x6c6d38
mov eax, dword [0x91d3f0]
cmp word [eax + 0x8c], 0xd
je 0x6c6d38
mov cl, byte [eax + 0x6d]
test cl, cl
jne 0x6c7209
mov cl, byte [eax + 0x6f]
test cl, cl
jne 0x6c7209
cmp word [edx + 0xc], di
jl 0x6c7209
push esi
call fcn.00865870
mov eax, dword [esp + 0x88]
push eax
push esi
call fcn.006c4380
fld dword [esi + 0x2c4]
add esp, 0xc
mov dword [esp + 0x5c], eax
call fcn.0043bd30
test eax, eax
jg 0x6c6d64
neg eax
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
fcomp dword [0x8d2d74]
fnstsw ax
test ah, 5
jnp 0x6c6dc8
fld dword [esi + 0x2cc]
call fcn.0043bd30
mov ecx, eax
test ecx, ecx
jle 0x6c6d90
mov dword [esp + 0x2c], ecx
jmp 0x6c6d98
mov edx, ecx
neg edx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
fcomp dword [0x8d2fe4]
fnstsw ax
test ah, 0x41
je 0x6c6dc8
test ecx, ecx
jg 0x6c6daf
neg ecx
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
mov dword [esp + 0x30], edi
fcomp dword [0x8d3c34]
fnstsw ax
test ah, 5
jp 0x6c6dd0
mov dword [esp + 0x30], 0
mov ecx, dword [0x91d3f0]
mov esi, dword [0x91cfa4]
mov eax, 0x7fffffff
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
nop
sub eax, 0
je 0x6c6e4f
dec eax
je 0x6c6e18
mov eax, dword [ecx + 0x434]
mov edx, dword [ecx + 0x7b4]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xb34]
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
jmp 0x6c6e8e
fld dword [ecx + 0x434]
fadd st(0), st(0)
fadd dword [ecx + 0x1c]
fmul dword [0x87b7ac]
fstp dword [esp + 0x14]
fld dword [ecx + 0x7b4]
fadd st(0), st(0)
fadd dword [ecx + 0x20]
fmul dword [0x87b7ac]
fstp dword [esp + 0x28]
fld dword [ecx + 0xb34]
fadd st(0), st(0)
fadd dword [ecx + 0x24]
jmp 0x6c6e84
fld dword [ecx + 0x1c]
fadd st(0), st(0)
fadd dword [ecx + 0x434]
fmul dword [0x87b7ac]
fstp dword [esp + 0x14]
fld dword [ecx + 0x20]
fadd st(0), st(0)
fadd dword [ecx + 0x7b4]
fmul dword [0x87b7ac]
fstp dword [esp + 0x28]
fld dword [ecx + 0x24]
fadd st(0), st(0)
fadd dword [ecx + 0xb34]
fmul dword [0x87b7ac]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x84]
xor ebx, ebx
test eax, eax
jle 0x6c71f7
nop
cmp dword [esp + 0x84], 0x12
jne 0x6c6eb8
cmp ebx, 4
je 0x6c6eb8
cmp ebx, 9
jne 0x6c71d9
lea eax, [ebx - 3]
cmp eax, 0x13
ja case.0x6c6ecb.4
movzx ecx, byte [eax + 0x6c7cac]
jmp dword [ecx*4 + 0x6c7ca4]
fld dword [esp + 0x50]
fadd dword [esp + 0x44]
fmul dword [0x870774]
fstp dword [esi + 0x38]
mov edx, dword [0x91cfa4]
fld dword [esp + 0x54]
fadd dword [esp + 0x48]
fmul dword [0x870774]
fstp dword [edx + 0x3c]
mov eax, dword [0x91cfa4]
fld dword [esp + 0x58]
fadd dword [esp + 0x4c]
fmul dword [0x870774]
fstp dword [eax + 0x40]
mov esi, dword [0x91cfa4]
movzx ebp, byte [ebx*2 + 0x925159]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x80]
add ebp, ecx
cmp word [edx + 0x2dc], 0x27b
jne 0x6c6f43
cmp ebx, 7
je 0x6c6f40
cmp ebx, 6
jne 0x6c6f43
add ebp, 8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x6c6f70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
call fcn.00667b80
mov esi, dword [0x91cfa4]
add esp, 0xc
test eax, eax
jne 0x6c71d3
fld dword [esp + 0x10]
call fcn.0043bd30
fld dword [esp + 0x14]
push eax
call fcn.0043bd30
fld dword [esi + 0x40]
push eax
call fcn.0043bd30
fld dword [esi + 0x38]
push eax
call fcn.0043bd30
push eax
call fcn.00644320
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x94]
add eax, 0xffffffed
add esp, 0x10
cmp eax, 4
ja case.default.0x6c6fb5
jmp dword [eax*4 + 0x6c7cc0]
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x6c7088
cmp ebx, 0xc
je 0x6c7018
cmp ebx, 0x10
je 0x6c6ff2
cmp ebx, 0x15
je 0x6c6ff2
movzx ecx, byte [ebx*2 + 0x925158]
mov edx, dword [esp + 0x80]
push ecx
push edx
call fcn.00864650
add esp, 8
jmp 0x6c704d
movzx ecx, byte [ebx*2 + 0x925158]
mov dword [esp + 0x64], 0x3e99999a
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea eax, [esp + 0x64]
jmp 0x6c703b
movzx ecx, byte [0x925170]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0xbe99999a
mov dword [esp + 0x78], 0
lea eax, [esp + 0x70]
mov edx, dword [esp + 0x80]
push eax
push ecx
push edx
call fcn.008647a0
add esp, 0xc
mov ecx, dword [0x91cfa4]
mov edx, dword [ecx + 0x38]
lea eax, [ebx + ebx*2]
shl eax, 2
mov dword [eax + ecx + 0x440], edx
mov ecx, dword [0x91cfa4]
mov esi, dword [ecx + 0x3c]
lea edx, [ebx + ebx*2 + 0x111]
mov dword [ecx + edx*4], esi
mov ecx, dword [0x91cfa4]
mov edx, dword [ecx + 0x40]
mov dword [eax + ecx + 0x448], edx
jmp 0x6c70bb
lea eax, [ebx + ebx*2]
shl eax, 2
mov ecx, dword [eax + esi + 0x440]
mov dword [esi + 0x38], ecx
mov ecx, dword [0x91cfa4]
lea edx, [ebx + ebx*2 + 0x111]
mov edx, dword [ecx + edx*4]
mov dword [ecx + 0x3c], edx
mov ecx, dword [0x91cfa4]
mov eax, dword [eax + ecx + 0x448]
mov dword [ecx + 0x40], eax
lea eax, [ebx - 1]
cmp eax, 0x14
ja case.0x6c70ce.3
movzx ecx, byte [eax + 0x6c7ce0]
jmp dword [ecx*4 + 0x6c7cd4]
mov esi, dword [0x91cfa4]
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x6c6f16
mov esi, dword [0x91cfa4]
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
jmp 0x6c6f16
cmp ebx, 2
je 0x6c714c
cmp ebx, 7
je 0x6c714c
cmp ebx, 0x15
je 0x6c714c
cmp ebx, 0x10
je 0x6c714c
cmp ebx, 0x11
je 0x6c714c
cmp ebx, 0x16
jmp 0x6c714a
cmp ebx, 0xc
je 0x6c714c
cmp ebx, 0x15
je 0x6c714c
cmp ebx, 0x10
jmp 0x6c714a
cmp ebx, 9
je 0x6c714c
cmp ebx, 4
jne case.default.0x6c6fb5
mov dword [esp + 0x18], 0x7fffffff
mov esi, dword [0x91cfa4]
fld dword [esp + 0x28]
fsub dword [esi + 0x3c]
call fcn.0043bd30
test eax, eax
jg 0x6c716c
neg eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fld st(0)
fmulp st(1)
fiadd dword [esp + 0x18]
fsqrt
call fcn.0043bd30
mov edi, eax
cmp edi, dword [esp + 0x38]
jge 0x6c718f
mov dword [esp + 0x38], edi
cmp edi, ebp
jge 0x6c71d3
cmp edi, dword [esp + 0x1c]
jge 0x6c71d3
mov eax, dword [esp + 0x94]
cmp eax, 0xfe
je 0x6c7213
cmp eax, 0xff
je 0x6c7367
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x24], edx
mov ecx, dword [0x91d3f0]
mov eax, dword [esp + 0x84]
inc ebx
cmp ebx, eax
jl 0x6c6ea0
cmp dword [esp + 0x1c], 0x7fffffff
jne 0x6c73a6
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, 3
mov dword [esp + 0x2c], eax
jl 0x6c6df0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6c
ret
mov eax, dword [esi + 0x38]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 0x40]
push edx
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
push eax
push ecx
push edx
mov dword [esp + 0x34], ecx
call fcn.006442f0
add esp, 0x10
mov esi, eax
mov eax, dword [0x91d3f0]
cmp dword [eax + 0x58], 0x4000
jle 0x6c72b0
mov ecx, dword [esp + 0x80]
movzx eax, word [eax + 0x60]
xor edx, edx
mov dx, word [ecx + 0xec]
push eax
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jb 0x6c72b0
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push esi
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6c72b0
mov edx, dword [0x91d3f0]
mov ecx, dword [esp + 0x88]
xor eax, eax
mov ax, word [edx + 0x60]
add ax, 0x8000
push 0x800
push eax
push ecx
call fcn.00643cb0
add esp, 0xc
mov esi, eax
mov edx, dword [0x91cfa4]
lea eax, [edi + 8]
cmp ebp, eax
mov word [edx + 0x406], si
jle 0x6c72c7
lea edi, [ebp - 8]
push edi
push esi
call fcn.0063c810
mov ecx, dword [0x91d3f0]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
push edi
push esi
fadd dword [esp + 0x30]
fstp dword [ecx + 0x10]
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0x7b4]
mov dword [eax + 0x14], edx
call fcn.0063c7f0
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
mov eax, dword [0x91d3f0]
add esp, 0x10
fadd dword [esp + 0x24]
fstp dword [eax + 0x18]
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x434], ecx
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0x14]
mov dword [eax + 0x7b4], edx
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x18]
mov dword [eax + 0xb34], ecx
mov edx, dword [0x91d3f0]
mov byte [edx + 0x6a], 4
mov eax, dword [0x91cfa4]
mov byte [eax + 0x630], bl
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6c
ret
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 0x40]
push ecx
mov ecx, dword [esi + 0x38]
push edx
push eax
push ecx
call fcn.006442f0
mov edx, dword [0x91cfa4]
add esp, 0x10
pop edi
mov word [edx + 0x406], ax
mov eax, dword [0x91cfa4]
pop esi
mov byte [eax + 0x630], bl
pop ebp
mov eax, 1
pop ebx
add esp, 0x6c
ret
cmp dword [ecx + 0x58], 0x2000
jle 0x6c73c1
cmp dword [esp + 0x1c], 0x20
jg 0x6c73c1
add dword [esp + 0x8c], 0x400
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
call fcn.006442f0
mov ebx, dword [esp + 0x50]
mov edx, dword [0x91cfa4]
mov ebp, dword [esp + 0x90]
mov byte [edx + 0x630], bl
mov esi, eax
mov eax, dword [esp + 0x4c]
push eax
push ebx
push ebp
call fcn.006c4120
add esp, 0x1c
test eax, eax
jne 0x6c753e
mov eax, dword [0x91d3f0]
cmp word [eax + 0x8c], 0xd
je 0x6c753e
mov cl, byte [ebp]
mov edx, dword [0x91cfa4]
cmp cl, byte [edx + 0x24]
je 0x6c753e
cmp dword [eax + 0x58], 0x5000
jle 0x6c753e
push 0xfffffda0
push ebp
lea edi, [eax + 0x14]
call fcn.006b3af0
mov dword [esp + 0x64], eax
fild dword [esp + 0x64]
add esp, 8
fcomp dword [edi]
fnstsw ax
test ah, 5
jp 0x6c753e
mov edi, dword [0x91d3f0]
fld dword [edi + 0x2c]
call fcn.0043bd30
test eax, eax
jg 0x6c7476
neg eax
cmp dword [edi + 0x58], eax
jle 0x6c753e
xor eax, eax
mov ax, word [edi + 0x60]
xor ecx, ecx
mov cx, word [ebp + 0xea]
push eax
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x20
jb 0x6c74e5
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x60]
push esi
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x20
ja 0x6c74e5
mov ecx, dword [0x91d3f0]
mov edi, dword [esp + 0x88]
xor edx, edx
mov dx, word [ecx + 0x60]
add dx, 0x8000
push 0x800
push edx
push edi
call fcn.00643cb0
add esp, 0xc
mov esi, eax
jmp 0x6c7545
cmp ebx, 0x10
je 0x6c753e
cmp ebx, 0x15
je 0x6c753e
mov edi, dword [esp + 0x88]
push esi
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x70
jb 0x6c7545
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push edi
push ecx
call fcn.006442a0
mov edx, dword [0x91d3f0]
mov bp, ax
xor eax, eax
mov ax, word [edx + 0x60]
push esi
push eax
call fcn.006442a0
add esp, 0x10
cmp ax, bp
jae 0x6c753a
mov esi, edi
jmp 0x6c7545
mov edi, esi
jmp 0x6c7545
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x60]
add eax, 8
cmp ebp, eax
jg 0x6c7556
mov ebp, eax
push ebp
push esi
call fcn.0063c810
mov ecx, dword [0x91d3f0]
mov dword [esp + 0x68], eax
fild dword [esp + 0x68]
push ebp
push esi
fadd dword [esp + 0x30]
fstp dword [ecx + 0x10]
mov eax, dword [0x91d3f0]
mov edx, dword [eax + 0x7b4]
mov dword [eax + 0x14], edx
call fcn.0063c7f0
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
mov eax, dword [0x91d3f0]
add esp, 0x10
fadd dword [esp + 0x24]
fstp dword [eax + 0x18]
mov eax, dword [esp + 0x94]
sub eax, 0
je 0x6c765d
dec eax
jne 0x6c735a
mov ecx, dword [0x91d3f0]
fld dword [ecx + 0x2c]
fcomp dword [0x8d3c30]
fnstsw ax
test ah, 5
jp 0x6c760a
cmp dword [ecx + 0x58], 0x1000
jge 0x6c760a
fld dword [ecx + 0x2c]
fmul dword [0x8d3038]
call fcn.0043bd30
mov edi, eax
mov eax, 0x55555556
imul edi
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
call fcn.0063c860
mov ecx, dword [0x91d3f0]
add esp, 4
add edi, eax
mov dword [esp + 0x90], edi
xor edx, edx
mov dx, word [ecx + 0x60]
add dx, 0x8000
push esi
push edx
call fcn.006442a0
add esp, 8
mov edi, eax
cmp di, 0x34
jbe 0x6c762c
mov edi, 0x34
push 6
call fcn.0063c860
mov ecx, eax
add ecx, 0xf
movzx eax, di
imul ecx, eax
mov eax, 0x66666667
imul ecx
mov eax, dword [0x91d3f0]
movzx eax, word [eax + 0x60]
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
jmp 0x6c77f3
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x80]
push ecx
push ebx
push ebp
call fcn.006c4120
add esp, 0xc
test eax, eax
jne 0x6c7b71
mov edx, dword [0x91d3f0]
fld dword [edx + 0x2c]
fcomp dword [0x8d3c30]
fnstsw ax
test ah, 5
jp 0x6c76c2
fld dword [edx + 0x7b4]
fcomp dword [0x8d2e5c]
fnstsw ax
test ah, 5
jp 0x6c76c2
movzx edx, word [edx + 0x60]
push edx
push esi
call fcn.006442a0
add esp, 8
cmp ax, 0x60
jae 0x6c7b71
mov edx, dword [0x91d3f0]
mov ax, word [edx + 0x8c]
movzx ecx, ax
cmp ecx, 0xb
je 0x6c7701
cmp ecx, 0xe
je 0x6c7701
cmp ax, 0xd
je 0x6c76f6
cmp dword [ebp + 0xe0], 0x800
jge 0x6c7703
mov al, byte [ebp]
mov ecx, dword [0x91cfa4]
cmp al, byte [ecx + 0x24]
jne 0x6c7703
mov dword [esp + 0x8c], 0
mov edi, esi
cmp word [ebp + 0x2dc], 0x298
jne 0x6c7710
mov edi, esi
fld dword [edx + 0x2c]
fcomp dword [0x879dc4]
fnstsw ax
test ah, 0x41
jne 0x6c7833
movzx edx, word [edx + 0x60]
push edi
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
ja 0x6c782d
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push esi
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x38
ja 0x6c782d
mov ecx, dword [0x91d3f0]
cmp dword [ecx + 0x58], 0x1000
jge 0x6c77a4
mov eax, dword [0x91cfa4]
mov dl, byte [ebp]
cmp dl, byte [eax + 0xf]
jne 0x6c77a4
fld dword [ecx + 0x2c]
fcomp dword [0x8d3030]
fnstsw ax
test ah, 0x41
jne 0x6c77a4
push 0x1000
call fcn.0063c8b0
mov ebx, dword [esp + 0x84]
mov edi, eax
add esp, 4
add edi, esi
jmp 0x6c79e6
movzx ecx, word [ecx + 0x60]
add cx, 0x8000
push esi
push ecx
call fcn.006442a0
add esp, 8
mov edi, eax
cmp di, 0x34
jbe 0x6c77c4
mov edi, 0x34
push 6
call fcn.0063c860
mov ecx, eax
movzx edx, di
add ecx, 0xf
imul ecx, edx
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x91d3f0]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
xor eax, eax
mov ax, word [ecx + 0x60]
sub esi, eax
add esi, 0x8000
add esp, 4
cmp si, 0x8000
lea ecx, [eax + 0x1000]
ja 0x6c7811
lea ecx, [eax - 0x1000]
shl edx, 8
push edx
add eax, 0x8000
push eax
push ecx
call fcn.00643cb0
mov ebx, dword [esp + 0x8c]
jmp 0x6c79e1
mov edx, dword [0x91d3f0]
cmp ebx, 0x10
je 0x6c794a
cmp ebx, 0x15
je 0x6c794a
cmp dword [edx + 0x58], 0x2000
jl 0x6c793c
push esi
push edi
call fcn.006442a0
add esp, 8
cmp ax, 0x70
jae 0x6c793c
mov edx, dword [0x91d3f0]
xor eax, eax
mov ax, word [edx + 0x60]
push esi
push eax
call fcn.006442a0
add esp, 8
cmp ax, 0x38
ja 0x6c7889
mov ebp, 0x1800
jmp 0x6c78ac
mov edx, dword [esp + 0x80]
mov al, byte [edx + 0xda]
xor ecx, ecx
cmp al, 0x89
setne cl
dec ecx
and ecx, 0x1400
add ecx, 0x4c00
mov ebp, ecx
push esi
push edi
mov dword [esp + 0x34], edi
call fcn.006442d0
mov ebx, eax
xor eax, eax
mov ax, bx
shr ax, 1
push eax
push esi
push edi
call fcn.00643cb0
add esp, 0x14
cmp bx, 0x4000
mov edi, eax
jbe 0x6c7924
mov ecx, dword [esp + 0x80]
xor edx, edx
mov dx, word [ecx + 0xea]
push edi
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jbe 0x6c7924
push 0x1000
lea eax, [esi + 0x8000]
push eax
add edi, 0x8000
push edi
call fcn.00643cb0
push ebp
push esi
push eax
call fcn.00643cb0
mov ebx, dword [esp + 0x98]
add esp, 0x18
jmp 0x6c79e4
mov ecx, dword [esp + 0x2c]
push ebp
push esi
push ecx
call fcn.00643cb0
mov ebx, dword [esp + 0x8c]
jmp 0x6c79e1
mov ebx, dword [esp + 0x80]
mov edi, esi
jmp 0x6c79e6
push esi
push edi
mov dword [esp + 0x34], edi
call fcn.006442d0
xor edx, edx
mov ebx, eax
mov dx, bx
shr dx, 1
push edx
push esi
push edi
call fcn.00643cb0
mov ecx, dword [esp + 0x94]
mov dl, byte [ecx + 0xda]
add esp, 0x14
mov ebp, eax
xor eax, eax
cmp dl, 0x89
setne al
dec eax
and eax, 0x1400
add eax, 0x4c00
cmp bx, 0x4000
mov edi, eax
mov ebx, ecx
jbe 0x6c79d5
xor edx, edx
mov dx, word [ebx + 0xea]
push ebp
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jbe 0x6c79d5
push 0x1000
lea eax, [esi + 0x8000]
push eax
add ebp, 0x8000
push ebp
call fcn.00643cb0
push edi
push esi
push eax
call fcn.00643cb0
add esp, 0x18
jmp 0x6c79e4
mov ecx, dword [esp + 0x2c]
push edi
push esi
push ecx
call fcn.00643cb0
add esp, 0xc
mov edi, eax
xor edx, edx
mov dx, word [ebx + 0xec]
push edx
push edi
call fcn.006442a0
movzx ecx, ax
mov eax, dword [esp + 0x94]
lea eax, [eax + eax*2]
shl eax, 4
add ecx, 0x40
cdq
idiv ecx
mov dl, byte [ebx]
add esp, 8
mov ebp, 0x2800
mov esi, eax
mov eax, dword [0x91cfa4]
cmp dl, byte [eax + 0xf]
jne 0x6c7a29
cmp word [eax + 0xc], 0x18
jle 0x6c7a44
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push edi
push ecx
call fcn.006442a0
add esp, 8
cmp ax, 0x40
jb 0x6c7ab2
xor edx, edx
mov dx, word [ebx + 0xec]
push edi
push edx
call fcn.006442a0
add esp, 8
cmp ax, 0x30
ja 0x6c7ab2
mov eax, dword [0x91d3f0]
cmp dword [eax + 0x58], ebp
push 0x30
jge 0x6c7a75
call fcn.0063c860
add eax, 0x100
jmp 0x6c7a7d
call fcn.0063c860
add eax, 0x40
imul eax, dword [ebx + 0xe0]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add esi, eax
mov eax, dword [0x91d3f0]
mov ecx, dword [eax + 0x58]
add esp, 4
cmp ecx, 0x2000
setle cl
dec cl
and cl, 3
inc cl
mov byte [eax + 0x6d], cl
jmp 0x6c7abc
mov edx, dword [0x91d3f0]
mov byte [edx + 0x6d], 1
mov eax, dword [0x91cfa4]
mov cl, byte [ebx]
cmp cl, byte [eax + 0xf]
je 0x6c7adf
mov ecx, dword [esp + 0x94]
xor edx, edx
cmp ecx, 1
setne dl
dec edx
and edx, 3
mov word [eax + 0xc], dx
mov eax, dword [esp + 0x40]
push eax
push ebx
call fcn.006c4340
mov ecx, dword [esp + 0x98]
add eax, esi
push eax
push ecx
push edi
push ebx
call fcn.006c48d0
mov edx, dword [0x91cfa4]
mov cl, byte [edx + 0xf]
mov al, byte [ebx]
add esp, 0x18
cmp al, cl
mov ecx, dword [0x91d3f0]
jne 0x6c7b2f
cmp dword [ecx + 0x58], ebp
jg 0x6c7b2f
fld dword [ecx + 0x2c]
fcomp dword [0x8d3030]
fnstsw ax
test ah, 0x41
jne 0x6c7b2f
mov byte [ecx + 0x6d], 0
jmp 0x6c7b3e
cmp dword [ecx + 0x58], 0xc00
jge 0x6c7b44
mov word [edx + 0xc], 8
mov ecx, dword [0x91d3f0]
push 0xb
mov byte [ecx + 0x6a], 4
call fcn.0062f4e0
movzx ecx, byte [ebx + 0xd8]
add esp, 4
mov edx, dword [0x91cfa4]
pop edi
pop esi
pop ebp
mov byte [ecx + edx + 0x35], 1
mov eax, 1
pop ebx
add esp, 0x6c
ret
mov eax, dword [0x91d3f0]
xor ecx, ecx
mov cx, word [eax + 0x60]
push ecx
push esi
call fcn.006442a0
add esp, 8
cmp ax, 0x40
ja 0x6c7b9f
push 0x2000
call fcn.0063c8b0
mov ebx, eax
add esp, 4
add ebx, esi
jmp 0x6c7bc7
push 0x1000
call fcn.0063c8b0
mov edx, dword [0x91d3f0]
add eax, 0x2000
push eax
xor eax, eax
mov ax, word [edx + 0x60]
push eax
push edi
call fcn.00643cb0
add esp, 0x10
mov ebx, eax
mov ecx, dword [0x91d3f0]
mov edi, dword [ecx + 0x58]
push 3
call fcn.0063c860
mov ecx, eax
add ecx, 5
imul ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov esi, edx
add esp, 4
cmp esi, 0x2000
jle 0x6c7c02
mov esi, 0x2000
sub edi, esi
jns 0x6c7c08
xor edi, edi
push 3
call fcn.0063c860
mov ecx, eax
mov eax, edi
cdq
add ecx, 3
idiv ecx
mov edi, dword [0x91d3f0]
mov ecx, eax
mov eax, 0x2fa0be83
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x84], edx
fild dword [esp + 0x84]
fld dword [edi + 0x2c]
fmul dword [0x8d3010]
fsubp st(1)
call fcn.0043bd30
mov dword [edi + 0x58], esi
mov ecx, dword [0x91d3f0]
mov edx, dword [ecx + 0x58]
push eax
push edx
push ebx
push ebp
call fcn.00630a00
mov eax, dword [0x91cfa4]
mov word [eax + 0xc], 0xfffe
mov ecx, dword [0x91d3f0]
mov byte [ecx + 0x6d], 8
mov edx, dword [0x91d3f0]
mov byte [edx + 0x6f], 1
mov eax, dword [0x91d3f0]
push 0xb
mov byte [eax + 0x6a], 4
call fcn.0062f4e0
movzx ecx, byte [ebp + 0xd8]
add esp, 0x18
jmp 0x6c7b59