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

Disassembly:
sub esp, 0x158
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x154], eax
and dword [esp + 0x15c], 0xfffff00f
lea eax, [esp + 0x15c]
and dword [esp + 0x160], 0xf
push ebx
push ebp
push esi
push edi
mov ebx, ecx
mov dword [esp + 0x3c], 0
push 8
push eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x48], 0
mov byte [esp + 0x50], 0
call fcn.105093d0
mov ecx, dword [esp + 0x170]
xor eax, eax
and ecx, 4
or eax, ecx
je 0x104d9102
mov eax, dword [esp + 0x174]
jmp 0x104d9105
or eax, 0xffffffff
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x3c]
push 4
lea eax, [esp + 0x14]
push eax
call fcn.105093d0
lea ecx, [esp + 0x3c]
call fcn.10509840
mov dword [esp + 0x28], eax
lea ebp, [ebx + 0xa4e58]
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0
push eax
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
call fcn.104b86b0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x104d9152
mov edx, dword [eax + 8]
jmp 0x104d9154
xor edx, edx
mov dword [esp + 0x14], edx
test edx, edx
jne 0x104d95f4
mov ebx, dword [esp + 0x170]
xor eax, eax
mov ecx, ebx
mov dword [esp + 0x4c], 1
and ecx, 8
or eax, ecx
jne 0x104d917e
mov dword [esp + 0x4c], edx
mov ecx, ebx
xor eax, eax
and ecx, 4
or eax, ecx
je 0x104d9190
mov edi, 1
jmp 0x104d9192
xor edi, edi
mov esi, dword [esp + 0x16c]
mov eax, esi
and eax, 0xffff000
mov dword [esp + 0x50], edi
or eax, 0
je 0x104d91b0
mov eax, 1
jmp 0x104d91b2
xor eax, eax
mov dword [esp + 0x54], eax
mov ecx, esi
mov eax, ebx
mov edx, esi
shrd ecx, eax, 0xc
shrd edx, ebx, 0x1c
mov eax, ecx
and eax, 0xf
mov eax, dword [eax*8 + 0x10a2e778]
mov dword [esp + 0x58], eax
mov eax, ecx
shr eax, 4
and eax, 0xf
mov eax, dword [eax*8 + 0x10a2e778]
mov dword [esp + 0x5c], eax
mov eax, edx
and eax, 7
shr edx, 3
and edx, 7
mov eax, dword [eax*4 + 0x10a2e7e8]
mov dword [esp + 0x60], eax
mov eax, ecx
shr eax, 8
and eax, 0xf
shr ecx, 0xc
and ecx, 0xf
mov eax, dword [eax*8 + 0x10a2e77c]
mov dword [esp + 0x64], eax
mov eax, dword [ecx*8 + 0x10a2e77c]
mov dword [esp + 0x68], eax
mov eax, dword [edx*4 + 0x10a2e7e8]
mov dword [esp + 0x6c], eax
mov eax, esi
and eax, 1
or eax, 0
je 0x104d923a
mov dl, 1
jmp 0x104d923c
xor dl, dl
mov eax, esi
and eax, 2
or eax, 0
je 0x104d924a
mov cl, 2
jmp 0x104d924c
xor cl, cl
mov eax, esi
or cl, dl
and eax, 4
or eax, 0
je 0x104d925c
mov al, 4
jmp 0x104d925e
xor al, al
and esi, 8
or cl, al
or esi, 0
je 0x104d926c
mov bl, 8
jmp 0x104d926e
xor bl, bl
or bl, cl
mov byte [esp + 0x70], bl
test edi, edi
je 0x104d94b5
mov edi, dword [esp + 0x174]
mov eax, edi
and eax, 0x7ff
mov byte [esp + 0x90], bl
neg eax
mov byte [esp + 0xb0], bl
mov esi, edi
mov byte [esp + 0xd0], bl
sbb eax, eax
mov dword [esp + 0xe4], 0
neg eax
mov dword [esp + 0xe8], 0
mov dword [esp + 0x74], eax
and esi, 0xf
mov edx, edi
shr edx, 4
and edx, 0xf
mov eax, dword [esi*8 + 0x10a2e778]
mov dword [esp + 0x78], eax
movups xmm0, xmmword [0x10a453a0]
mov eax, dword [edx*8 + 0x10a2e778]
mov dword [esp + 0x7c], eax
mov eax, edi
shr eax, 8
and eax, 7
shr edi, 0xb
movups xmmword [esp + 0xd4], xmm0
mov ecx, dword [eax*4 + 0x10a2e7e8]
mov eax, dword [esi*8 + 0x10a2e77c]
mov esi, edi
mov dword [esp + 0x84], eax
mov eax, dword [edx*8 + 0x10a2e77c]
mov edx, edi
mov dword [esp + 0x88], eax
mov eax, edi
and eax, 0x7ff
mov dword [esp + 0x80], ecx
neg eax
mov dword [esp + 0x8c], ecx
sbb eax, eax
and esi, 0xf
neg eax
shr edx, 4
mov dword [esp + 0x94], eax
and edx, 0xf
mov eax, dword [esi*8 + 0x10a2e778]
mov dword [esp + 0x98], eax
mov eax, dword [edx*8 + 0x10a2e778]
mov dword [esp + 0x9c], eax
mov eax, edi
shr eax, 8
and eax, 7
shr edi, 0xb
mov ecx, dword [eax*4 + 0x10a2e7e8]
mov eax, dword [esi*8 + 0x10a2e77c]
mov esi, edi
mov dword [esp + 0xa4], eax
mov eax, dword [edx*8 + 0x10a2e77c]
mov edx, edi
mov dword [esp + 0xa8], eax
xor eax, eax
test edi, edi
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xac], ecx
setne al
and esi, 0xf
shr edx, 4
and edx, 0xf
mov dword [esp + 0xb4], eax
shr edi, 8
mov eax, dword [esi*8 + 0x10a2e778]
mov dword [esp + 0xb8], eax
mov eax, dword [edx*8 + 0x10a2e778]
mov ecx, dword [edi*4 + 0x10a2e7e8]
mov dword [esp + 0xbc], eax
mov eax, dword [esi*8 + 0x10a2e77c]
mov dword [esp + 0xc4], eax
mov eax, dword [edx*8 + 0x10a2e77c]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xec], 1
mov byte [esp + 0xf0], bl
movups xmmword [esp + 0xf4], xmm0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 1
mov byte [esp + 0x110], bl
movups xmmword [esp + 0x114], xmm0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 1
mov byte [esp + 0x130], bl
movups xmmword [esp + 0x134], xmm0
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 1
mov byte [esp + 0x150], bl
jmp 0x104d94d8
lea esi, [esp + 0x74]
mov edi, 7
nop
push 0x20
lea eax, [esp + 0x58]
push eax
push esi
call fcn.1050a090
add esp, 0xc
add esi, 0x20
sub edi, 1
jne 0x104d94c0
mov ebx, dword [esp + 0x1c]
lea edx, [esp + 0x14]
push edx
lea edx, [esp + 0x50]
push edx
mov eax, dword [ebx + 0x280]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov eax, dword [esp + 0x14]
mov ecx, ebp
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x14]
mov dword [esp + 0x28], 0
push eax
call fcn.104b86b0
mov esi, dword [esp + 0x10]
test esi, esi
je 0x104d95c7
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x104d953b
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi + 8], 0
mov ebx, dword [ebp + 8]
lea edx, [esp + 0x18]
mov edi, dword [ebp + 4]
sub ebx, edi
mov eax, dword [esi]
sar ebx, 2
xor ecx, ecx
mov dword [esp + 0x18], eax
movsx eax, byte [edx]
inc edx
imul ecx, ecx, 0x1003f
add ecx, eax
lea eax, [esp + 0x1c]
cmp edx, eax
jne 0x104d9552
lea eax, [ebx - 2]
and eax, ecx
mov ecx, dword [esi + 0xc]
cmp dword [edi + eax*4], esi
jne 0x104d9580
mov dword [edi + eax*4], ecx
test eax, eax
je 0x104d9580
dec eax
cmp dword [edi + eax*4], esi
je 0x104d9573
mov edx, dword [esi + 0x10]
test edx, edx
je 0x104d958d
mov eax, dword [esi + 0xc]
mov dword [edx + 0xc], eax
test ecx, ecx
je 0x104d9597
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
push 0x40
lea eax, [esp + 0x24]
push str.F:_vcpkg_2024.05.24_buildtrees_bgfx_src_bgfx_296104bfea.clean_bgfx_src_bgfx.cpp
push eax
call fcn.105096b0
mov ecx, dword [0x10ac2e7c]
add esp, 0xc
push dword [eax + 4]
mov edx, dword [ecx]
push dword [eax]
push 0
push 0
push esi
call dword [edx + 4]
dec dword [ebp]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x30], 0
push eax
call fcn.104ce000
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x16c]
mov eax, ecx
and eax, 0xc000
cmp eax, 0xc000
je 0x104d9637
mov eax, ecx
and eax, 0xd000
cmp eax, 0xd000
je 0x104d9637
mov eax, ecx
and eax, 0xc0000
cmp eax, 0xc0000
je 0x104d9637
and ecx, 0xd0000
cmp ecx, 0xd0000
jne 0x104d96f4
mov ecx, dword [esp + 0x174]
mov eax, ecx
shr eax, 0x18
movss xmm1, dword [0x108fc6ec]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1059bac0]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esp + 0x154], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1059bac0]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esp + 0x158], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1059bac0]
movzx eax, cl
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esp + 0x15c], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1059bac0]
cvtpd2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [esp + 0x160], xmm0
jmp 0x104d9703
movaps xmm0, xmmword [0x109be560]
movups xmmword [esp + 0x154], xmm0
mov eax, dword [ebx + 0x284]
lea esi, [esp + 0x154]
push 0xffffffffffffffff
push esi
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x8c]
mov ecx, dword [esp + 0x164]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x158
ret 0xc