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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [ecx + 0xc]
push esi
push edi
mov edi, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], ecx
movzx eax, word [edi]
cmp ax, 0x40
jle 0xfd45f0
push 0x40
push 0xdc5574
push ecx
call fcn.00fa8990
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ecx]
movsx esi, ax
shl esi, 6
add esi, 0x27
mov dword [esp + 0x2c], ecx
and esi, 0xfffffff8
lea edx, [esi + 0x264]
call fcn.00fa6d20
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
cmp byte [ecx + 0x1e], 0
jne 0xfd4a22
movsx ecx, word [edi]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], edi
call fcn.00fb4c70
mov ecx, dword [esp + 0x10]
add esi, ecx
push 0x104
push 0
mov dword [esp + 0x3c], esi
mov dword [ecx + 0x14], eax
mov eax, dword [ebp + 0x10]
mov word [ecx + 4], ax
lea eax, [esi + 0x160]
push eax
mov dword [ecx + 0x1c], esi
mov dword [esp + 0x60], eax
call fcn.00ff2be0
mov edx, dword [esp + 0x20]
lea eax, [esi + 0x160]
add esp, 0xc
mov ecx, esi
push eax
call fcn.00fd1690
mov esi, dword [ebp + 8]
add esp, 4
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.00fc0ba0
mov ecx, dword [esp + 0x34]
mov edx, esi
push 0x45
call fcn.00fd1830
add esp, 4
test esi, esi
je 0xfd46c7
cmp word [edi], 0
je 0xfd46b0
mov ecx, esi
call fcn.00fbebe0
test eax, eax
je 0xfd46c7
mov eax, dword [esp + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
push 8
push dword [eax + 0x14]
call fcn.00fc0f90
add esp, 8
xor eax, eax
xor esi, esi
cmp ax, word [edi]
jge 0xfd471f
add edi, 0x14
mov edx, dword [edi + 0xc]
mov ecx, dword [esp + 0x54]
call fcn.00fd18c0
mov eax, dword [edi]
test eax, eax
je 0xfd470c
test byte [eax + 0x22], 0x10
je 0xfd470c
xor ecx, ecx
mov eax, esi
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x34]
cmovae edx, ecx
or dword [eax + 8], ecx
or dword [eax + 0xc], edx
mov eax, dword [esp + 0xc]
inc esi
add edi, 0x38
movsx eax, word [eax]
cmp esi, eax
jl 0xfd46d3
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x34]
mov ecx, edi
call fcn.00fd1c70
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x1e], 0
jne 0xfd4a1e
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov edi, dword [esp + 0x10]
or eax, 0xffffffff
add edi, 0x20
mov dword [esp + 0x20], eax
or esi, 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], edi
cmp cx, word [edx]
jge 0xfd4a39
xorps xmm0, xmm0
mov dword [esp + 0x50], 1
movlpd qword [esp + 0x70], xmm0
or edi, 0xffffffff
movlpd qword [esp + 0x78], xmm0
movsd xmm0, qword [0xdc5b38]
mov dword [esp + 0x40], edi
movsd qword [esp + 0x60], xmm0
jmp 0xfd47aa
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
test edi, edi
jns 0xfd4958
cmp dword [esp + 0x50], 0
je 0xfd47d0
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
jmp 0xfd47d4
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
mov esi, ecx
lea eax, [ecx*8]
sub eax, ecx
inc eax
lea edi, [edx + eax*8]
movsx eax, word [edx]
cmp ecx, eax
jge 0xfd4949
mov edx, dword [esp + 0x10]
mov eax, ecx
add edx, 0x5c
shl eax, 6
add eax, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x58], eax
nop dword [eax + eax]
mov al, byte [edi + 0x15]
and al, 0xa
mov byte [esp + 0x1f], al
cmp esi, ecx
je 0xfd4825
test al, al
jne 0xfd4949
mov edx, dword [edi + 0x18]
mov ecx, dword [esp + 0x54]
call fcn.00fd1880
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0xfd4853
mov ecx, dword [esp + 0x38]
cmp esi, ecx
jne 0xfd492b
inc ecx
mov dword [esp + 0x38], ecx
jmp 0xfd492b
cmp dword [esp + 0x30], 0
jne 0xfd4865
mov eax, dword [ebp + 0xc]
test eax, eax
je 0xfd4865
mov ecx, dword [eax]
jmp 0xfd4867
xor ecx, ecx
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x34]
test byte [eax + 0x22], 0x10
lea eax, [esp + 0xa0]
je 0xfd4898
push dword [esp + 0x58]
push eax
push ecx
push dword [esp + 0x54]
mov ecx, dword [esp + 0x24]
push dword [esp + 0x5c]
push edi
call fcn.00fd2ec0
add esp, 0x18
jmp 0xfd48af
push eax
push ecx
push dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x58]
push edi
call fcn.00fd30d0
add esp, 0x14
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
and ecx, dword [esp + 0x20]
and eax, dword [esp + 0x24]
or ecx, eax
mov ecx, dword [esp + 0x38]
jne 0xfd4924
cmp esi, ecx
je 0xfd48e2
movsd xmm1, qword [esp + 0x60]
comisd xmm1, xmmword [esp + 0xb0]
jbe 0xfd4924
movaps xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x70], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x80], xmm0
movq xmm0, qword [esp + 0xc0]
movq qword [esp + 0x90], xmm0
movsd xmm0, qword [esp + 0x80]
mov dword [esp + 0x40], esi
movsd qword [esp + 0x60], xmm0
cmp byte [esp + 0x1f], 0
jne 0xfd4945
mov edx, dword [esp + 0xc]
inc esi
add dword [esp + 0x58], 0x40
add edi, 0x38
movsx eax, word [edx]
cmp esi, eax
jl 0xfd4810
jmp 0xfd4949
mov edx, dword [esp + 0xc]
sub dword [esp + 0x50], 1
mov edi, dword [esp + 0x40]
jns 0xfd47a2
mov edi, dword [esp + 0x70]
test edi, 0x1000000
je 0xfd496d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
mov esi, dword [esp + 0x44]
movq xmm0, qword [esp + 0x70]
and dword [esp + 0x18], edi
mov eax, dword [esp + 0x78]
movq qword [esi], xmm0
mov dword [esi + 8], eax
and edi, 0xf0000
je 0xfd499d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x44]
mov dword [esi + 0x14], eax
inc dword [ecx + 0x44]
jmp 0xfd49a4
mov dword [esi + 0x14], 0xffffffff
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x54]
lea esi, [eax*8]
sub esi, eax
mov edx, dword [edx + esi*8 + 0x20]
call fcn.00fd1880
not edx
not eax
and dword [esp + 0x24], edx
mov edx, dword [esp + 0x44]
and dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov byte [edx + 0x28], al
mov edx, dword [esp + 0xc]
mov eax, dword [edx + esi*8 + 0x3c]
test eax, eax
je 0xfd49e5
test edi, edi
je 0xfd4a0b
mov ecx, dword [esp + 0x30]
movsx eax, word [edx]
inc ecx
add dword [esp + 0x44], 0x40
mov dword [esp + 0x30], ecx
cmp ecx, eax
jge 0xfd4a35
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0xfd4774
push dword [eax]
push 0xdc5590
push dword [esp + 0x1c]
call fcn.00fa8990
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, eax
call fcn.00fd4540
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x40], 0
jne 0xfd4a1e
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 0x1e], 0
jne 0xfd4a1e
mov ecx, dword [esp + 0x18]
and ecx, 0x4000000
je 0xfd4a6a
mov eax, dword [ebp + 0xc]
test eax, eax
je 0xfd4a66
mov dword [eax], 0
mov eax, dword [esp + 0x14]
test byte [ebp + 0x10], 4
je 0xfd4a82
test ecx, ecx
je 0xfd4a82
mov ecx, dword [esp + 0x10]
mov byte [ecx + 6], 1
and dword [edi], 0xff7fffff
or edx, 0xffffffff
mov ecx, eax
call fcn.00fc52f0
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x30], 0
cmp ax, word [ecx]
jge 0xfd4c20
jmp 0xfd4ab4
mov ecx, dword [esp + 0xc]
movzx eax, byte [edi + 0x28]
lea edi, [eax*8]
sub edi, eax
mov esi, dword [ecx + edi*8 + 0x14]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esi + 0x40]
call fcn.00fcb320
test byte [esi + 0x22], 2
mov edx, eax
mov dword [esp + 0x18], edx
jne 0xfd4bfd
cmp dword [esi + 0x1c], 0
jne 0xfd4bfd
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
test ecx, 0x8000000
je 0xfd4b26
mov ecx, dword [esp + 0x2c]
mov edx, esi
call fcn.00fd09c0
mov ecx, dword [esp + 0x3c]
mov edx, 0x7c
push 0xfffffffffffffff6
push eax
mov eax, dword [esp + 0x14]
push 0
push 0
push dword [eax + edi*8 + 0x20]
call fcn.00fb4c30
add esp, 0x14
jmp 0xfd4ba4
test ecx, 0x800000
jne 0xfd4ba4
test byte [ebp + 0x10], 0x10
jne 0xfd4ba4
mov ecx, dword [esp + 0x10]
xor eax, eax
cmp byte [ecx + 6], al
mov ecx, dword [esp + 0x14]
setne al
add eax, 0x26
push eax
mov eax, dword [esp + 0x10]
push esi
push edx
mov edx, dword [eax + edi*8 + 0x20]
call fcn.00fc7c10
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp byte [eax + 6], 0
jne 0xfd4ba4
cmp dword [esi + 0xc], 0x40
jge 0xfd4ba4
mov eax, dword [esp + 0xc]
xor esi, esi
mov edx, dword [eax + edi*8 + 0x30]
mov ecx, dword [eax + edi*8 + 0x34]
mov eax, edx
or eax, ecx
je 0xfd4b8d
nop
shrd edx, ecx, 1
inc esi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0xfd4b80
mov ecx, dword [esp + 0x3c]
push 0xfffffffffffffff2
push esi
call fcn.00fab5e0
lea edx, [eax - 1]
call fcn.00fb50f0
add esp, 8
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
test dword [ecx], 0xf0000
mov eax, dword [eax + edi*8 + 0x20]
mov dword [ecx + 0x10], eax
je 0xfd4bee
mov esi, dword [ecx + 8]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.00fc53f0
mov edi, dword [esp + 0x18]
mov edx, 0x26
mov ecx, dword [esp + 0x3c]
push 0xfffffffffffffff0
push eax
mov eax, dword [esp + 0x30]
push edi
push dword [esi + 0x14]
push dword [eax + 0x14]
call fcn.00fb4c30
add esp, 0x14
jmp 0xfd4bf2
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00fc52f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
inc ecx
add edi, 0x40
mov dword [esp + 0x30], ecx
movsx eax, word [eax]
mov dword [esp + 0x28], edi
cmp ecx, eax
jl 0xfd4ab0
mov ecx, dword [esp + 0x3c]
call fcn.00fab5e0
mov ecx, dword [esp + 0x10]
xor edi, edi
or edx, 0xffffffff
xor esi, esi
mov dword [ecx + 0xc], eax
or eax, 0xffffffff
mov ecx, dword [esp + 0xc]
cmp di, word [ecx]
jge 0xfd4c83
mov ecx, dword [esp + 0x10]
lea edi, [ecx + 0x40]
jmp 0xfd4c54
mov ecx, dword [esp + 0x10]
push edx
push eax
push dword [ebp + 0x10]
mov edx, esi
call fcn.00fd39d0
mov ecx, dword [edi]
lea edi, [edi + 0x40]
mov dword [esp + 0x24], eax
inc esi
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
movsx ecx, word [ecx]
cmp esi, ecx
jl 0xfd4c50
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret