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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
sub esp, 0x40
push esi
mov esi, dword [ebp + 8]
push edi
push eax
mov edi, dword [esi]
push edi
call fcn.10488f90
mov ecx, dword [ebp + 0xc]
add esp, 8
cmp dword [ecx + 8], 0xc
jne 0x104890a2
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x10]
je 0x104890ac
mov eax, dword [ecx]
cmp eax, dword [edi + 0x24]
jb 0x104890a2
push eax
push ecx
push edi
call fcn.1048abb0
add esp, 0xc
jmp 0x104890ac
push ecx
push edi
call fcn.1048ab50
add esp, 8
push esi
call fcn.10482590
mov eax, dword [esi + 0x1c]
add esp, 4
mov dword [esp + 0x38], 3
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x40], 0xffffffff
cmp eax, 0x11f
je 0x104890e2
cmp eax, 0x10a
jne 0x104897ba
push dword [ebp + 8]
mov esi, dword [esi + 8]
call fcn.10482590
mov eax, dword [esp + 0x3c]
add esp, 4
mov dword [esp + 0x30], esi
mov esi, dword [ebp + 0xc]
mov dword [esi + 8], 9
cmp eax, 4
jne 0x1048914a
movsd xmm1, qword [esp + 0x30]
movaps xmm0, xmm1
addsd xmm0, qword [0x1055bbe8]
movsd qword [esp + 0x28], xmm0
mov ecx, dword [esp + 0x28]
movzx eax, cl
cmp ecx, eax
jne 0x1048916f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x1048916f
lea eax, [ecx + 0x100]
mov dword [esi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x1048916f
lea eax, [esp + 0x30]
push eax
push edi
call fcn.10488b10
add esp, 8
cmp eax, 0xff
ja 0x1048916f
not eax
mov dword [esi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x30]
push eax
push edi
call fcn.10488f90
add esp, 8
cmp dword [esp + 0x38], 0xc
jne 0x10489485
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
cmp eax, dword [esp + 0x40]
je 0x104897ae
mov dword [esp + 0xc], esi
cmp esi, dword [edi + 0x24]
jb 0x10489485
push esi
lea eax, [esp + 0x34]
push eax
push edi
call fcn.1048acd0
add esp, 0xc
cmp dword [esp + 0x38], 0xa
jne 0x1048921b
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffffff
je 0x1048921b
mov edx, dword [esp + 0x3c]
cmp edx, 0xffffffff
jne 0x104891d5
mov dword [esp + 0x3c], ecx
jmp 0x1048921f
mov esi, dword [edi + 0x34]
nop dword [eax + eax]
movzx eax, word [esi + edx*8 + 2]
sub eax, 0x8000
cmp eax, 0xffffffff
je 0x104891fb
inc eax
add eax, edx
cmp eax, 0xffffffff
je 0x104891fb
mov edx, eax
jmp 0x104891e0
mov esi, dword [esp + 0xc]
sub ecx, edx
add ecx, 0x7fff
cmp ecx, 0xffff
ja 0x104897c5
mov eax, dword [edi + 0x34]
mov word [eax + edx*8 + 2], cx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
cmp ecx, edx
je 0x104897ae
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
cmp ecx, 0xffffffff
je 0x1048928c
mov esi, dword [edi + 0x34]
lea eax, [ecx - 1]
cmp ecx, 1
cmovb eax, ecx
mov eax, dword [esi + eax*8]
movzx esi, al
mov dword [esp + 0x20], esi
cmp esi, 0xc
mov esi, dword [esp + 0xc]
je 0x10489272
cmp dword [esp + 0x20], 0xd
je 0x10489272
and eax, 0xff00
cmp eax, 0xff00
jne 0x104892e1
mov eax, dword [edi + 0x34]
movzx eax, word [eax + ecx*8 + 2]
sub eax, 0x8000
cmp eax, 0xffffffff
je 0x1048928c
inc ecx
add ecx, eax
cmp ecx, 0xffffffff
jne 0x10489240
cmp edx, 0xffffffff
je 0x10489354
mov ecx, dword [edi + 0x34]
nop dword [eax + eax]
cmp edx, 1
lea eax, [edx - 1]
cmovb eax, edx
mov eax, dword [ecx + eax*8]
movzx ecx, al
cmp ecx, 0xc
je 0x104892c5
cmp ecx, 0xd
je 0x104892c5
and eax, 0xff00
cmp eax, 0xff00
jne 0x104892e1
mov ecx, dword [edi + 0x34]
movzx eax, word [ecx + edx*8 + 2]
sub eax, 0x8000
cmp eax, 0xffffffff
je 0x10489354
inc edx
add edx, eax
cmp edx, 0xffffffff
jne 0x104892a0
jmp 0x10489354
cmp dword [esp + 0x38], 0xa
jne 0x104892f2
mov dword [esp + 0x10], 0xffffffff
jmp 0x104892ff
push edi
call fcn.10488410
add esp, 4
mov dword [esp + 0x10], eax
shl esi, 8
mov ecx, esi
or ecx, 0x10029
push ecx
push edi
call fcn.10487d70
mov ecx, dword [edi + 0x20]
shl ecx, 8
or ecx, 0x80010054
mov dword [esp + 0x1c], eax
push ecx
push edi
call fcn.10487d70
or esi, 0x20029
push esi
push edi
call fcn.10487d70
mov ecx, dword [edi + 0x14]
push dword [esp + 0x28]
mov dword [edi + 0x18], ecx
lea ecx, [edi + 0x1c]
push ecx
push edi
mov dword [esp + 0x48], eax
call fcn.1048bd60
mov esi, dword [esp + 0x30]
add esp, 0x24
mov eax, dword [edi + 0x14]
mov dword [edi + 0x18], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
cmp ecx, 0xffffffff
je 0x1048947c
nop
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*8]
mov esi, dword [edx + ecx*8]
shr eax, 0x10
sub eax, 0x8000
shr esi, 8
mov dword [esp + 0x28], esi
cmp eax, 0xffffffff
jne 0x10489391
or eax, eax
jmp 0x10489394
inc eax
add eax, ecx
cmp ecx, 1
mov dword [esp + 0x1c], eax
lea esi, [ecx - 1]
cmovb esi, ecx
mov eax, dword [edx + esi*8]
movzx ecx, al
mov dword [esp + 0x18], ecx
cmp ecx, 0xc
mov ecx, dword [esp + 0x10]
je 0x10489416
cmp dword [esp + 0x18], 0xd
je 0x10489416
shr eax, 8
cmp al, 0xff
jne 0x104893f9
mov ecx, dword [esp + 0xc]
cmp ecx, 0xff
jne 0x104893e2
mov eax, dword [esp + 0x28]
movzx eax, al
shl eax, 8
or eax, 0x80000054
mov dword [edx + esi*8], eax
jmp 0x1048943d
movzx eax, byte [edx + esi*8 + 9]
mov byte [edx + esi*8 + 1], cl
cmp ecx, eax
jb 0x1048943d
mov al, cl
inc al
mov byte [edx + esi*8 + 9], al
jmp 0x1048943d
mov eax, dword [esp + 0x14]
sub eax, ecx
add eax, 0x7fff
cmp eax, 0xffff
ja 0x104897c5
mov word [edx + ecx*8 + 2], ax
jmp 0x10489461
mov ecx, dword [esp + 0xc]
cmp ecx, 0xff
je 0x1048942f
shr eax, 0x10
cmp ecx, eax
je 0x1048942f
mov byte [edx + esi*8 + 1], cl
jmp 0x1048943d
mov eax, dword [esp + 0x18]
add al, 2
mov byte [edx + esi*8 + 1], 0
mov byte [edx + esi*8], al
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
sub ecx, edx
add ecx, 0x7fff
cmp ecx, 0xffff
ja 0x104897c5
mov eax, dword [edi + 0x34]
mov word [eax + edx*8 + 2], cx
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x10489370
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
push dword [esp + 0x24]
jmp 0x1048979f
lea eax, [esp + 0x30]
push eax
push edi
call fcn.10488f90
add esp, 8
cmp dword [esp + 0x38], 0xc
jne 0x104894a6
mov eax, dword [esp + 0x30]
cmp eax, dword [edi + 0x24]
jb 0x104894a6
dec dword [edi + 0x20]
mov esi, dword [edi + 0x20]
movzx eax, byte [edi + 0x42]
mov dword [esp + 0xc], esi
lea ecx, [esi + 1]
cmp ecx, eax
jbe 0x104894c7
cmp ecx, 0xfa
jae 0x104897d2
mov byte [edi + 0x42], cl
push esi
lea eax, [esp + 0x34]
mov dword [edi + 0x20], ecx
push eax
push edi
call fcn.1048acd0
add esp, 0xc
cmp dword [esp + 0x38], 0xa
jne 0x1048953b
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffffff
je 0x1048953b
mov edx, dword [esp + 0x3c]
cmp edx, 0xffffffff
jne 0x104894f8
mov dword [esp + 0x3c], ecx
jmp 0x1048953f
mov esi, dword [edi + 0x34]
nop dword [eax + eax]
movzx eax, word [esi + edx*8 + 2]
sub eax, 0x8000
cmp eax, 0xffffffff
je 0x1048951b
inc eax
add eax, edx
cmp eax, 0xffffffff
je 0x1048951b
mov edx, eax
jmp 0x10489500
mov esi, dword [esp + 0xc]
sub ecx, edx
add ecx, 0x7fff
cmp ecx, 0xffff
ja 0x104897df
mov eax, dword [edi + 0x34]
mov word [eax + edx*8 + 2], cx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
cmp ecx, edx
je 0x104897ae
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x14], 0xffffffff
cmp ecx, 0xffffffff
je 0x104895ac
mov esi, dword [edi + 0x34]
lea eax, [ecx - 1]
cmp ecx, 1
cmovb eax, ecx
mov eax, dword [esi + eax*8]
movzx esi, al
mov dword [esp + 0x28], esi
cmp esi, 0xc
mov esi, dword [esp + 0xc]
je 0x10489592
cmp dword [esp + 0x28], 0xd
je 0x10489592
and eax, 0xff00
cmp eax, 0xff00
jne 0x10489605
mov eax, dword [edi + 0x34]
movzx eax, word [eax + ecx*8 + 2]
sub eax, 0x8000
cmp eax, 0xffffffff
je 0x104895ac
inc ecx
add ecx, eax
cmp ecx, 0xffffffff
jne 0x10489560
cmp edx, 0xffffffff
je 0x10489678
mov ecx, dword [edi + 0x34]
nop dword [eax + eax]
cmp edx, 1
lea eax, [edx - 1]
cmovb eax, edx
mov eax, dword [ecx + eax*8]
movzx ecx, al
cmp ecx, 0xc
je 0x104895e5
cmp ecx, 0xd
je 0x104895e5
and eax, 0xff00
cmp eax, 0xff00
jne 0x10489605
mov ecx, dword [edi + 0x34]
movzx eax, word [ecx + edx*8 + 2]
sub eax, 0x8000
cmp eax, 0xffffffff
je 0x10489678
inc edx
add edx, eax
cmp edx, 0xffffffff
jne 0x104895c0
jmp 0x10489678
cmp dword [esp + 0x38], 0xa
jne 0x10489616
mov dword [esp + 0x24], 0xffffffff
jmp 0x10489623
push edi
call fcn.10488410
add esp, 4
mov dword [esp + 0x24], eax
shl esi, 8
mov ecx, esi
or ecx, 0x10029
push ecx
push edi
call fcn.10487d70
mov ecx, dword [edi + 0x20]
shl ecx, 8
or ecx, 0x80010054
mov dword [esp + 0x28], eax
push ecx
push edi
call fcn.10487d70
or esi, 0x20029
push esi
push edi
call fcn.10487d70
mov ecx, dword [edi + 0x14]
push dword [esp + 0x3c]
mov dword [edi + 0x18], ecx
lea ecx, [edi + 0x1c]
push ecx
push edi
mov dword [esp + 0x38], eax
call fcn.1048bd60
mov esi, dword [esp + 0x30]
add esp, 0x24
mov eax, dword [edi + 0x14]
mov dword [edi + 0x18], eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
cmp ecx, 0xffffffff
je 0x1048979b
mov edx, dword [edi + 0x34]
mov eax, dword [edx + ecx*8]
mov esi, dword [edx + ecx*8]
shr eax, 0x10
sub eax, 0x8000
shr esi, 8
mov dword [esp + 0x28], esi
cmp eax, 0xffffffff
jne 0x104896b4
or eax, eax
jmp 0x104896b7
inc eax
add eax, ecx
cmp ecx, 1
mov dword [esp + 0x1c], eax
lea esi, [ecx - 1]
cmovb esi, ecx
mov eax, dword [edx + esi*8]
movzx ecx, al
mov dword [esp + 0x24], ecx
cmp ecx, 0xc
mov ecx, dword [esp + 0x10]
je 0x10489739
cmp dword [esp + 0x24], 0xd
je 0x10489739
shr eax, 8
cmp al, 0xff
jne 0x1048971c
mov ecx, dword [esp + 0xc]
cmp ecx, 0xff
jne 0x10489705
mov eax, dword [esp + 0x28]
movzx eax, al
shl eax, 8
or eax, 0x80000054
mov dword [edx + esi*8], eax
jmp 0x10489760
movzx eax, byte [edx + esi*8 + 9]
mov byte [edx + esi*8 + 1], cl
cmp ecx, eax
jb 0x10489760
mov al, cl
inc al
mov byte [edx + esi*8 + 9], al
jmp 0x10489760
mov eax, dword [esp + 0x20]
sub eax, ecx
add eax, 0x7fff
cmp eax, 0xffff
ja 0x104897c5
mov word [edx + ecx*8 + 2], ax
jmp 0x10489780
mov ecx, dword [esp + 0xc]
cmp ecx, 0xff
je 0x10489752
shr eax, 0x10
cmp ecx, eax
je 0x10489752
mov byte [edx + esi*8 + 1], cl
jmp 0x10489760
mov eax, dword [esp + 0x24]
add al, 2
mov byte [edx + esi*8 + 1], 0
mov byte [edx + esi*8], al
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
sub ecx, edx
add ecx, 0x7fff
cmp ecx, 0xffff
ja 0x104897c5
mov eax, dword [edi + 0x34]
mov word [eax + edx*8 + 2], cx
mov eax, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x10489693
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
push dword [esp + 0x14]
push esi
push eax
push dword [esp + 0x48]
push edi
call fcn.1048bf60
add esp, 0x14
mov eax, dword [ebp + 0xc]
pop edi
mov dword [eax + 4], esi
pop esi
mov esp, ebp
pop ebp
ret
push 0x11f
push esi
call fcn.10488bd0
push 0x9f6
push dword [edi + 4]
call fcn.10488bb0
push 0xa11
push dword [edi + 4]
call fcn.10488bb0
push 0x9f6
push dword [edi + 4]
call fcn.10488bb0
int3