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

Disassembly:
push 0xffffffffffffffff
push 0x1019ad98
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10218460]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
mov eax, dword [ebx + 0x1c]
mov edx, dword [eax + 0x3c]
add ebx, 0x1c
mov ecx, ebx
mov dword [esp + 0x18], ebx
call edx
mov ebp, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x40]
mov ecx, ebx
mov dword [esp + 0x30], ebp
call edx
fld dword [esp + 0xc4]
fmul qword [0x101e94b8]
mov edx, eax
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
or eax, 0xc00
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], edx
fldcw word [esp + 0x44]
fistp qword [esp + 0x44]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
lea eax, [edi + 8]
fldcw word [esp + 0x14]
call fcn.100509f0
fstp dword [esp + 0x44]
test ebp, ebp
je 0x10085c6d
test edx, edx
je 0x10085c6d
fldz
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 0x44
jnp 0x10085c6d
lea ebx, [esp + 0x64]
mov eax, edi
call fcn.1002d160
mov dword [esp + 0xa8], 0
fld dword [esp + 0x74]
fld qword [0x101e94b8]
fmul st(1), st(0)
fld qword [0x101e9328]
fadd st(2), st(0)
fxch st(2)
call fcn.10189ea0
fld dword [esp + 0x78]
fmul st(1)
mov dword [esp + 0x54], eax
fadd st(2)
call fcn.10189ea0
fld dword [esp + 0x7c]
fmul st(1)
mov esi, eax
mov dword [esp + 0x60], esi
fadd st(2)
call fcn.10189ea0
fld dword [esp + 0x80]
fmul st(1)
mov dword [esp + 0x58], eax
fadd st(2)
call fcn.10189ea0
fld dword [esp + 0x90]
fmul st(1)
mov ebx, eax
mov dword [esp + 0x5c], ebx
fadd st(2)
call fcn.10189ea0
fmul dword [esp + 0x94]
mov dword [esp + 0x3c], eax
faddp st(1)
call fcn.10189ea0
fldz
fcomp dword [esp + 0xc4]
mov ecx, dword [esp + 0xb4]
mov edi, dword [ecx + 4]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], edi
fnstsw ax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x50], edx
test ah, 5
jp 0x10085553
test ebx, ebx
jg 0x100854dc
neg ebx
test esi, esi
mov dword [esp + 0x2c], ebx
jg 0x100854e6
neg esi
mov eax, dword [esp + 0x58]
test eax, eax
mov dword [esp + 0x24], esi
jg 0x100854f4
neg eax
mov ecx, dword [esp + 0x54]
test ecx, ecx
mov dword [esp + 0x20], eax
jg 0x10085502
neg ecx
cmp esi, ebx
mov dword [esp + 0x28], ecx
lea edx, [esp + 0x24]
jg 0x10085512
lea edx, [esp + 0x2c]
cmp ecx, eax
lea eax, [esp + 0x28]
jg 0x1008551e
lea eax, [esp + 0x20]
mov ecx, dword [eax]
cmp ecx, dword [edx]
jl 0x10085526
mov eax, edx
mov eax, dword [eax]
xor ebx, ebx
cmp eax, dword [esp + 0x1c]
jbe 0x10085553
add ebx, 1
mov edx, eax
mov ecx, ebx
shr edx, cl
cmp edx, dword [esp + 0x1c]
ja 0x10085530
test ebx, ebx
jbe 0x10085553
mov eax, ebp
mov ecx, ebx
shr eax, cl
cmp eax, 2
jae 0x100855a7
sub ebx, 1
jne 0x10085543
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0xb0], eax
jne 0x10085888
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x58]
call eax
mov esi, dword [esp + 0xc0]
mov edi, eax
call fcn.10006150
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0xb4]
mov eax, dword [edx + 4]
push ecx
mov ecx, dword [esi + 4]
push eax
push ecx
call fcn.101834d0
mov edi, dword [esi + 4]
add esp, 0xc
mov dword [esp + 0x40], edi
jmp 0x10085888
test ebx, ebx
jbe 0x10085553
mov eax, dword [esp + 0x38]
nop
mov edx, eax
mov ecx, ebx
shr edx, cl
cmp edx, 2
jae 0x100855c2
sub ebx, 1
jne 0x100855b0
jmp 0x10085553
test ebx, ebx
jbe 0x10085553
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov esi, 0x7fffffff
cmp eax, esi
mov edi, 0x80000000
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edx
lea ecx, [esp + 0x2c]
jl 0x100855fc
lea ecx, [esp + 0x14]
cmp edx, esi
mov ecx, dword [ecx]
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x24]
jl 0x1008560e
lea ecx, [esp + 0x1c]
mov ecx, dword [ecx]
cmp eax, edi
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x2c]
jg 0x10085620
lea eax, [esp + 0x20]
cmp edx, edi
mov eax, dword [eax]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x24]
jg 0x10085632
lea eax, [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [esp + 0xb8]
mov esi, dword [esp + 0x54]
mov ebp, dword [esp + 0xbc]
imul esi, edx
mov edi, dword [esp + 0x58]
imul edi, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x28], ecx
imul edx, ebp
mov ecx, dword [esp + 0x60]
imul ecx, ebp
mov dword [esp + 0x18], edi
lea eax, [ecx + esi]
add eax, dword [esp + 0x3c]
add edi, edx
add edi, dword [esp + 0x34]
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edi
lea ebp, [esp + 0x2c]
jl 0x10085689
lea ebp, [esp + 0x14]
cmp edi, dword [esp + 0x1c]
mov ebp, dword [ebp]
mov dword [esp + 0x14], ebp
lea ebp, [esp + 0x24]
jl 0x1008569e
lea ebp, [esp + 0x1c]
mov ebp, dword [ebp]
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
lea eax, [esp + 0x2c]
jg 0x100856b3
lea eax, [esp + 0x20]
cmp edi, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x24]
jg 0x100856c7
lea eax, [esp + 0x28]
mov eax, dword [eax]
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x34]
add ecx, edi
add edx, ebp
cmp ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
lea eax, [esp + 0x2c]
jl 0x100856ef
lea eax, [esp + 0x14]
cmp edx, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x24]
jl 0x10085703
lea eax, [esp + 0x1c]
cmp ecx, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x2c]
jg 0x10085717
lea eax, [esp + 0x20]
cmp edx, dword [esp + 0x28]
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
lea eax, [esp + 0x24]
jg 0x1008572b
lea eax, [esp + 0x28]
mov edx, dword [eax]
mov eax, dword [esp + 0x18]
add esi, edi
cmp esi, dword [esp + 0x14]
lea ecx, [eax + ebp]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x2c]
jl 0x10085750
lea eax, [esp + 0x14]
cmp ecx, dword [esp + 0x1c]
mov edx, dword [eax]
lea eax, [esp + 0x24]
jl 0x10085760
lea eax, [esp + 0x1c]
cmp esi, dword [esp + 0x20]
mov edi, dword [eax]
lea eax, [esp + 0x2c]
jg 0x10085770
lea eax, [esp + 0x20]
cmp ecx, dword [esp + 0x28]
mov eax, dword [eax]
lea ecx, [esp + 0x24]
jg 0x10085780
lea ecx, [esp + 0x28]
movsx ecx, word [ecx + 2]
sar eax, 0x10
sar edx, 0x10
xor ebp, ebp
add eax, 2
add ecx, 2
sar edi, 0x10
mov dword [esp + 0x14], edx
cmp edx, ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebp
lea edx, [esp + 0x18]
jl 0x100857b5
lea edx, [esp + 0x14]
cmp edi, ebp
mov esi, dword [edx]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
lea edx, [esp + 0x18]
jl 0x100857cb
lea edx, [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov edx, dword [edx]
cmp edi, esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edi
lea esi, [esp + 0x18]
jl 0x100857e5
lea esi, [esp + 0x14]
mov esi, dword [esi]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x38]
cmp esi, edx
mov dword [esp + 0x18], esi
lea edx, [esp + 0x18]
jl 0x100857ff
lea edx, [esp + 0x1c]
mov ebp, dword [edx]
test eax, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], 0
lea eax, [esp + 0x18]
jl 0x10085819
lea eax, [esp + 0x20]
test ecx, ecx
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 0
lea eax, [esp + 0x18]
jl 0x10085833
lea eax, [esp + 0x28]
cmp edi, edx
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x18]
jl 0x10085849
lea ecx, [esp + 0x20]
mov ecx, dword [ecx]
cmp esi, eax
mov dword [esp + 0x18], esi
lea eax, [esp + 0x18]
jl 0x1008585b
lea eax, [esp + 0x28]
sub ecx, dword [esp + 0x14]
mov eax, dword [eax]
mov edx, ecx
sub eax, ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], eax
lea ecx, [ecx]
mov esi, edx
mov ecx, ebx
shr esi, cl
cmp esi, 2
jae 0x100858e4
sub ebx, 1
jne 0x10085870
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0xb0]
mov eax, dword [esp + 0xbc]
mov edx, dword [ebx + 0x1c]
mov esi, dword [esp + 0xb8]
mov edx, dword [edx + 0x54]
lea ecx, [ebx + 0x1c]
push eax
push esi
call edx
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x34]
mov ecx, dword [ebx + 4]
sar eax, 0x10
sar edx, 0x10
test eax, eax
jl 0x100859c5
cmp eax, ebp
jge 0x100859c5
test edx, edx
jl 0x100859c5
cmp edx, dword [esp + 0x50]
jge 0x100859c5
mov bl, 1
jmp 0x100859c7
test ebx, ebx
jbe 0x10085880
mov edx, eax
mov ecx, ebx
shr edx, cl
cmp edx, 2
jae 0x100858fa
sub ebx, 1
jne 0x100858e8
jmp 0x10085880
test ebx, ebx
jbe 0x10085880
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0xc0]
shr edi, 1
shr ebp, 1
mov dword [esp + 0x50], edi
imul edi, ebp
call fcn.10006150
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xb4]
imul ecx, eax
add ecx, dword [edx + 4]
push eax
add ecx, dword [esp + 0x18]
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x44]
call fcn.100847d0
add esp, 0xc
cmp ebx, 1
jbe 0x10085981
mov edi, dword [esp + 0x50]
lea ecx, [ebx - 1]
mov dword [esp + 0x30], ecx
lea esp, [esp]
mov eax, dword [esi + 4]
push ebp
push eax
push eax
mov eax, edi
mov ecx, ebp
call fcn.100847d0
add esp, 0xc
shr ebp, 1
shr edi, 1
sub dword [esp + 0x30], 1
jne 0x10085960
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
mov edi, dword [esi + 4]
mov ecx, ebx
sar dword [esp + 0x54], cl
sar dword [esp + 0x60], cl
sar dword [esp + 0x58], cl
sar dword [esp + 0x5c], cl
shl eax, 0x10
sub edx, eax
mov eax, dword [esp + 0x1c]
sar edx, cl
shl eax, 0x10
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x34]
sub edx, eax
sar edx, cl
mov dword [esp + 0x34], edx
jmp 0x10085888
xor bl, bl
lea edx, [esi - 1]
mov esi, dword [esp + 0x3c]
mov eax, edx
imul edx, dword [esp + 0x58]
imul eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
add eax, esi
mov esi, dword [esp + 0x34]
add esi, edx
sar eax, 0x10
sar esi, 0x10
test bl, bl
mov dword [esp + 0x44], edx
je 0x10085a0b
test eax, eax
jl 0x10085a0b
cmp eax, ebp
jge 0x10085a0b
test esi, esi
jl 0x10085a0b
cmp esi, dword [esp + 0x50]
mov byte [esp + 0x14], 1
jl 0x10085a10
mov byte [esp + 0x14], 0
mov esi, dword [esp + 0xbc]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
add esi, 0xffffffff
mov eax, esi
imul esi, dword [esp + 0x5c]
imul eax, dword [esp + 0x60]
add edx, eax
add ebx, esi
sar ebx, 0x10
sar edx, 0x10
cmp byte [esp + 0x14], 0
mov dword [esp + 0x30], ebx
je 0x10085a5b
test edx, edx
jl 0x10085a5b
cmp edx, ebp
jge 0x10085a5b
test ebx, ebx
jl 0x10085a5b
mov edx, ebx
cmp edx, dword [esp + 0x50]
jge 0x10085a5b
mov dl, 1
jmp 0x10085a5d
xor dl, dl
mov ebx, dword [esp + 0x18]
add eax, ebx
mov ebx, dword [esp + 0x44]
add eax, dword [esp + 0x3c]
add esi, ebx
mov ebx, dword [esp + 0x34]
add esi, ebx
sar eax, 0x10
sar esi, 0x10
test dl, dl
je 0x10085b47
test eax, eax
jl 0x10085b47
cmp eax, ebp
jge 0x10085b47
test esi, esi
jl 0x10085b47
cmp esi, dword [esp + 0x50]
jge 0x10085b47
mov eax, dword [esp + 0xbc]
test eax, eax
jle 0x10085c5f
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], eax
lea esp, [esp]
test edi, edi
mov eax, edx
mov esi, ebx
jle 0x10085b17
jmp 0x10085ae0
mov edx, esi
add esi, dword [esp + 0x58]
sar edx, 0xf
add edx, 1
sar edx, 1
imul edx, ebp
add edx, dword [esp + 0x40]
mov ebx, eax
add eax, dword [esp + 0x54]
sar ebx, 0xf
add ebx, 1
sar ebx, 1
mov dl, byte [ebx + edx]
mov byte [ecx], dl
add ecx, 1
sub edi, 1
jne 0x10085ae0
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
add edx, dword [esp + 0x60]
add ebx, dword [esp + 0x5c]
sub dword [esp + 0x38], 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], ebx
jne 0x10085ad0
lea ecx, [esp + 0x98]
call fcn.10050d00
jmp 0x10085c8f
mov eax, dword [esp + 0xbc]
test eax, eax
jle 0x10085c5f
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], esi
test eax, eax
mov dword [esp + 0x44], ebx
jle 0x10085c3c
mov dword [esp + 0x30], eax
jmp 0x10085b84
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
mov edx, esi
add esi, dword [esp + 0x54]
sar eax, 0xf
sar edx, 0xf
add eax, 1
add edx, 1
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x58]
add dword [esp + 0x44], esi
sar eax, 1
sar edx, 1
test eax, eax
jge 0x10085bcc
test edx, edx
jge 0x10085bb8
mov al, byte [edi]
mov byte [ecx], al
jmp 0x10085c27
lea eax, [ebp - 1]
cmp edx, eax
jl 0x10085bc5
mov dl, byte [edi + ebp - 1]
jmp 0x10085c25
mov al, byte [edx + edi]
mov byte [ecx], al
jmp 0x10085c27
mov ebx, dword [esp + 0x50]
lea esi, [ebx - 1]
cmp eax, esi
jl 0x10085bff
test edx, edx
jge 0x10085be3
imul esi, ebp
mov dl, byte [esi + edi]
jmp 0x10085c25
lea eax, [ebp - 1]
cmp edx, eax
jl 0x10085bf3
imul ebx, ebp
mov dl, byte [ebx + edi - 1]
jmp 0x10085c25
imul esi, ebp
add esi, edx
mov al, byte [esi + edi]
mov byte [ecx], al
jmp 0x10085c27
test edx, edx
jge 0x10085c08
imul eax, ebp
jmp 0x10085c22
lea esi, [ebp - 1]
cmp edx, esi
jl 0x10085c1d
add eax, 1
imul eax, ebp
mov al, byte [eax + edi - 1]
mov byte [ecx], al
jmp 0x10085c27
imul eax, ebp
add eax, edx
mov dl, byte [eax + edi]
mov byte [ecx], dl
add ecx, 1
sub dword [esp + 0x30], 1
jne 0x10085b80
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
add esi, dword [esp + 0x60]
add ebx, dword [esp + 0x5c]
sub dword [esp + 0x34], 1
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], ebx
jne 0x10085b6d
lea ecx, [esp + 0x98]
call fcn.10050d00
jmp 0x10085c8f
mov edx, dword [esp + 0xbc]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x54]
lea ecx, [esi + 0x1c]
push edx
mov edx, dword [esp + 0xbc]
push edx
call eax
push 0
call fcn.100751a0
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret