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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x78
push esi
push edi
mov edi, dword [0x4c9b64]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [edi + 0x3f88]
mov byte [eax + 0xb0], 1
mov ecx, dword [edi + 0x3f88]
mov dword [esp + 0x24], ecx
cmp byte [ecx + 0xb3], 0
je 0x48c221
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, edx
shr eax, 1
and al, 1
mov dword [esp + 0x3c], eax
jne 0x48c25b
test edx, 0x400
jne 0x48c25b
movss xmm0, dword [edi + 0x38e4]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [ecx + 0x130]
minss xmm0, dword [edi + 0x38e8]
movss dword [esp + 0x5c], xmm0
jmp 0x48c26f
mov eax, dword [edi + 0x38e4]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x38e8]
mov dword [esp + 0x5c], eax
lea esi, [esp + 0x58]
mov eax, dword [esi]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 4]
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
test esi, esi
jne 0x48c2af
mov esi, eax
mov dword [ebp + 0xc], esi
cmp eax, 0xffffffff
jae 0x48c2af
mov al, byte [esi]
test al, al
je 0x48c2a9
cmp al, 0x23
jne 0x48c2a3
cmp byte [esi + 1], al
je 0x48c2a9
inc esi
cmp esi, 0xffffffff
jb 0x48c294
mov eax, dword [ebp + 8]
mov dword [ebp + 0xc], esi
movss xmm1, dword [edi + 0x3cf4]
cmp eax, esi
jne 0x48c2cc
xorps xmm3, xmm3
movss dword [esp + 0x5c], xmm1
movss dword [esp + 0x58], xmm3
jmp 0x48c336
movss xmm3, dword [0x4c2cb8]
movaps xmm2, xmm1
push 0
push esi
push eax
push ecx
mov ecx, dword [edi + 0x3cf0]
lea eax, [esp + 0x50]
mov dword [esp], 0xbf800000
push eax
call fcn.00469f10
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [0x4c2af4]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x40], xmm0
mov eax, dword [esp + 0x40]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x44]
movss xmm3, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
movss xmm1, dword [esp + 0x5c]
movss xmm0, dword [edi + 0x38e8]
movss xmm5, dword [edi + 0x3cf4]
addss xmm0, xmm0
movss xmm2, dword [ecx + 0x124]
movss xmm7, dword [esp + 0x54]
addss xmm0, xmm5
minss xmm2, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [0x4c2b78]
addss xmm0, xmm1
maxss xmm2, xmm0
test edx, 0x2000
je 0x48c394
cmp dword [edi + 0x4c94], 0
je 0x48c394
movss xmm6, dword [ecx + 0x208]
mov al, 1
mov byte [esp + 0x17], al
jmp 0x48c3b4
xor al, al
mov byte [esp + 0x17], al
test edx, 0x1000
je 0x48c3ac
movss xmm6, dword [ecx + 0x1f8]
jmp 0x48c3b4
movss xmm6, dword [ecx + 0xf8]
movss xmm4, dword [ecx + 0xfc]
movss dword [esp + 0x60], xmm6
movss dword [esp + 0x64], xmm4
test al, al
je 0x48c3e2
movss xmm1, dword [ecx + 0x210]
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x68], xmm1
jmp 0x48c3f6
movss xmm0, dword [ecx + 0x200]
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x68], xmm0
cmp byte [esp + 0x3c], 0
movaps xmm0, xmm4
addss xmm0, xmm2
movss dword [esp + 0x6c], xmm0
je 0x48c464
movss xmm1, dword [ecx + 0x48]
mulss xmm1, dword [0x4c2ab4]
movaps xmm0, xmm1
subss xmm0, dword [0x4c2afc]
cvttss2si eax, xmm0
movd xmm0, eax
cvttss2si eax, xmm1
movss xmm1, dword [esp + 0x50]
mulss xmm1, dword [0x4c2b9c]
cvtdq2ps xmm0, xmm0
subss xmm6, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x60], xmm6
addss xmm0, dword [esp + 0x30]
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x68], xmm0
jmp 0x48c472
movss xmm1, dword [esp + 0x50]
mulss xmm1, dword [0x4c2b78]
addss xmm1, xmm5
movaps xmm0, xmm7
maxss xmm0, dword [ecx + 0x130]
xorps xmm7, xmm7
comiss xmm3, xmm7
movss dword [esp + 0x2c], xmm1
jbe 0x48c4a1
movss xmm7, dword [esp + 0x50]
mulss xmm7, dword [0x4c2b78]
addss xmm7, xmm3
addss xmm4, xmm0
movss dword [esp + 0x44], xmm2
movss xmm0, dword [ecx + 0xf8]
addss xmm7, xmm5
addss xmm0, xmm1
movss xmm1, dword [esp + 0x54]
lea ecx, [esp + 0x40]
movss dword [esp + 0x4c], xmm4
movss dword [esp + 0x40], xmm7
movss dword [esp + 0x48], xmm0
call fcn.00417060
cmp byte [esp + 0x3c], 0
movaps xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x1c]
movaps xmmword [esp + 0x70], xmm0
jne 0x48c513
test edx, 0x3800
jne 0x48c513
movss xmm0, dword [edi + 0x38f4]
addss xmm7, xmm6
addss xmm0, xmm0
addss xmm0, xmm7
movss dword [esp + 0x78], xmm0
cmp byte [esp + 0x17], 0
mov ecx, dword [esp + 0x24]
movss xmm0, dword [ecx + 0x218]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [ecx + 0x220]
movss dword [esp + 0x28], xmm0
je 0x48c552
mov eax, dword [ecx + 0x208]
mov dword [ecx + 0x218], eax
mov eax, dword [ecx + 0x210]
mov dword [ecx + 0x220], eax
mov ecx, dword [esp + 0x20]
call fcn.0048c120
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x70]
push 0
push 0
mov byte [esp + 0x1e], al
call fcn.004171d0
mov ch, byte [esp + 0x1f]
add esp, 8
or dword [edi + 0x48d8], 2
movaps xmm0, xmmword [esp + 0x60]
mov edx, dword [esp + 0x24]
mov byte [esp + 0x1a], al
movups xmmword [edi + 0x48fc], xmm0
test ch, ch
je 0x48c5b2
movss xmm0, dword [esp + 0x38]
movss dword [edx + 0x218], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [edx + 0x220], xmm0
mov cl, byte [esp + 0x16]
test cl, cl
je 0x48c651
cmp byte [edi + 0x4a48], 0
jne 0x48c651
mov eax, dword [esp + 0x1c]
and eax, 0x4008
cmp eax, 0x4000
jne 0x48c651
cmp dword [edi + 0x4a98], 0
jne 0x48c651
cmp dword [edi + 0x4a04], edx
jne 0x48c651
call fcn.0041aa40
test al, al
je 0x48c651
mov eax, dword [edi + 0x49e8]
lea ecx, [edi + 0x49e8]
inc eax
push eax
call fcn.0046ba40
lea ecx, [edi + 0x49e8]
call fcn.004931c0
mov edx, dword [esp + 0x20]
mov esi, dword [ebp + 0xc]
mov dword [eax], edx
mov ecx, dword [edi + 0x48d4]
mov edx, dword [esp + 0x24]
mov dword [eax + 4], ecx
movups xmm0, xmmword [edi + 0x48ec]
movups xmmword [eax + 8], xmm0
mov ecx, dword [edx + 0x184]
mov eax, dword [edx + 0x180]
bts ecx, eax
mov dword [edx + 0x184], ecx
mov cl, byte [esp + 0x16]
mov ch, byte [esp + 0x17]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
shr dword [esp + 0x28], 8
and byte [esp + 0x28], 1
cmp byte [esp + 0x1a], 0
jne 0x48c687
test cl, cl
je 0x48c67f
test al, 8
jne 0x48c67f
mov ecx, dword [esp + 0x20]
call fcn.0048cca0
mov cl, byte [esp + 0x16]
mov al, cl
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test ch, ch
je 0x48c6b0
call fcn.004717a0
mov edx, dword [esp + 0x24]
or dword [edi + 0x48d8], 0x200
mov eax, dword [esp + 0x1c]
movups xmm0, xmmword [edx + 0x218]
movups xmmword [edi + 0x490c], xmm0
xor ecx, ecx
mov dword [esp + 0x38], ecx
test al, 4
jne 0x48c6c6
test dword [edi + 0x48d4], 0x200
je 0x48c6cf
mov ecx, 0x1000
mov dword [esp + 0x38], ecx
movss xmm1, dword [esp + 0x48]
or ecx, 0x200
subss xmm1, dword [esp + 0x2c]
movss xmm2, dword [edi + 0x390c]
cmp byte [esp + 0x28], 0
movss xmm3, dword [edi + 0xe00]
cmovne ecx, dword [esp + 0x38]
movaps xmm0, xmm1
mov dword [esp + 0x38], ecx
subss xmm0, xmm2
comiss xmm3, xmm0
jb 0x48c733
movss xmm0, dword [esp + 0x50]
mulss xmm0, dword [0x4c2b78]
mov byte [esp + 0x18], 1
addss xmm0, dword [edi + 0x3cf4]
addss xmm0, xmm1
addss xmm0, xmm2
comiss xmm0, xmm3
ja 0x48c738
mov byte [esp + 0x18], 0
cmp edx, dword [edi + 0x3f8c]
jne 0x48c747
cmp byte [esp + 0x18], 0
jne 0x48c758
or ecx, 0x10000
cmp byte [esp + 0x18], 0
mov dword [esp + 0x38], ecx
je 0x48c75f
mov ecx, 0x10
jmp 0x48c76b
movzx ecx, al
and ecx, 0x40
or ecx, 8
shl ecx, 2
or ecx, dword [esp + 0x38]
and al, 1
mov edx, dword [esp + 0x20]
mov byte [esp + 0x1b], al
lea eax, [esp + 0x1a]
push ecx
push eax
lea eax, [esp + 0x21]
mov dword [esp + 0x48], ecx
push eax
lea ecx, [esp + 0x7c]
call fcn.004799c0
xor cl, cl
add esp, 0xc
mov dword [esp + 0x38], ecx
cmp byte [esp + 0x28], cl
jne 0x48c8f8
test al, al
je 0x48c838
mov edx, dword [esp + 0x20]
cmp dword [edi + 0x4c64], edx
je 0x48c7ff
mov eax, dword [esp + 0x1c]
test al, 0xc0
je 0x48c7c8
cmp dword [edi + 0x4a10], edx
jne 0x48c7ca
mov cl, 1
test al, al
jns 0x48c7e9
cmp byte [esp + 0x18], 0
je 0x48c7e5
cmp byte [edi + 0x4a4b], 0
jne 0x48c7e5
mov edx, 1
jmp 0x48c7e7
xor edx, edx
or cl, dl
test al, 0x40
je 0x48c838
cmp word [edi + 0x382a], 2
mov al, byte [esp + 0x16]
jne 0x48c83c
mov cl, 1
jmp 0x48c83c
test dword [esp + 0x40], 0x200
jne 0x48c825
push 0x1887
push 0x4bfd1c
push str.button_flags__ImGuiButtonFlags_PressedOnDragDropHold
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov al, byte [esp + 0x16]
mov edx, 1
test al, al
movzx ecx, cl
cmove ecx, edx
jmp 0x48c83c
mov al, byte [esp + 0x16]
mov edx, dword [esp + 0x20]
cmp dword [edi + 0x4a08], edx
jne 0x48c885
cmp dword [edi + 0x4a98], 0
jne 0x48c885
test al, al
je 0x48c885
mov eax, dword [0x4c9b64]
mov byte [esp + 0x38], 1
mov ecx, dword [eax + 0x4a04]
mov edx, dword [eax + 0x4a38]
mov eax, dword [ecx + 0x314]
mov dword [eax + edx*8 + 0x344], 0x7f7fffff
call fcn.0041add0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
cmp dword [edi + 0x4a08], eax
jne 0x48c8ca
cmp dword [edi + 0x4a98], 1
jne 0x48c8ca
cmp byte [esp + 0x16], 0
jne 0x48c8ca
mov eax, dword [0x4c9b64]
mov ecx, dword [eax + 0x4a04]
mov edx, dword [eax + 0x4a38]
mov eax, dword [ecx + 0x314]
mov dword [eax + edx*8 + 0x344], 0x7f7fffff
call fcn.0041add0
jmp 0x48c8ce
test cl, cl
je 0x48c8f8
cmp byte [esp + 0x16], 0
mov ecx, dword [esp + 0x24]
sete al
mov byte [esp + 0x16], al
movzx eax, al
mov ecx, dword [ecx + 0x194]
push eax
push dword [esp + 0x24]
call fcn.00405070
or dword [edi + 0x48d8], 0x10
movss xmm7, dword [0x4c2afc]
xor ecx, ecx
movaps xmm1, xmm7
call fcn.004064d0
cmp byte [esp + 0x3c], 0
mov dword [esp + 0x38], eax
je 0x48cabf
cmp byte [esp + 0x1a], 0
mov dl, byte [esp + 0x19]
je 0x48c92f
test dl, dl
je 0x48c92f
mov ecx, 0x1a
jmp 0x48c939
xor ecx, ecx
test dl, dl
setne cl
add ecx, 0x18
push dword [esp + 0x6c]
movaps xmm1, xmm7
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.004064d0
movss xmm2, dword [edi + 0x38ec]
mov dl, 1
mov ecx, eax
call fcn.004075f0
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x70]
push 2
call fcn.00407850
mov eax, dword [esp + 0x30]
add esp, 0x14
test eax, 0x200
je 0x48c9e0
movss xmm1, dword [esp + 0x2c]
mulss xmm1, dword [0x4c2abc]
mov eax, dword [esp + 0x24]
movss xmm0, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
subss xmm0, xmm1
mov ecx, dword [eax + 0x26c]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [edi + 0x3cf4]
mulss xmm0, dword [0x4c2ab4]
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.0046aa40
mov eax, dword [esp + 0x24]
add esp, 8
jmp 0x48ca6d
cmp byte [esp + 0x28], 0
jne 0x48ca51
cmp byte [esp + 0x16], 0
je 0x48c9fb
shr eax, 0x15
not eax
and eax, 1
or eax, 2
jmp 0x48ca00
mov eax, 1
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x2c]
movss xmm3, dword [0x4c2afc]
mov edx, dword [esp + 0x38]
addss xmm0, dword [esp + 0x50]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push dword [esp + 0x54]
push dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x26c]
call fcn.0046a840
mov eax, dword [esp + 0x28]
add esp, 0xc
jmp 0x48ca6d
movss xmm1, dword [esp + 0x2c]
subss xmm1, dword [esp + 0x50]
movss xmm0, dword [esp + 0x48]
subss xmm0, xmm1
movss dword [esp + 0x48], xmm0
test eax, 0x100000
je 0x48ca94
movss xmm0, dword [edi + 0x3cf4]
addss xmm0, dword [edi + 0x38e4]
movss xmm1, dword [esp + 0x30]
subss xmm1, xmm0
movss dword [esp + 0x68], xmm1
cmp byte [edi + 0x5dc0], 0
je 0x48cc24
mov eax, dword [0x4c9b64]
mov dword [eax + 0x5dd8], 0x4a68f8
mov dword [eax + 0x5ddc], 0x4a68f8
jmp 0x48cc24
mov al, byte [esp + 0x19]
test al, al
jne 0x48cacd
cmp byte [esp + 0x1b], al
je 0x48cb10
cmp byte [esp + 0x1a], 0
je 0x48cadf
test al, al
je 0x48cadf
mov ecx, 0x1a
jmp 0x48cae9
xor ecx, ecx
test al, al
setne cl
add ecx, 0x18
push dword [esp + 0x6c]
movaps xmm1, xmm7
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.004064d0
xorps xmm2, xmm2
xor dl, dl
mov ecx, eax
call fcn.004075f0
add esp, 0x10
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x60]
push 2
call fcn.00407850
mov eax, dword [esp + 0x20]
add esp, 4
test eax, 0x200
je 0x48cb87
movss xmm1, dword [esp + 0x2c]
mulss xmm1, dword [0x4c2ab4]
mov eax, dword [esp + 0x24]
movss xmm0, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
subss xmm0, xmm1
mov ecx, dword [eax + 0x26c]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [edi + 0x3cf4]
mulss xmm0, dword [0x4c2ab4]
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push dword [esp + 0x54]
push dword [esp + 0x54]
call fcn.0046aa40
add esp, 8
jmp 0x48cc02
cmp byte [esp + 0x28], 0
jne 0x48cc02
cmp byte [esp + 0x16], 0
je 0x48cba2
shr eax, 0x15
not eax
and eax, 1
or eax, 2
jmp 0x48cba7
mov eax, 1
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x2c]
movss xmm3, dword [0x4c2ac8]
mov edx, dword [esp + 0x38]
addss xmm0, dword [esp + 0x50]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [edi + 0x3cf4]
mulss xmm0, dword [0x4c2a88]
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push dword [esp + 0x54]
push dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x26c]
call fcn.0046a840
add esp, 0xc
cmp byte [edi + 0x5dc0], 0
je 0x48cc24
mov eax, dword [0x4c9b64]
mov dword [eax + 0x5dd8], 0x4a8064
mov dword [eax + 0x5ddc], 0
cmp byte [esp + 0x17], 0
je 0x48cc30
call fcn.00471840
cmp byte [esp + 0x3c], 0
mov ecx, dword [ebp + 8]
je 0x48cc6a
push 0
lea eax, [esp + 0x54]
mov dword [esp + 0x54], 0
push eax
lea eax, [esp + 0x60]
mov dword [esp + 0x5c], 0
push eax
push esi
push ecx
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x5c]
call fcn.00407200
add esp, 0x14
jmp 0x48cc7e
push dword [esp + 0x4c]
mov edx, esi
push dword [esp + 0x4c]
push 0
call fcn.00406cd0
add esp, 0xc
mov al, byte [esp + 0x16]
test al, al
je 0x48cc9a
test byte [esp + 0x1c], 8
jne 0x48cc9a
mov ecx, dword [esp + 0x20]
call fcn.0048cca0
mov al, byte [esp + 0x16]
pop edi
pop esi
mov esp, ebp
pop ebp
ret