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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0x14]
cmp ecx, 0x20
push edi
jge 0x1005abb3
mov eax, 1
shl eax, cl
dec eax
jmp 0x1005abb6
or eax, 0xffffffff
mov dword [esp + 0x98], eax
fild dword [esp + 0x98]
test eax, eax
jge 0x1005abce
fadd qword [0x10139940]
movzx eax, word [esi + 8]
fstp qword [esp + 0xb8]
movzx ecx, word [esi + 0xc]
fnstcw word [esp + 0x36]
mov dword [esp + 0x44], eax
mov dword [esp + 0x6c], ecx
movzx edx, word [esi + 0xa]
fild dword [esp + 0x44]
movzx eax, word [esi + 0xe]
fidiv dword [esp + 0x6c]
mov dword [esp + 0x44], edx
movzx edi, word [esi + 0x20]
fst qword [esp + 0xa0]
fild dword [esp + 0x44]
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
movzx eax, word [esp + 0x36]
or eax, 0xc00
mov dword [esp + 0x44], eax
fdivp st(1)
fst qword [esp + 0xb0]
fld1
fld st(0)
fdivrp st(3)
fldcw word [esp + 0x44]
fxch st(2)
fistp dword [esp + 0x44]
movzx eax, word [esp + 0x44]
mov dword [esp + 0x84], eax
fldcw word [esp + 0x36]
fdivp st(1)
fnstcw word [esp + 0x36]
movzx eax, word [esp + 0x36]
or eax, 0xc00
mov dword [esp + 0x44], eax
fldcw word [esp + 0x44]
fistp dword [esp + 0x44]
movzx eax, word [esp + 0x44]
mov dword [esp + 0x7c], eax
movzx eax, word [esi + 0x22]
fldcw word [esp + 0x36]
imul eax, edi
mov dword [esp + 0x98], eax
lea eax, [edx - 1]
imul eax, ecx
mov dword [esp + 0xac], eax
mov eax, edx
imul eax, ecx
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100aeb73
add esp, 4
mov dword [esp + 0x58], eax
test eax, eax
jne 0x1005ad4f
mov edi, dword [0x10199a70]
mov ecx, 0x101b5bc0
call fcn.10035670
mov ebx, dword [0x101b5bbc]
mov ecx, 0x101b5bc0
call fcn.100356c0
test edi, ebx
je 0x1005ad3f
call fcn.10037680
mov edi, eax
lea ecx, [edi + 0x14]
call fcn.10035670
cmp dword [edi + 0xc], 0
je 0x1005acff
lea ecx, [edi + 0x10]
call fcn.10035670
mov edi, dword [edi + 4]
jmp 0x1005ad02
mov edi, dword [edi + 8]
push str.ERROR:_cant_allocate_temporary_buffer_for_interpolation_scaling__
push edi
call fcn.10002d50
add esp, 8
mov edi, eax
push 0xa
mov ecx, edi
call fcn.10002f60
mov ecx, edi
call fcn.10002ba0
call fcn.10037680
mov edi, eax
cmp dword [edi + 0xc], 0
je 0x1005ad37
lea ecx, [edi + 0x10]
call fcn.100356c0
lea ecx, [edi + 0x14]
call fcn.100356c0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, esi
call fcn.1004efe0
jmp 0x1005b644
cmp dword [esi + 4], 0
mov dword [esp + 0x44], 0
jle 0x1005b644
mov eax, dword [ebp + 0xc]
fld1
mov ecx, dword [ebp + 8]
fld qword [esp + 0xb0]
fld qword [esp + 0xa0]
sub ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x9c], ecx
movzx ecx, word [esi + 0x20]
imul ecx, dword [esi + 0x1c]
mov eax, dword [esp + 0x80]
add ecx, dword [esi + 0x18]
mov edx, dword [esp + 0x9c]
mov edx, dword [edx + eax]
mov ebx, dword [eax]
mov eax, dword [esi + 0x10]
lea ecx, [edx + ecx*4]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x6c], eax
test eax, eax
je 0x1005b624
movzx eax, word [esp + 0x84]
mov ecx, dword [esp + 0x58]
lea edx, [eax + 1]
add eax, eax
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0xac]
mov dword [esp + 0x94], eax
lea eax, [ecx + edx*4]
mov dword [esp + 0xa8], eax
movzx edi, word [esi + 0xa]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x50], edx
test di, di
je 0x1005ae1d
mov ecx, dword [eax]
mov dword [edx], ecx
movzx ecx, word [esi + 0x20]
lea eax, [eax + ecx*4]
movzx ecx, word [esi + 0xc]
add edi, 0xffff
lea edx, [edx + ecx*4]
test di, di
jne 0x1005ae00
mov edi, 1
cmp dword [esp + 0x90], edi
mov dword [esp + 0x3c], edi
jle 0x1005af04
mov dword [esp + 0x38], edi
fild dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
add edx, 4
fmul st(1)
mov dword [esp + 0x50], edx
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x1005ae59
fstp st(0)
fld st(2)
movzx eax, word [esi + 0xa]
mov dword [esp + 0x40], eax
test ax, ax
je 0x1005aee4
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
sub edi, eax
mov dword [esp + 0x48], edi
fild dword [esp + 0x48]
test edi, edi
jge 0x1005ae7f
fadd qword [0x10139940]
mov dword [esp + 0x48], eax
fmul st(1)
fild dword [esp + 0x48]
test eax, eax
jge 0x1005ae93
fadd qword [0x10139940]
fnstcw word [esp + 0x36]
movzx eax, word [esp + 0x36]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x60], eax
fldcw word [esp + 0x60]
fistp qword [esp + 0x88]
mov eax, dword [esp + 0x88]
mov dword [edx], eax
movzx eax, word [esi + 0x20]
fldcw word [esp + 0x36]
lea ecx, [ecx + eax*4]
movzx eax, word [esi + 0xc]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x40]
add eax, 0xffff
mov dword [esp + 0x40], eax
test ax, ax
jne 0x1005ae66
mov edi, 1
mov eax, dword [esp + 0x3c]
fstp st(0)
add eax, edi
mov dword [esp + 0x3c], eax
movzx eax, ax
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x38], eax
jl 0x1005ae37
mov eax, dword [esp + 0x84]
movzx edx, word [esi + 0xc]
mov ecx, dword [esp + 0x5c]
sub edx, dword [esp + 0x94]
inc eax
movzx eax, ax
mov dword [esp + 0x3c], eax
movzx eax, ax
add ecx, 4
cmp eax, edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x38], eax
jge 0x1005b0be
fild dword [esp + 0x38]
movzx eax, word [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x38], eax
fmul st(1)
add edx, 4
mov dword [esp + 0x50], edx
fst qword [esp + 0x70]
fild dword [esp + 0x38]
fsubr st(1)
fst qword [esp + 0x88]
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x1005af7b
fstp st(0)
fld st(3)
fst qword [esp + 0x88]
movzx edi, word [esi + 0xa]
test di, di
je 0x1005b091
fstp st(4)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x1005af99
fld qword [esp + 0x88]
fld qword [esp + 0xb8]
mov eax, dword [ecx + 8]
sub esp, 0x38
fstp qword [esp + 0x30]
fldz
fstp qword [esp + 0x28]
fstp qword [esp + 0x20]
fild dword [ecx + 8]
test eax, eax
jge 0x1005afc1
fadd qword [0x10139940]
mov eax, dword [ecx + 4]
fstp qword [esp + 0x18]
fild dword [ecx + 4]
test eax, eax
jge 0x1005afd5
fadd qword [0x10139940]
mov eax, dword [ecx]
fstp qword [esp + 0x10]
fild dword [ecx]
test eax, eax
jge 0x1005afe7
fadd qword [0x10139940]
mov eax, dword [ecx - 4]
fstp qword [esp + 8]
fild dword [ecx - 4]
test eax, eax
jge 0x1005affb
fadd qword [0x10139940]
fstp qword [esp]
call fcn.100d7460
fnstcw word [esp + 0x6e]
add edi, 0xffff
movzx eax, word [esp + 0x6e]
or eax, 0xc00
mov dword [esp + 0x78], eax
add esp, 0x38
fldcw word [esp + 0x40]
fistp qword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [edx], eax
movzx eax, word [esi + 0x20]
fldcw word [esp + 0x36]
lea ecx, [ecx + eax*4]
movzx eax, word [esi + 0xc]
lea edx, [edx + eax*4]
test di, di
jne 0x1005af92
fld qword [esp + 0x70]
fld1
fld qword [esp + 0xb0]
fld qword [esp + 0xa0]
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
movzx ecx, word [esi + 8]
mov eax, dword [esp + 0x38]
sub ecx, 3
cmp eax, ecx
jge 0x1005b095
inc eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fcompp
fnstsw ax
test ah, 0x41
jp 0x1005b097
add dword [esp + 0x60], 4
inc dword [esp + 0x54]
jmp 0x1005b097
fstp st(0)
jmp 0x1005b065
fstp st(0)
mov eax, dword [esp + 0x3c]
movzx edx, word [esi + 0xc]
sub edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x60]
inc eax
mov dword [esp + 0x3c], eax
movzx eax, ax
cmp eax, edx
mov dword [esp + 0x38], eax
jl 0x1005af3c
movzx eax, word [esi + 0xc]
mov edx, dword [esp + 0x84]
mov edi, eax
add edx, edx
sub edi, edx
movzx edi, di
movzx eax, ax
movzx edx, di
dec eax
cmp edx, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edx
jge 0x1005b1ed
movzx eax, word [esp + 0x54]
fild dword [esp + 0x38]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x38], eax
fmul st(1)
add edx, 4
mov dword [esp + 0x50], edx
fild dword [esp + 0x38]
fsubr st(1)
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x1005b116
fstp st(0)
fld st(3)
movzx eax, word [esi + 0xa]
mov dword [esp + 0x40], eax
test ax, ax
je 0x1005b19e
mov eax, dword [ecx]
mov edi, dword [ecx + 4]
sub edi, eax
mov dword [esp + 0x48], edi
fild dword [esp + 0x48]
test edi, edi
jge 0x1005b140
fadd qword [0x10139940]
mov dword [esp + 0x48], eax
fmul st(1)
fild dword [esp + 0x48]
test eax, eax
jge 0x1005b154
fadd qword [0x10139940]
fnstcw word [esp + 0x36]
movzx eax, word [esp + 0x36]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x48], eax
fldcw word [esp + 0x48]
fistp qword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [edx], eax
movzx eax, word [esi + 0x20]
fldcw word [esp + 0x36]
lea ecx, [ecx + eax*4]
movzx eax, word [esi + 0xc]
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x40]
add eax, 0xffff
mov dword [esp + 0x40], eax
test ax, ax
jne 0x1005b127
mov edi, dword [esp + 0x3c]
movzx ecx, word [esi + 8]
fstp st(0)
sub ecx, 2
cmp dword [esp + 0x38], ecx
jge 0x1005b1ce
mov edx, dword [esp + 0x38]
inc edx
mov dword [esp + 0x48], edx
fild dword [esp + 0x48]
fcompp
fnstsw ax
test ah, 0x41
jp 0x1005b1d0
add dword [esp + 0x60], 4
inc dword [esp + 0x54]
jmp 0x1005b1d0
fstp st(0)
movzx edx, word [esi + 0xc]
mov ecx, dword [esp + 0x60]
inc edi
movzx eax, di
dec edx
cmp eax, edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], eax
jl 0x1005b0e9
movzx eax, word [esi + 0xc]
mov ecx, dword [esp + 0x58]
movzx edi, word [esi + 0xa]
lea edx, [ecx + eax*4 - 4]
movzx eax, word [esi + 8]
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + eax*4 - 4]
test di, di
je 0x1005b22b
mov ecx, dword [eax]
mov dword [edx], ecx
movzx ecx, word [esi + 0x20]
lea eax, [eax + ecx*4]
movzx ecx, word [esi + 0xc]
add edi, 0xffff
lea edx, [edx + ecx*4]
test di, di
jne 0x1005b20e
movzx eax, word [esi + 0xc]
mov edx, dword [esp + 0x58]
test ax, ax
je 0x1005b24c
mov ecx, dword [edx]
mov dword [ebx], ecx
add eax, 0xffff
add ebx, 4
add edx, 4
test ax, ax
jne 0x1005b238
mov edi, dword [esp + 0x7c]
movzx eax, di
lea ecx, [eax + 1]
cmp ecx, 1
mov dword [esp + 0x40], 1
jle 0x1005b31c
mov dword [esp + 0x3c], 1
fild dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
fmul st(2)
fcom st(3)
fnstsw ax
test ah, 0x41
jne 0x1005b286
fstp st(0)
fld st(2)
movzx edx, word [esi + 0xc]
test dx, dx
je 0x1005b2fc
movzx edi, word [esi + 0xc]
mov eax, dword [ecx]
mov edi, dword [ecx + edi*4]
sub edi, eax
mov dword [esp + 0x48], edi
fild dword [esp + 0x48]
test edi, edi
jge 0x1005b2ac
fadd qword [0x10139940]
mov dword [esp + 0x48], eax
fmul st(1)
fild dword [esp + 0x48]
test eax, eax
jge 0x1005b2c0
fadd qword [0x10139940]
fnstcw word [esp + 0x36]
add edx, 0xffff
movzx eax, word [esp + 0x36]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x48], eax
add ebx, 4
add ecx, 4
fldcw word [esp + 0x48]
fistp qword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [ebx - 4], eax
fldcw word [esp + 0x36]
test dx, dx
jne 0x1005b28f
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + 0x40]
fstp st(0)
inc eax
movzx ecx, ax
mov dword [esp + 0x40], eax
movzx eax, di
lea edx, [eax + 1]
cmp ecx, edx
mov dword [esp + 0x3c], ecx
jl 0x1005b26f
movzx ecx, word [esi + 0xc]
mov edx, dword [esp + 0x58]
inc edi
lea ecx, [edx + ecx*4]
movzx edx, di
movzx edi, word [esi + 0xe]
mov dword [esp + 0x40], edx
movzx edx, dx
sub edi, eax
dec edi
cmp edx, edi
mov dword [esp + 0x54], 1
mov dword [esp + 0x50], ecx
mov dword [esp + 0x3c], edx
jge 0x1005b4eb
fild dword [esp + 0x3c]
movzx eax, word [esp + 0x54]
mov dword [esp + 0x38], eax
fmul st(2)
fst qword [esp + 0x60]
fild dword [esp + 0x38]
fsubr st(1)
fst qword [esp + 0x88]
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x1005b385
fstp st(0)
fld st(3)
fst qword [esp + 0x88]
movzx edi, word [esi + 0xc]
test di, di
je 0x1005b4bd
fstp st(4)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x1005b3a7
fld qword [esp + 0x88]
movzx eax, word [esi + 0xc]
fld qword [esp + 0xb8]
sub esp, 0x38
lea edx, [eax*4]
mov eax, dword [ecx + eax*8]
fstp qword [esp + 0x30]
mov dword [esp + 0x80], eax
fldz
fstp qword [esp + 0x28]
fstp qword [esp + 0x20]
fild dword [esp + 0x80]
test eax, eax
jge 0x1005b3e5
fadd qword [0x10139940]
mov eax, dword [edx + ecx]
fstp qword [esp + 0x18]
fild dword [edx + ecx]
test eax, eax
jge 0x1005b3f9
fadd qword [0x10139940]
mov eax, dword [ecx]
fstp qword [esp + 0x10]
fild dword [ecx]
test eax, eax
jge 0x1005b40b
fadd qword [0x10139940]
mov eax, ecx
fstp qword [esp + 8]
sub eax, edx
mov edx, dword [eax]
fild dword [eax]
test edx, edx
jge 0x1005b421
fadd qword [0x10139940]
fstp qword [esp]
call fcn.100d7460
fnstcw word [esp + 0x6e]
add edi, 0xffff
movzx eax, word [esp + 0x6e]
or eax, 0xc00
mov dword [esp + 0x80], eax
add esp, 0x38
add ebx, 4
fldcw word [esp + 0x48]
add ecx, 4
fistp qword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [ebx - 4], eax
fldcw word [esp + 0x36]
test di, di
jne 0x1005b3a0
fld qword [esp + 0x60]
fld1
fld qword [esp + 0xb0]
fld qword [esp + 0xa0]
fxch st(2)
fxch st(3)
fxch st(1)
fxch st(2)
fxch st(1)
movzx ecx, word [esi + 0xa]
mov eax, dword [esp + 0x38]
sub ecx, 3
cmp eax, ecx
jge 0x1005b4c1
inc eax
mov dword [esp + 0x48], eax
fild dword [esp + 0x48]
fcompp
fnstsw ax
test ah, 0x41
jp 0x1005b4c3
movzx edx, word [esi + 0xc]
mov eax, dword [esp + 0x50]
inc dword [esp + 0x54]
lea ecx, [eax + edx*4]
mov dword [esp + 0x50], ecx
jmp 0x1005b4c3
fstp st(0)
jmp 0x1005b487
fstp st(0)
mov eax, dword [esp + 0x40]
movzx edi, word [esi + 0xe]
movzx edx, word [esp + 0x7c]
mov ecx, dword [esp + 0x50]
inc eax
mov dword [esp + 0x40], eax
movzx eax, ax
sub edi, edx
dec edi
cmp eax, edi
mov dword [esp + 0x3c], eax
jl 0x1005b351
movzx edx, word [esi + 0xa]
movzx eax, word [esi + 0xc]
mov ecx, dword [esp + 0x58]
sub edx, 2
imul edx, eax
movzx eax, word [esi + 0xe]
lea ecx, [ecx + edx*4]
mov edx, eax
sub edx, dword [esp + 0x7c]
movzx eax, ax
dec edx
movzx edi, dx
movzx edx, di
dec eax
cmp edx, eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], edx
jge 0x1005b5e6
movzx edx, word [esp + 0x54]
mov dword [esp + 0x48], edx
fild dword [esp + 0x48]
fild dword [esp + 0x3c]
fmul st(3)
fsub st(1)
fcom st(4)
fnstsw ax
test ah, 0x41
jne 0x1005b54b
fstp st(0)
fld st(3)
movzx edx, word [esi + 0xc]
test dx, dx
je 0x1005b5c5
movzx edi, word [esi + 0xc]
mov eax, dword [ecx]
mov edi, dword [ecx + edi*4]
sub edi, eax
mov dword [esp + 0x48], edi
fild dword [esp + 0x48]
test edi, edi
jge 0x1005b575
fadd qword [0x10139940]
mov dword [esp + 0x48], eax
fmul st(1)
fild dword [esp + 0x48]
test eax, eax
jge 0x1005b589
fadd qword [0x10139940]
fnstcw word [esp + 0x36]
add edx, 0xffff
movzx eax, word [esp + 0x36]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x48], eax
add ebx, 4
add ecx, 4
fldcw word [esp + 0x48]
fistp qword [esp + 0x70]
mov eax, dword [esp + 0x70]
mov dword [ebx - 4], eax
fldcw word [esp + 0x36]
test dx, dx
jne 0x1005b558
mov edi, dword [esp + 0x40]
movzx edx, word [esi + 0xe]
fstp st(0)
mov ecx, dword [esp + 0x50]
inc edi
movzx eax, di
dec edx
cmp eax, edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], eax
jl 0x1005b536
fstp st(0)
movzx eax, word [esi + 0xc]
mov ecx, dword [esp + 0xa8]
test ax, ax
je 0x1005b60a
mov edx, dword [ecx]
mov dword [ebx], edx
add eax, 0xffff
add ebx, 4
add ecx, 4
test ax, ax
jne 0x1005b5f6
mov eax, dword [esp + 0x98]
add eax, eax
add eax, eax
add dword [esp + 0x5c], eax
sub dword [esp + 0x6c], 1
jne 0x1005adeb
mov eax, dword [esp + 0x44]
add dword [esp + 0x80], 4
inc eax
cmp eax, dword [esi + 4]
mov dword [esp + 0x44], eax
jl 0x1005ad87
fstp st(2)
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x58]
push eax
call fcn.100afea7
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8