Function at 0x101d2a10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x10359e88
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push esi
push edi
mov eax, dword [0x105be7d0]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov eax, ecx
mov dword [esp + 0x10], eax
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push 1
push edi
mov dword [esp + 0x14], edi
call fcn.101d07c0
test eax, eax
je 0x101d2edc
movsd xmm3, qword [esi]
movsd xmm2, qword [esi + 8]
mov esi, dword [eax + 0x3c]
cvtpd2ps xmm3, xmm3
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x14], xmm3
movss dword [esp + 0x18], xmm2
test esi, esi
je 0x101d2ac3
mov edi, dword [esp + 0x18]
cmp dword [esi + 0x14], 0
je 0x101d2aac
movdqu xmm0, xmmword [esi + 4]
push edi
push dword [esp + 0x18]
sub esp, 0x10
mov eax, esp
movdqu xmmword [eax], xmm0
call fcn.101ca100
add esp, 0x18
test al, al
jne 0x101d2b6f
mov esi, dword [esi + 0x3c]
test esi, esi
jne 0x101d2a83
movss xmm2, dword [esp + 0x18]
movss xmm3, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
cmp byte [ebp + 0x10], 0
je 0x101d2c09
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0xc8]
cmp dword [ecx + edi*4 - 4], 0
je 0x101d2c09
mov ecx, dword [ecx + edi*4 - 4]
mov ecx, dword [ecx]
mov edi, dword [ecx]
cmp edi, ecx
je 0x101d2c09
mov edx, dword [edi + 8]
movss xmm0, dword [edx + 0x10]
comiss xmm0, xmm3
ja 0x101d2bff
comiss xmm3, dword [edx + 0x18]
ja 0x101d2bff
movss xmm0, dword [edx + 0x14]
comiss xmm0, xmm2
ja 0x101d2bff
comiss xmm2, dword [edx + 0x1c]
ja 0x101d2bff
mov eax, dword [edx + 0x20]
cmp eax, dword [edx + 0x24]
je 0x101d2df3
mov esi, eax
mov eax, dword [edx + 0x24]
cmp esi, eax
je 0x101d2bff
mov edi, edi
movss xmm0, dword [esi]
comiss xmm0, xmm3
ja 0x101d2bea
comiss xmm3, dword [esi + 8]
ja 0x101d2bea
movss xmm0, dword [esi + 4]
comiss xmm0, xmm2
ja 0x101d2bea
comiss xmm2, dword [esi + 0xc]
ja 0x101d2bea
mov dl, 1
jmp 0x101d2bec
push 0x48
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov ecx, eax
add esp, 4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x60], 0
test ecx, ecx
je 0x101d2bcc
movdqu xmm0, xmmword [esi + 4]
sub esp, 0x10
mov eax, esp
movdqu xmmword [eax], xmm0
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x20]
lea eax, [esi + 0x14]
push eax
push dword [esp + 0x2c]
call fcn.101ce490
mov dword [esp + 0x60], 0xffffffff
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
xor eax, eax
mov dword [esp + 0x60], 0xffffffff
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
xor dl, dl
test dl, dl
jne 0x101d2d38
add esi, 0x10
cmp esi, eax
jne 0x101d2b40
mov edi, dword [edi]
cmp edi, ecx
jne 0x101d2af2
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov edx, dword [ecx + 0xc4]
cmp dword [edx + eax*4 - 4], 0
je 0x101d2edc
mov edx, dword [edx + eax*4 - 4]
xor edi, edi
xor ecx, ecx
lea ebx, [ebx]
movss xmm0, dword [edx + ecx]
ucomiss xmm0, dword [edx + ecx + 8]
lahf
test ah, 0x44
jnp 0x101d2edc
movss xmm0, dword [edx + ecx + 4]
ucomiss xmm0, dword [edx + ecx + 0xc]
lahf
test ah, 0x44
jnp 0x101d2edc
movdqu xmm1, xmmword [edx + ecx]
xorps xmm0, xmm0
xorps xmm6, xmm6
cvtss2sd xmm0, xmm3
xorps xmm7, xmm7
xorps xmm5, xmm5
movsd qword [esp + 0x44], xmm0
xorps xmm4, xmm4
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
cvtss2sd xmm7, xmm1
movsd qword [esp + 0x4c], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
cvtss2sd xmm6, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xaa
movss xmm1, dword [edx + ecx + 0xc]
cvtss2sd xmm5, xmm0
cvtss2sd xmm4, xmm1
comisd xmm7, xmm5
jbe 0x101d2cb9
movapd xmm0, xmm7
movaps xmm7, xmm5
movapd xmm5, xmm0
comisd xmm6, xmm4
jbe 0x101d2cca
movapd xmm0, xmm6
movaps xmm6, xmm4
movapd xmm4, xmm0
movss xmm0, dword [esp + 0x44]
subsd xmm5, xmm7
movss xmm1, dword [esp + 0x48]
subsd xmm4, xmm6
movsd qword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp + 0x30], xmm0
movsd xmm0, qword [esp + 0x14]
unpcklps xmm0, xmm1
comisd xmm7, xmm0
ja 0x101d2d2f
addsd xmm5, xmm7
comisd xmm0, xmm5
ja 0x101d2d2f
movsd xmm0, qword [esp + 0x2c]
comisd xmm6, xmm0
ja 0x101d2d2f
addsd xmm4, xmm6
comisd xmm0, xmm4
jbe 0x101d2e2f
inc edi
add ecx, 0x10
jmp 0x101d2c30
push 0x40
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x60], 1
test edx, edx
je 0x101d2bcc
movss xmm4, dword [esi]
movss xmm3, dword [esi + 4]
movss xmm2, dword [esi + 8]
movss xmm1, dword [esi + 0xc]
cvtps2pd xmm2, xmm2
cvtps2pd xmm4, xmm4
cvtps2pd xmm1, xmm1
comisd xmm4, xmm2
cvtps2pd xmm3, xmm3
jbe 0x101d2d89
movapd xmm0, xmm4
movaps xmm4, xmm2
movapd xmm2, xmm0
comisd xmm3, xmm1
jbe 0x101d2d9a
movapd xmm0, xmm3
movaps xmm3, xmm1
movapd xmm1, xmm0
mov ecx, dword [edi + 8]
subsd xmm1, xmm3
add ecx, 0x5c
movsd qword [esp + 0x2c], xmm3
subsd xmm2, xmm4
movsd qword [esp + 0x24], xmm4
cmp dword [ecx + 0x14], 8
movsd qword [esp + 0x3c], xmm1
movsd qword [esp + 0x34], xmm2
jb 0x101d2dc8
mov ecx, dword [ecx]
push dword [esp + 0xc]
movdqu xmm0, xmmword [esp + 0x28]
sub esp, 0x20
mov eax, esp
push ecx
movdqu xmmword [eax], xmm0
mov ecx, edx
movdqu xmm0, xmmword [esp + 0x5c]
movdqu xmmword [eax + 0x10], xmm0
call fcn.101ce670
jmp 0x101d2bce
push 0x40
mov esi, edx
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x60], 2
test edx, edx
je 0x101d2bcc
movss xmm4, dword [esi + 0x10]
movss xmm3, dword [esi + 0x14]
movss xmm2, dword [esi + 0x18]
movss xmm1, dword [esi + 0x1c]
jmp 0x101d2d6c
push 0x38
call dword [sym.imp.MSVCR120.dll_void____cdecl_operator_new_unsigned_int_]
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov dword [esp + 0x60], 3
test esi, esi
je 0x101d2ebc
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [esp + 0xc]
add ecx, ecx
mov eax, dword [eax + 0xc4]
mov eax, dword [eax + edx*4 - 4]
movdqu xmm0, xmmword [eax + ecx*8]
mov dword [esi], vtable.PageElement.0
mov byte [esp + 0x60], 4
sub esp, 0x10
mov eax, dword [esp + 0x20]
lea ecx, [esi + 0x10]
mov dword [esi + 4], eax
mov eax, esp
mov dword [esi], vtable.PdfImage.0
mov dword [esi + 8], edx
movdqu xmmword [eax], xmm0
call fcn.101ca090
add esp, 0x10
mov dword [esi + 0x30], edi
mov byte [esp + 0x60], 3
mov dword [esp + 0x60], 0xffffffff
mov eax, esi
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
xor esi, esi
mov dword [esp + 0x60], 0xffffffff
mov eax, esi
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
xor eax, eax
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc