Function at 0x10088ab0
Capabilities:
Access peb ldr_data
Get kernel32 base address
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1019ad08
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x10218460]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov dword [esi + 0x30], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x40]
mov ecx, ebx
call edx
mov edi, dword [ebp + 0xc]
mov dword [esi + 0x34], eax
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x30], eax
mov eax, edx
sub eax, ecx
sar eax, 1
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x34], eax
lea eax, [ebp + 0x10]
jl 0x10088b1c
lea eax, [esp + 0x34]
mov eax, dword [eax]
mov ecx, dword [edi + 0x1c]
mov edi, dword [edi + 0x10]
mov dword [ebp + 0x10], eax
mov eax, ecx
sub eax, edi
sar eax, 1
cmp dword [ebp + 0x10], eax
mov dword [esp + 0x34], eax
lea eax, [ebp + 0x10]
jl 0x10088b3d
lea eax, [esp + 0x34]
mov edi, dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
add eax, edi
sub edx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
add eax, edi
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x30]
sub eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
sub ecx, edi
add eax, 0xffffffff
cmp ebx, dword [ebp + 0x14]
mov dword [ebp + 0x10], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], eax
je 0x10088b8b
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
push ebx
call eax
test edi, edi
je 0x10089422
mov edx, dword [ebx]
mov eax, dword [edx + 0x58]
mov ecx, ebx
call eax
test eax, eax
je 0x10089422
fld qword [esi + 8]
call fcn.1018a560
fdivr qword [esi + 0x18]
fmul qword [0x101e99f8]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10088bc4
fstp st(1)
jmp 0x10088bd8
fstp st(0)
fild dword [ebp + 0x10]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10088bd6
fstp st(1)
jmp 0x10088bd8
fstp st(0)
call fcn.10189ea0
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x14]
push eax
push ecx
push ebx
push esi
call fcn.100865b0
mov edx, dword [ebx]
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
sub eax, 1
je 0x100890a7
sub eax, 1
je 0x10088c4d
push 1
lea ecx, [esp + 0x4c]
call fcn.100098a0
mov dword [esp + 0x78], 0
mov edx, dword [ebx]
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
lea esi, [esp + 0x48]
call fcn.1007b8b0
mov ecx, dword [esp + 0x4c]
push ecx
push str.eim_ToneDownBckSpp::suppress__const_eim_Image__const_ets_IntRect__int32__eim_Image__:_image_type___s__not_supported
lea eax, [esp + 0x48]
call fcn.100595b0
add esp, 8
push 0x102051a0
lea edx, [esp + 0x44]
push edx
call fcn.1017d044
mov eax, dword [esp + 0x24]
fld qword [esi + 8]
test eax, eax
fld1
mov dword [esp + 0x2c], eax
jl 0x10088d94
mov ecx, ebx
mov edx, dword [ecx - 0x18]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
jmp 0x10088c87
fxch st(1)
mov dword [esp + 0x38], edx
test edx, edx
lea edx, [esp + 0x38]
jg 0x10088c97
lea edx, [esp + 0x3c]
mov edx, dword [edx]
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x38]
jl 0x10088cab
lea ecx, [esp + 0x18]
mov edi, dword [ecx]
fld st(0)
mov ecx, dword [esi + 0x30]
fsub st(2)
imul ecx, eax
fmul qword [esi + 0x28]
mov eax, dword [esp + 0x10]
add ecx, edx
lea eax, [eax + ecx*4]
mov ecx, edi
sub ecx, edx
add ecx, 1
cmp ecx, 4
jl 0x10088d0e
mov ecx, edi
sub ecx, edx
sub ecx, 3
shr ecx, 2
add ecx, 1
lea edx, [edx + ecx*4]
fld dword [eax]
add eax, 0x10
sub ecx, 1
fmul st(3)
fadd st(1)
fstp dword [eax - 0x10]
fld dword [eax - 0xc]
fmul st(3)
fadd st(1)
fstp dword [eax - 0xc]
fld dword [eax - 8]
fmul st(3)
fadd st(1)
fstp dword [eax - 8]
fld dword [eax - 4]
fmul st(3)
fadd st(1)
fstp dword [eax - 4]
jne 0x10088cdf
cmp edx, edi
jg 0x10088d28
sub edi, edx
add edi, 1
fld dword [eax]
add eax, 4
sub edi, 1
fmul st(3)
fadd st(1)
fstp dword [eax - 4]
jne 0x10088d17
mov eax, dword [esp + 0x2c]
fstp st(0)
mov edx, dword [esp + 0x30]
fxch st(1)
mov ecx, dword [esp + 0x34]
fmul qword [esi + 8]
sub eax, 1
sub edx, 1
add ecx, 1
test eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
jge 0x10088c85
fstp st(0)
mov eax, dword [esp + 0x28]
fld qword [esi + 8]
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
jg 0x10088e68
mov edx, ebx
mov ecx, dword [edx - 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ecx
jmp 0x10088d9c
fstp st(1)
jmp 0x10088d5a
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], edx
test edx, edx
lea edx, [esp + 0x3c]
jg 0x10088dac
lea edx, [esp + 0x38]
mov edx, dword [edx]
add ecx, eax
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x3c]
jl 0x10088dc2
lea ecx, [esp + 0x18]
mov edi, dword [ecx]
fld st(1)
mov ecx, dword [esi + 0x30]
fsub st(1)
imul ecx, eax
fmul qword [esi + 0x28]
mov eax, dword [esp + 0x10]
add ecx, edx
lea eax, [eax + ecx*4]
mov ecx, edi
sub ecx, edx
add ecx, 1
cmp ecx, 4
jl 0x10088e25
mov ecx, edi
sub ecx, edx
sub ecx, 3
shr ecx, 2
add ecx, 1
lea edx, [edx + ecx*4]
fld dword [eax]
add eax, 0x10
sub ecx, 1
fmul st(2)
fadd st(1)
fstp dword [eax - 0x10]
fld dword [eax - 0xc]
fmul st(2)
fadd st(1)
fstp dword [eax - 0xc]
fld dword [eax - 8]
fmul st(2)
fadd st(1)
fstp dword [eax - 8]
fld dword [eax - 4]
fmul st(2)
fadd st(1)
fstp dword [eax - 4]
jne 0x10088df6
cmp edx, edi
jg 0x10088e3f
sub edi, edx
add edi, 1
fld dword [eax]
add eax, 4
sub edi, 1
fmul st(2)
fadd st(1)
fstp dword [eax - 4]
jne 0x10088e2e
mov eax, dword [esp + 0x2c]
fstp st(0)
mov edx, dword [esp + 0x34]
fmul qword [esi + 8]
add eax, 1
sub edx, 1
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], edx
jle 0x10088d98
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
fstp st(0)
test ecx, ecx
fld qword [esi + 8]
mov dword [esp + 0x2c], ecx
jl 0x10088f86
mov edx, ebx
mov edx, dword [edx - 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
add eax, 0xffffffff
add edx, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x3c], edx
test edx, edx
lea edx, [esp + 0x3c]
jg 0x10088eb0
lea edx, [esp + 0x38]
mov edx, dword [edx]
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
jl 0x10088ec4
lea eax, [esp + 0x14]
mov edi, dword [eax]
fld st(1)
mov eax, dword [esi + 0x30]
fsub st(1)
imul eax, edx
fmul qword [esi + 0x28]
add eax, ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
mov ecx, edi
sub ecx, edx
add ecx, 1
cmp ecx, 4
jl 0x10088f38
mov ecx, edi
sub ecx, edx
sub ecx, 3
shr ecx, 2
add ecx, 1
lea edx, [edx + ecx*4]
sub ecx, 1
fld dword [eax]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
fld dword [eax + ebx*4]
lea eax, [eax + ebx*4]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
fld dword [eax + ebx*4]
lea eax, [eax + ebx*4]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
fld dword [eax + ebx*4]
lea eax, [eax + ebx*4]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
lea eax, [eax + ebx*4]
jne 0x10088ef8
cmp edx, edi
jg 0x10088f54
sub edi, edx
add edi, 1
sub edi, 1
fld dword [eax]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov edx, dword [esi + 0x30]
lea eax, [eax + edx*4]
jne 0x10088f41
mov ecx, dword [esp + 0x2c]
fstp st(0)
mov edx, dword [esp + 0x34]
fmul qword [esi + 8]
mov eax, dword [esp + 0x30]
sub ecx, 1
sub edx, 1
add eax, 1
test ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
jge 0x10088ea0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
fstp st(0)
cmp ecx, dword [esp + 0x18]
fld qword [esi + 8]
mov dword [esp + 0x2c], ecx
jg 0x1008941e
mov edx, dword [ebp + 0x14]
mov edx, dword [edx - 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
add edx, 1
sub eax, ecx
add eax, 0xffffffff
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
test edx, edx
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x3c]
jg 0x10088fd3
lea eax, [esp + 0x38]
mov edx, dword [eax]
mov eax, dword [esp + 0x30]
add eax, ecx
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
jl 0x10088fed
lea eax, [esp + 0x14]
mov edi, dword [eax]
fld st(1)
mov eax, dword [esi + 0x30]
fsub st(1)
imul eax, edx
fmul qword [esi + 0x28]
add eax, ecx
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
mov ecx, edi
sub ecx, edx
add ecx, 1
cmp ecx, 4
jl 0x10089061
mov ecx, edi
sub ecx, edx
sub ecx, 3
shr ecx, 2
add ecx, 1
lea edx, [edx + ecx*4]
sub ecx, 1
fld dword [eax]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
fld dword [eax + ebx*4]
lea eax, [eax + ebx*4]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
fld dword [eax + ebx*4]
lea eax, [eax + ebx*4]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
fld dword [eax + ebx*4]
lea eax, [eax + ebx*4]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov ebx, dword [esi + 0x30]
lea eax, [eax + ebx*4]
jne 0x10089021
cmp edx, edi
jg 0x1008907d
sub edi, edx
add edi, 1
sub edi, 1
fld dword [eax]
fmul st(2)
fadd st(1)
fstp dword [eax]
mov edx, dword [esi + 0x30]
lea eax, [eax + edx*4]
jne 0x1008906a
mov ecx, dword [esp + 0x2c]
fstp st(0)
mov edx, dword [esp + 0x34]
fmul qword [esi + 8]
add ecx, 1
sub edx, 1
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], edx
jle 0x10088fc3
jmp 0x1008941e
mov edi, dword [esp + 0x24]
fld qword [esi + 8]
test edi, edi
fld1
jl 0x1008917f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jmp 0x100890d4
fxch st(1)
mov dword [esp + 0x3c], ecx
test ecx, ecx
lea ecx, [esp + 0x3c]
jg 0x100890e4
lea ecx, [esp + 0x38]
mov edx, dword [ecx]
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
jl 0x100890f8
lea eax, [esp + 0x18]
mov ecx, dword [esi + 0x30]
fld st(0)
mov eax, dword [eax]
imul ecx, edi
fsub st(2)
fmul qword [esi + 0x28]
add ecx, dword [ebx - 0x18]
add ecx, edx
cmp edx, eax
jg 0x10089153
sub eax, edx
add eax, 1
mov edx, eax
movzx eax, byte [ecx]
fnstcw word [esp + 0x10]
mov dword [esp + 0x3c], eax
movzx eax, word [esp + 0x10]
fild dword [esp + 0x3c]
or eax, 0xc00
fmul st(3)
mov dword [esp + 0x3c], eax
add ecx, 1
sub edx, 1
fadd st(1)
fldcw word [esp + 0x3c]
fistp dword [esp + 0x3c]
mov al, byte [esp + 0x3c]
mov byte [ecx - 1], al
fldcw word [esp + 0x10]
jne 0x10089117
mov ecx, dword [esp + 0x34]
fstp st(0)
mov eax, dword [esp + 0x30]
fxch st(1)
fmul qword [esi + 8]
sub edi, 1
sub ecx, 1
add eax, 1
test edi, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jge 0x100890d2
fstp st(0)
jmp 0x10089181
fstp st(1)
mov edi, dword [esp + 0x28]
fld qword [esi + 8]
cmp edi, dword [esp + 0x14]
jg 0x10089250
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
sub eax, edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jmp 0x100891b2
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], ecx
test ecx, ecx
lea ecx, [esp + 0x3c]
jg 0x100891c2
lea ecx, [esp + 0x38]
mov edx, dword [ecx]
add eax, edi
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
jl 0x100891d8
lea eax, [esp + 0x18]
mov ecx, dword [esi + 0x30]
fld st(1)
mov eax, dword [eax]
imul ecx, edi
fsub st(1)
fmul qword [esi + 0x28]
add ecx, dword [ebx - 0x18]
add ecx, edx
cmp edx, eax
jg 0x10089233
sub eax, edx
add eax, 1
mov edx, eax
movzx eax, byte [ecx]
fnstcw word [esp + 0x10]
mov dword [esp + 0x3c], eax
movzx eax, word [esp + 0x10]
fild dword [esp + 0x3c]
or eax, 0xc00
fmul st(2)
mov dword [esp + 0x3c], eax
add ecx, 1
sub edx, 1
fadd st(1)
fldcw word [esp + 0x3c]
fistp dword [esp + 0x3c]
mov al, byte [esp + 0x3c]
mov byte [ecx - 1], al
fldcw word [esp + 0x10]
jne 0x100891f7
mov ecx, dword [esp + 0x34]
fstp st(0)
fmul qword [esi + 8]
add edi, 1
sub ecx, 1
cmp edi, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
jle 0x100891ae
mov eax, dword [esp + 0x1c]
fstp st(0)
test eax, eax
fld qword [esi + 8]
mov dword [esp + 0x2c], eax
jl 0x10089336
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0x30]
add eax, 0xffffffff
add ecx, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], ecx
test ecx, ecx
lea ecx, [esp + 0x3c]
jg 0x10089296
lea ecx, [esp + 0x38]
mov edi, dword [ecx]
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
jl 0x100892aa
lea eax, [esp + 0x14]
mov ebx, dword [ebp + 0x14]
fld st(1)
mov eax, dword [eax]
fsub st(1)
mov ecx, edi
imul ecx, edx
fmul qword [esi + 0x28]
add ecx, dword [ebx - 0x18]
mov ebx, dword [esp + 0x2c]
add ecx, ebx
cmp edi, eax
jg 0x1008930c
sub eax, edi
add eax, 1
mov edi, eax
movzx edx, byte [ecx]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
mov dword [esp + 0x3c], edx
or eax, 0xc00
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
fmul st(2)
fadd st(1)
fldcw word [esp + 0x3c]
fistp dword [esp + 0x3c]
mov al, byte [esp + 0x3c]
mov byte [ecx], al
mov edx, dword [esi + 0x30]
add ecx, edx
sub edi, 1
fldcw word [esp + 0x10]
jne 0x100892cf
mov ecx, dword [esp + 0x34]
fstp st(0)
mov eax, dword [esp + 0x30]
fmul qword [esi + 8]
sub ebx, 1
sub ecx, 1
add eax, 1
test ebx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
jge 0x10089286
mov ebx, dword [esp + 0x20]
fstp st(0)
cmp ebx, dword [esp + 0x18]
fld qword [esi + 8]
mov dword [esp + 0x2c], ebx
jg 0x1008941e
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x30]
add eax, 1
sub ecx, ebx
add ecx, 0xffffffff
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
test eax, eax
lea eax, [esp + 0x3c]
jg 0x10089380
lea eax, [esp + 0x38]
mov edi, dword [eax]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + ebx]
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
jl 0x1008939b
lea eax, [esp + 0x14]
mov ebx, dword [ebp + 0x14]
fld st(1)
mov eax, dword [eax]
fsub st(1)
mov ecx, edi
imul ecx, edx
fmul qword [esi + 0x28]
add ecx, dword [ebx - 0x18]
mov ebx, dword [esp + 0x2c]
add ecx, ebx
cmp edi, eax
jg 0x100893fd
sub eax, edi
add eax, 1
mov edi, eax
movzx edx, byte [ecx]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
mov dword [esp + 0x3c], edx
or eax, 0xc00
fild dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
fmul st(2)
fadd st(1)
fldcw word [esp + 0x3c]
fistp dword [esp + 0x3c]
mov al, byte [esp + 0x3c]
mov byte [ecx], al
mov edx, dword [esi + 0x30]
add ecx, edx
sub edi, 1
fldcw word [esp + 0x10]
jne 0x100893c0
mov eax, dword [esp + 0x34]
fstp st(0)
fmul qword [esi + 8]
add ebx, 1
sub eax, 1
cmp ebx, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], eax
jle 0x10089370
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10