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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, dword [0x620024]
xor eax, esp
mov dword [esp + 0xa4], eax
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x30], 8
je 0x436f6a
lea ecx, [esp + 0x10]
call fcn.00404670
lea edi, [esi + 0x18]
movq xmm0, qword [eax]
movq qword [edi], xmm0
xorps xmm0, xmm0
mov eax, dword [eax + 8]
mov dword [edi + 8], eax
cmp dword [esi + 0x3c], 0
movaps xmmword [esp + 0x50], xmm0
jne 0x436bb8
movsd xmm0, qword [esi + 0x34]
lea eax, [esp + 0x50]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436bb8
movzx eax, word [esp + 0x5c]
mov dword [esp + 0x10], eax
jmp 0x436bc0
mov dword [esp + 0x10], 0xffffffff
cmp dword [esi + 0x3c], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x60], xmm0
jne 0x436bf6
movsd xmm0, qword [esi + 0x34]
lea eax, [esp + 0x60]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436bf6
movzx eax, word [esp + 0x6a]
mov dword [esp + 8], eax
jmp 0x436bfe
mov dword [esp + 8], 0xffffffff
cmp dword [esi + 0x3c], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x70], xmm0
jne 0x436c34
movsd xmm0, qword [esi + 0x34]
lea eax, [esp + 0x70]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436c34
movzx eax, word [esp + 0x78]
mov dword [esp + 0x2c], eax
jmp 0x436c3c
mov dword [esp + 0x2c], 0xffffffff
cmp dword [edi + 8], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x80], xmm0
jne 0x436c7a
movsd xmm0, qword [edi]
lea eax, [esp + 0x80]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436c7a
movzx eax, word [esp + 0x86]
mov dword [esp + 0x28], eax
jmp 0x436c82
mov dword [esp + 0x28], 0xffffffff
cmp dword [edi + 8], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x90], xmm0
jne 0x436cc0
movsd xmm0, qword [edi]
lea eax, [esp + 0x90]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436cc0
movzx eax, word [esp + 0x92]
mov dword [esp + 0x24], eax
jmp 0x436cc8
mov dword [esp + 0x24], 0xffffffff
cmp dword [edi + 8], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
jne 0x436cf9
movsd xmm0, qword [edi]
lea eax, [esp + 0x30]
push eax
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436cf9
movzx eax, word [esp + 0x30]
jmp 0x436cfc
or eax, 0xffffffff
xorps xmm0, xmm0
mov ecx, edi
movaps xmmword [esp + 0x40], xmm0
mov word [esp + 0x40], ax
mov eax, dword [esp + 0x24]
mov word [esp + 0x42], ax
mov eax, dword [esp + 0x28]
mov word [esp + 0x46], ax
mov eax, dword [esp + 0x2c]
mov word [esp + 0x48], ax
mov eax, dword [esp + 8]
mov word [esp + 0x4a], ax
mov eax, dword [esp + 0x10]
mov word [esp + 0x4c], ax
lea eax, [esp + 0x40]
push eax
call fcn.004044c0
neg eax
sbb ecx, ecx
lea eax, [esi + 0x18]
inc ecx
mov dword [esp + 0x10], eax
mov dword [edi + 8], ecx
cmp dword [esi + 0x30], 0
jne 0x436dc2
push eax
call fcn.004368e0
test eax, eax
jne 0x436f6a
movsd xmm1, qword [edi]
movsd xmm0, qword [0x5fb2d0]
comisd xmm1, xmm0
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 8], xmm1
ja 0x436db5
fld qword [esp + 8]
sub esp, 8
fstp qword [esp]
call fcn.005999a0
movsd xmm2, qword [esp + 0x18]
add esp, 8
movsd xmm0, qword [0x5fb2d0]
fstp qword [esp + 8]
movsd xmm1, qword [esp + 8]
subsd xmm2, xmm1
subsd xmm1, xmm2
addsd xmm1, qword [0x5fb2a0]
jmp 0x436f27
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
test ecx, ecx
jne 0x436df2
movsd xmm0, qword [eax]
lea ecx, [esp + 0x30]
push ecx
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436df2
movzx eax, word [esp + 0x34]
inc eax
jmp 0x436df5
or eax, 0xffffffff
cmp eax, dword [esi + 0x30]
jne 0x436e69
mov eax, dword [esp + 0x10]
push eax
call fcn.004368e0
test eax, eax
jne 0x436f6a
movsd xmm1, qword [edi]
movsd xmm0, qword [0x5fb2d0]
comisd xmm1, xmm0
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 8], xmm1
ja 0x436e5c
fld qword [esp + 8]
sub esp, 8
fstp qword [esp]
call fcn.005999a0
movsd xmm2, qword [esp + 0x18]
add esp, 8
movsd xmm0, qword [0x5fb2d0]
fstp qword [esp + 8]
movsd xmm1, qword [esp + 8]
subsd xmm2, xmm1
subsd xmm1, xmm2
addsd xmm1, qword [0x5fb2a8]
jmp 0x436f27
cmp dword [esi + 0x20], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x30], xmm0
jne 0x436e9c
movsd xmm0, qword [esi + 0x18]
lea ecx, [esp + 0x30]
push ecx
sub esp, 8
movsd qword [esp], xmm0
call dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
cmp eax, 1
jne 0x436e9c
movzx ecx, word [esp + 0x34]
inc ecx
jmp 0x436e9f
or ecx, 0xffffffff
mov esi, dword [esi + 0x30]
xor edx, edx
cmp ecx, esi
je 0x436eb8
xor eax, eax
cmp ecx, 7
cmovne eax, ecx
inc edx
lea ecx, [eax + 1]
cmp ecx, esi
jne 0x436ea8
movsd xmm2, qword [edi]
xorps xmm0, xmm0
movd xmm1, edx
cvtdq2pd xmm1, xmm1
movsd qword [esp + 8], xmm2
addsd xmm1, xmm0
addsd xmm1, xmm0
addsd xmm1, xmm0
movsd xmm0, qword [0x5fb2d0]
comisd xmm2, xmm0
movsd qword [esp + 0x10], xmm1
ja 0x436f23
fld qword [esp + 8]
sub esp, 8
fstp qword [esp]
call fcn.005999a0
movsd xmm0, qword [edi]
add esp, 8
movsd xmm1, qword [esp + 0x10]
fstp qword [esp + 8]
movsd xmm2, qword [esp + 8]
subsd xmm0, xmm2
subsd xmm2, xmm0
movsd xmm0, qword [0x5fb2d0]
addsd xmm1, xmm2
comisd xmm1, xmm0
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 8], xmm1
jbe 0x436f3e
movaps xmm2, xmm1
jmp 0x436f66
fld qword [esp + 8]
sub esp, 8
fstp qword [esp]
call fcn.0059a400
fstp qword [esp + 0x10]
movsd xmm2, qword [esp + 0x10]
add esp, 8
subsd xmm2, qword [esp + 0x10]
addsd xmm2, qword [esp + 8]
movsd qword [edi], xmm2
mov ecx, dword [esp + 0xac]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.00586281
mov esp, ebp
pop ebp
ret