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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x188
xorps xmm1, xmm1
movss dword [esp + 0x4c], xmm0
ucomiss xmm0, xmm1
jbe 0x4aca31
movss xmm1, dword [0x646150]
ucomiss xmm1, xmm0
jbe 0x4aca31
mov eax, 0x2000
mov dword [esp + 0x154], ecx
mov dword [esp + 0x150], edx
cmp edx, eax
cmovb eax, edx
cmp eax, 0x400
jb 0x4aca69
lea esi, [esp + 0x58]
lea edx, [esp + 0xe0]
mov ecx, esi
mov dword [edx], eax
mov dword [edx + 4], 0x40
call fcn.004a97e8
and dword [esi + 0x20], 0
and dword [esi + 0x24], 0
or dword [esi + 0x28], 0xffffffff
or dword [esi + 0x2c], 0xffffffff
and dword [esi + 0x34], 0
and dword [esi + 0x30], 0
and dword [esi + 0x39], 0
and dword [esi + 0x35], 0
mov dword [esi + 0x14], 4
and dword [esi + 0x18], 0
and dword [esi + 0x1c], 0
xor eax, eax
lea edi, [esp + 0xe0]
mov edx, esi
inc eax
mov ecx, edi
push eax
mov dword [esp + 0x1c], eax
push eax
call fcn.004aae77
pop eax
pop ecx
mov eax, dword [edi + 4]
mov edx, dword [edi]
mov ecx, eax
mov dword [esp + 0x128], edx
mov dword [esp + 0x12c], eax
or ecx, edx
jne 0x4aca7d
lea ecx, [esp + 0xe0]
mov ecx, dword [ecx + 8]
push 0x98cd44
push eax
call fcn.004a6641
pop ecx
pop edx
movss xmm1, dword [0x6460f0]
xor edi, edi
mov dword [eax], 0x3f800000
cvtsi2ss xmm0, edi
mulss xmm0, xmm1
addss xmm0, dword [0x6461a0]
sub esp, 4
movss dword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_exp2f
pop eax
cmp edi, 0xf
fstp dword [esp + 0x15c]
je 0x4ab866
inc edi
mov dword [esp + 0x34], edi
movss xmm0, dword [esp + 0x15c]
movss dword [esp + 8], xmm0
addss xmm0, dword [0x6460f0]
sub esp, 8
movss dword [esp + 0x18], xmm0
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
pop eax
pop ecx
fstp dword [esp + 0x158]
mov eax, 0x7fffffff
lea ecx, [esp + 0xe0]
lea edx, [esp + 0x58]
movss xmm0, dword [esp + 0x158]
ucomiss xmm0, dword [0x646154]
cvttss2si esi, xmm0
cmova esi, eax
ucomiss xmm0, xmm0
mov eax, 0
cmovp esi, eax
lea eax, [esi + esi + 1]
push eax
mov dword [esp + 0x3c], eax
push eax
call fcn.004aae77
pop eax
pop ecx
movss xmm0, dword [esp + 8]
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x1c], esi
addss xmm0, dword [0x646414]
mov dword [esp + 0xc], edx
mov edx, esi
mov dword [esp + 0x28], eax
add eax, esi
mov dword [esp + 0x20], ecx
neg edx
mov dword [esp + 0x30], eax
lea eax, [ecx + esi]
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x24], edx
mov byte [esp + 0xa8], 0
mov dword [esp + 4], eax
movss dword [esp + 0x14], xmm0
lea ecx, [esp + 0xa0]
call fcn.004acafe
test eax, eax
je 0x4ab801
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, edx
imul edi, edx
lea ebx, [ecx + edx]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], esi
mov byte [esp + 0xe8], 0
lea ecx, [esp + 0xe0]
call fcn.004acafe
test eax, eax
je 0x4ab761
mov esi, edx
mov eax, edx
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [esp + 0x10]
imul eax, esi
add eax, edi
cvtsi2ss xmm0, eax
sqrtss xmm0, xmm0
push 0
push 0x3f800000
call fcn.00497800
pop eax
pop ecx
add esi, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movss dword [esp], xmm0
mov edx, ebx
push 0x98cd54
push esi
call fcn.004a6641
pop ecx
pop edx
movss xmm0, dword [esp]
movss dword [eax], xmm0
jmp 0x4ab79f
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x74]
lea esi, [eax + ebx]
add ebx, dword [esp + 0x20]
cmp edx, dword [esp + 0x70]
jne 0x4ab827
lea ecx, [esp + 0x6c]
call fcn.004a85c4
mov edx, dword [esp + 0x74]
imul eax, edx, 0x14
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x28]
movss xmm0, dword [esp + 8]
movss xmm1, dword [0x6460f0]
mov edi, dword [esp + 0x34]
mov dword [ecx + eax], edx
mov edx, dword [esp + 0x20]
mov dword [ecx + eax + 4], edx
mov dword [ecx + eax + 8], esi
mov dword [ecx + eax + 0xc], ebx
movss dword [ecx + eax + 0x10], xmm0
inc dword [esp + 0x74]
jmp 0x4ab650
push 0x10
pop ecx
lea ebx, [esp + 0x58]
lea edx, [esp + 0xa0]
lea eax, [esp + 0x5b]
mov edi, edx
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
push 0x40
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x43
pop esi
push esi
push ebx
lea ebx, [esp + 0xe8]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push 0x4c
pop ecx
push 4
pop edx
call fcn.004a3937
mov edi, eax
xor eax, eax
inc eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov byte [edi + 8], 0
lea eax, [edi + 9]
push esi
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lock inc dword [edi]
jle 0x4aca95
mov ecx, dword [ebp + 8]
xor ebx, ebx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test eax, eax
mov esi, eax
setne bl
je 0x4ab8e8
mov edx, dword [ebp + 8]
mov esi, dword [edx + 8]
movss xmm0, dword [esp + 0x4c]
lea edx, [esp + 0xa0]
mov dword [edx], ebx
and dword [edx + 4], 0
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ebx
and dword [edx + 0x14], 0
lea ebx, [esp + 0x58]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x20], esi
mov ecx, ebx
movss dword [esp + 0x48], xmm0
call fcn.004a4c33
xor eax, eax
mov dword [esp + 0x14c], edi
cmp dword [ebx], eax
je 0x4abad0
mov edx, dword [esp + 0xc0]
xor eax, eax
dec eax
inc edx
cmove edx, eax
cmp edx, 5
push 4
pop eax
cmovb edx, eax
xor ecx, ecx
cmp edx, 0x38e38e4
setb al
jae 0x4aca2a
imul esi, edx, 0x24
mov dword [esp + 0x38], edx
test esi, esi
js 0x4aca2a
mov cl, al
mov edx, esi
shl ecx, 2
mov edi, ecx
call fcn.0043bd7b
test eax, eax
je 0x4aca99
push 0x24
push ebx
mov dword [esp + 0x10], eax
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
push 9
pop ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x40], 0
mov ecx, ebx
lea edx, [esp + 0xe0]
call fcn.004a4c33
cmp dword [esp + 0x58], 0
je 0x4aba9c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
cmp eax, edx
jne 0x4aba79
mov edi, dword [esp + 0x100]
mov eax, 0xffffffff
inc edi
cmove edi, eax
xor ecx, ecx
add edi, edx
jb 0x4aba6e
lea eax, [edx + edx]
cmp eax, edi
cmova edi, eax
cmp edi, 5
jae 0x4ab9fe
push 4
pop edi
xor edx, edx
cmp edi, 0x38e38e4
mov ecx, dword [esp + 8]
setb dl
imul eax, dword [esp + 0x38], 0x24
shl edx, 2
mov dword [esp + 0x128], ecx
mov dword [esp + 0x130], eax
imul eax, edi, 0x24
push 4
pop ecx
mov dword [esp + 0x12c], ecx
lea ecx, [esp + 0x160]
lea esi, [esp + 0x128]
push esi
push eax
call fcn.004b8f42
pop eax
pop ecx
cmp dword [esp + 0x160], 0
mov ecx, dword [esp + 0x164]
je 0x4aba61
mov edi, dword [esp + 0x168]
jmp 0x4aba6e
mov dword [esp + 8], ecx
mov ecx, 0x80000001
mov dword [esp + 0x38], edi
mov edx, edi
call fcn.00427d90
mov eax, dword [esp + 0x18]
mov edi, eax
imul eax, eax, 0x24
add eax, dword [esp + 8]
push 0x24
push ebx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
dec dword [esp + 0x40]
inc edi
mov dword [esp + 0x18], edi
jmp 0x4ab9ab
lea ecx, [esp + 0x58]
call fcn.004a4ed5
mov edi, dword [esp + 0x18]
test edi, edi
je 0x4abadd
mov ebx, dword [esp + 8]
cmp edi, 0x15
jae 0x4abb09
cmp edi, 2
jb 0x4ac0e1
mov ecx, ebx
mov edx, edi
push 1
call fcn.004a6284
pop eax
jmp 0x4ac0e1
mov dword [esp + 0x38], 0
push 4
pop esi
jmp 0x4abae1
mov esi, dword [esp + 8]
mov ecx, esi
xor edx, edx
mov dword [esp + 0x20], 0
call fcn.004a626a
mov edx, dword [esp + 0x38]
mov ecx, esi
call fcn.004a6174
mov dword [esp], 0
jmp 0x4ac8ac
mov al, byte [0xa71040]
shr edi, 1
imul ecx, edi, 0x24
push 4
pop edx
call fcn.004041e0
test eax, eax
mov dword [esp + 0x10], eax
je 0x4acaa4
push 0x10
pop ecx
mov dword [esp + 0x34], ecx
call fcn.00485f87
test eax, eax
je 0x4acab6
mov edi, dword [esp + 0x18]
mov ecx, eax
lea eax, [ebx + 0x50]
xor edx, edx
mov dword [esp + 8], ebx
mov dword [esp + 0x44], eax
xor eax, eax
mov esi, edi
sub esi, eax
jbe 0x4ac0cc
cmp esi, 2
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], esi
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], edx
jae 0x4abb76
mov eax, edi
jmp 0x4abd4a
mov esi, dword [esp + 0x28]
imul edi, esi, 0x24
lea eax, [ebx + edi]
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x2c]
mov dword [esp], ecx
mov dword [esp + 0xc], edx
push dword [eax + 8]
push dword [eax]
call fcn.004a63f2
pop ecx
pop edx
cmp al, 0xff
mov byte [esp + 0x2c], al
je 0x4abc04
mov eax, dword [esp + 0x40]
add edi, dword [esp + 0x44]
add eax, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], eax
push 2
pop ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
add eax, ebx
cmp eax, 1
je 0x4abc63
mov esi, dword [esp + 0x14]
mov edi, dword [esi]
mov ecx, dword [esi - 8]
mov dword [esp + 0x24], ecx
mov edx, edi
push dword [esp + 0xc]
push dword [esp + 4]
call fcn.004a63f2
pop ecx
pop edx
cmp al, 0xff
je 0x4abc69
mov eax, dword [esp + 0x24]
add esi, 0x24
inc ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], esi
mov dword [esp], eax
jmp 0x4abbb6
mov eax, dword [esp + 0x40]
add edi, dword [esp + 0x44]
add eax, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], eax
push 2
pop ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
add eax, ebx
cmp eax, 1
je 0x4abc63
mov esi, dword [esp + 0x14]
mov edi, dword [esi]
mov ecx, dword [esi - 8]
mov dword [esp + 0x24], ecx
mov edx, edi
push dword [esp + 0xc]
push dword [esp + 4]
call fcn.004a63f2
pop ecx
pop edx
cmp al, 0xff
jne 0x4abc69
mov eax, dword [esp + 0x24]
add esi, 0x24
inc ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], esi
mov dword [esp], eax
jmp 0x4abc19
mov ebx, dword [esp + 0x20]
jmp 0x4abc71
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
cmp byte [esp + 0x2c], 0xff
mov edi, dword [esp + 0x18]
lea eax, [ebx + esi]
mov ebx, dword [esp + 8]
jne 0x4abd4a
mov ecx, esi
mov dword [esp + 0x2c], eax
mov edx, eax
push 0xa0ef48
push edi
push ebx
call fcn.004a63bd
add esp, 0xc
mov esi, edx
imul ecx, edx, 0x24
shr esi, 1
add ecx, eax
mov edx, esi
neg edx
imul ebx, edx, 0x24
mov edx, esi
add ebx, ecx
xor ecx, ecx
push 0xa144a0
push esi
push eax
call fcn.004a63bd
add esp, 0xc
mov edi, eax
xor ecx, ecx
mov dword [esp + 0xc], edx
mov edx, esi
push 0xa144b0
push esi
push ebx
call fcn.004a63bd
xor ecx, ecx
add esp, 0xc
imul ebx, esi, 0x24
mov dword [esp + 0x14], edx
mov dword [esp], esi
add ebx, eax
mov eax, dword [esp]
cmp ecx, eax
je 0x4abd36
cmp ecx, dword [esp + 0xc]
je 0x4ac982
mov edx, ecx
not ecx
add ecx, eax
cmp ecx, dword [esp + 0x14]
jae 0x4ac98f
push 0xfffffffffffffff7
pop eax
test eax, eax
je 0x4abd2b
mov ecx, dword [edi + eax*4 + 0x24]
mov esi, dword [ebx + eax*4]
mov dword [edi + eax*4 + 0x24], esi
mov dword [ebx + eax*4], ecx
inc eax
jmp 0x4abd16
mov ecx, edx
add ebx, 0xffffffdc
add edi, 0x24
inc ecx
jmp 0x4abcf2
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x28]
jb 0x4aca04
cmp eax, edi
ja 0x4aca04
jae 0x4abdac
mov esi, dword [esp + 0x20]
cmp esi, 0xa
jae 0x4abdac
mov ecx, dword [esp + 0x28]
lea eax, [ecx + 0xa]
cmp eax, edi
cmovae eax, edi
cmp esi, 2
mov dword [esp + 0x2c], eax
mov eax, 1
mov edx, dword [esp + 0x2c]
cmovb esi, eax
push 0xa0f014
push edi
push ebx
call fcn.004a63bd
add esp, 0xc
mov ecx, eax
push esi
call fcn.004a6284
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 8]
add esp, 4
mov edi, dword [esp + 0x34]
cmp edx, edi
jne 0x4abdf6
lea ecx, [edi + edi]
mov ebx, eax
mov dword [esp + 0x3c], ecx
call fcn.00485f87
test eax, eax
je 0x4aca13
shl edi, 3
mov esi, eax
push edi
mov edi, dword [esp + 8]
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, edi
push 4
pop edx
call fcn.00404240
mov eax, ebx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
mov ecx, esi
jmp 0x4abdfa
mov dword [esp + 0x3c], edi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ecx
sub eax, esi
mov dword [ecx + edx*8], eax
mov dword [ecx + edx*8 + 4], esi
inc edx
cmp edx, 2
jb 0x4ac081
mov ecx, dword [esp + 4]
mov eax, dword [ecx + edx*8 - 8]
mov ecx, dword [ecx + edx*8 - 4]
add ecx, eax
cmp dword [esp + 0x18], ecx
je 0x4abe76
mov ecx, dword [esp + 4]
mov ebx, dword [ecx + edx*8 - 0x10]
cmp ebx, eax
jbe 0x4abe76
cmp edx, 3
jb 0x4ac09a
mov esi, dword [esp + 4]
lea ecx, [edx - 3]
mov dword [esp + 0x24], ecx
mov edi, dword [esi + edx*8 - 0x18]
lea esi, [ebx + eax]
cmp edi, esi
jbe 0x4abe8c
cmp edx, 4
jb 0x4ac09a
mov ecx, dword [esp + 4]
add ebx, edi
cmp dword [ecx + edx*8 - 0x20], ebx
mov ebx, dword [esp + 8]
jbe 0x4abe90
jmp 0x4ac0b7
mov ecx, dword [esp + 4]
cmp edx, 3
jb 0x4abe98
mov edi, dword [ecx + edx*8 - 0x18]
lea esi, [edx - 3]
mov dword [esp + 0x24], esi
jmp 0x4abe90
mov ecx, dword [esp + 4]
cmp edi, eax
mov eax, dword [esp + 0x24]
jb 0x4abe9b
lea eax, [edx - 2]
mov edi, edx
push 0xa0ef58
push eax
mov ebx, eax
call fcn.004bd666
pop ecx
pop edx
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 4]
mov edx, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
lea eax, [ebx + 1]
push 0xa0ef68
mov dword [esp + 0x2c], eax
push eax
call fcn.004bd666
pop ecx
pop edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x34], ecx
add edx, ecx
mov ecx, dword [esp + 0x30]
push 0xa0ef78
push dword [esp + 0x1c]
push dword [esp + 0x10]
call fcn.004a63bd
add esp, 0xc
imul ecx, esi, 0x24
mov edi, eax
mov dword [esp + 0x20], esi
lea ebx, [eax + ecx]
imul eax, edx, 0x24
sub edx, esi
cmp edx, esi
jae 0x4abfa2
imul ecx, edx, 0x24
mov dword [esp], ecx
push ecx
push ebx
mov esi, dword [esp + 0x18]
push esi
mov dword [esp + 0x18], eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0xc]
add esp, 0xc
mov eax, dword [esp + 0xc]
add edx, esi
mov dword [esp + 0x14], edi
lea eax, [edi + eax - 0x24]
mov dword [esp], eax
cmp ebx, edi
jbe 0x4ac013
cmp edx, dword [esp + 0x10]
jbe 0x4ac013
mov ecx, dword [edx - 0x24]
mov esi, edx
mov edx, dword [edx - 0x1c]
push dword [ebx - 0x1c]
push dword [ebx - 0x24]
call fcn.004a63f2
pop ecx
pop edx
xor ecx, ecx
xor edx, edx
cmp al, 0xff
sete dl
setne cl
neg edx
neg ecx
imul edx, edx, 0x24
imul ecx, ecx, 0x24
add ebx, edx
mov edx, esi
add edx, ecx
cmp al, 0xff
mov esi, edx
cmove esi, ebx
push 9
pop ecx
mov eax, dword [esp]
mov edi, eax
add eax, 0xffffffdc
rep movsd dword es:[edi], dword [esi]
mov dword [esp], eax
mov edi, dword [esp + 0x14]
jmp 0x4abf42
add eax, edi
mov dword [esp + 0xc], eax
push ecx
push edi
mov esi, dword [esp + 0x18]
push esi
mov dword [esp + 0xc], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp]
add edx, esi
mov dword [esp], edx
cmp esi, edx
jae 0x4ac019
cmp ebx, dword [esp + 0xc]
jae 0x4ac019
mov edx, dword [ebx + 8]
mov ecx, dword [ebx]
push dword [esi + 8]
push dword [esi]
call fcn.004a63f2
pop ecx
pop edx
mov edx, eax
xor ecx, ecx
xor eax, eax
cmp dl, 0xff
mov edx, ebx
mov ebx, esi
sete al
setne cl
cmove esi, edx
imul eax, eax, 0x24
add edx, eax
imul eax, ecx, 0x24
add ebx, eax
push 9
pop ecx
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov esi, ebx
mov ebx, edx
mov edx, dword [esp]
mov edi, eax
add edi, 0x24
jmp 0x4abfc3
mov esi, dword [esp + 0x10]
mov edi, ebx
sub edx, esi
push edx
push esi
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
cmp edx, dword [esp + 0x28]
jbe 0x4ac9a0
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x30]
add esi, dword [esp + 0x20]
cmp edx, eax
mov dword [ecx + eax*8 + 8], esi
mov dword [ecx + eax*8 + 0xc], edi
jbe 0x4ac9ab
mov esi, eax
lea eax, [ecx + eax*8]
lea ecx, [ecx + esi*8 + 8]
not esi
add esi, edx
shl esi, 3
push esi
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0x28]
add esp, 0xc
dec edx
jmp 0x4abe10
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
jmp 0x4abb50
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
jmp 0x4abb50
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
jmp 0x4abb50
push 4
pop esi
mov edx, esi
call fcn.00404240
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00404240
call fcn.004a6186
lea ecx, [esp + 0x50]
lea esi, [esp + 0x58]
mov edx, eax
mov dword [ecx], eax
and dword [ecx + 4], 0
imul ecx, edi, 0x24
mov edi, eax
add ecx, ebx
mov dword [esp], ecx
mov ecx, esi
push 0
call fcn.004a61b6
mov edx, dword [esp + 4]
add esp, 4
mov eax, dword [esi]
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], eax
mov eax, dword [esi + 4]
mov dword [esi + 0x28], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x2c], eax
xor eax, eax
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], edx
mov esi, dword [esp + 0x5c]
mov dword [esp + 8], ebx
mov dword [esp + 0x14], edi
mov dword [esp], edx
and dword [esp + 0x58], 0
test eax, eax
je 0x4ac15f
lea eax, [esp + 0x60]
mov edi, esi
jmp 0x4ac17e
cmp ebx, edx
je 0x4ac579
lea ecx, [ebx + 0x24]
mov dword [esp + 0x88], ecx
mov dword [esp + 8], ecx
mov edi, dword [ebx]
add ebx, 4
mov eax, ebx
mov ebx, ecx
movsd xmm0, qword [eax + 0x18]
test edi, edi
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0xa8], xmm1
movsd qword [esp + 0xa0], xmm0
je 0x4ac575
movsd xmm1, qword [esp + 0xb0]
lea eax, [esp + 0xe4]
movsd xmm0, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xa0]
cmp ebx, edx
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0xa8]
movsd qword [eax + 0x18], xmm0
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
mov dword [esp + 0xe0], edi
je 0x4ac252
lea eax, [ebx + 0x24]
mov dword [esp + 0x88], eax
mov dword [esp + 8], eax
movsd xmm0, qword [ebx + 0x1c]
mov esi, dword [ebx]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [ebx + 0x14]
movsd qword [esp + 0xb0], xmm0
movsd xmm0, qword [ebx + 0xc]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [ebx + 4]
mov ebx, eax
movsd qword [esp + 0xa0], xmm0
jmp 0x4ac256
xor esi, esi
mov ebx, edx
movsd xmm1, qword [esp + 0xb0]
movsd xmm0, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xa0]
lea ecx, [esp + 0x58]
movsd qword [esp + 0x138], xmm1
movsd xmm1, qword [esp + 0xa8]
movsd qword [esp + 0x140], xmm0
movsd qword [esp + 0x128], xmm2
movsd qword [esp + 0x130], xmm1
call fcn.004a61db
movsd xmm1, qword [esp + 0x138]
lea eax, [esp + 0x60]
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], esi
movsd xmm0, qword [esp + 0x140]
movsd xmm2, qword [esp + 0x128]
test esi, esi
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0x130]
movsd qword [eax + 0x18], xmm0
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
je 0x4ac326
mov edx, dword [esp + 0xe8]
mov ecx, edi
push dword [esp + 0x64]
push esi
call fcn.0043d2e8
pop ecx
pop edx
test al, al
je 0x4ac326
lea ecx, [esp + 0xe0]
call fcn.004a4edf
mov edi, dword [esp + 0x14]
mov edx, dword [esp]
xor eax, eax
inc eax
jmp 0x4ac14e
lea eax, [esp + 0xe4]
mov edx, dword [esp + 0x10]
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x178], xmm0
movsd qword [esp + 0x160], xmm2
movsd qword [esp + 0x168], xmm1
cmp word [edx + 0x192], 0xb
jae 0x4ac438
lea eax, [esp + 0x168]
movsd xmm0, qword [esp + 0x160]
mov esi, dword [esp + 0x20]
movsd xmm1, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xf0], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0xe0], xmm2
movsd qword [esp + 0xe8], xmm1
movzx eax, word [edx + 0x192]
cmp eax, 0xb
jae 0x4acac8
lea ecx, [eax + 1]
mov word [edx + 0x192], cx
imul ecx, eax, 0xc
imul eax, eax, 0x18
mov dword [edx + ecx + 0x10c], edi
movsd xmm0, qword [esp + 0xa0]
movsd qword [edx + ecx + 0x110], xmm0
movsd xmm0, qword [esp + 0xf0]
movsd qword [edx + eax + 0x10], xmm0
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
movsd qword [edx + eax + 8], xmm1
movsd qword [edx + eax], xmm0
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0x88]
jmp 0x4ac567
mov ecx, dword [esp + 0xc]
mov edx, dword [edx + 0x108]
test edx, edx
je 0x4ac457
inc ecx
cmp word [edx + 0x192], 0xb
jae 0x4ac43c
mov dword [esp + 0x10], edx
jmp 0x4ac474
lea ecx, [esp + 0x50]
call fcn.004a61e9
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ecx
lea esi, [ecx - 1]
call fcn.004a6186
mov dword [esp + 0xa0], eax
and dword [esp + 0xa4], 0
mov ebx, esi
sub ebx, 1
jb 0x4ac4a4
lea ecx, [esp + 0xa0]
call fcn.004a61e9
jmp 0x4ac491
cmp esi, dword [esp + 0xa4]
jne 0x4acada
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 8]
movzx eax, word [esi + 0x192]
cmp eax, 0xa
ja 0x4acaec
lea edx, [eax + 1]
mov ecx, dword [esp + 0xa0]
mov word [esi + 0x192], dx
imul edx, eax, 0xc
mov dword [esi + edx + 0x10c], edi
lea edi, [esp + 0x168]
movsd xmm0, qword [esp + 0x160]
movsd qword [esi + edx + 0x110], xmm0
imul edx, eax, 0x18
movsd xmm0, qword [edi + 0x10]
movsd qword [esi + edx + 0x10], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esi + edx + 8], xmm1
movsd qword [esi + edx], xmm0
mov dword [esi + eax*4 + 0x198], ecx
inc eax
mov edx, esi
mov dword [ecx + 0x108], esi
mov word [ecx + 0x190], ax
lea ecx, [esp + 0xe0]
push dword [esp + 0xc]
call fcn.004a61b6
pop eax
mov eax, dword [esp + 0xe0]
mov edx, dword [esp]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
xor eax, eax
inc eax
mov edi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x20], esi
jmp 0x4ac13f
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 8]
sub edx, ecx
push 0x24
pop esi
mov eax, edx
xor edx, edx
div esi
mov edx, eax
call fcn.004a626a
lea esi, [esp + 0x58]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
call fcn.004a6174
mov ecx, esi
call fcn.004a61db
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x4ac89d
movzx edx, word [edi + 0x192]
mov esi, edi
test edx, edx
je 0x4ac9d7
mov edi, dword [esi + edx*4 + 0x194]
dec ebx
movzx eax, word [edi + 0x192]
cmp eax, 4
ja 0x4ac5a9
mov dword [esp + 0x1c], edx
mov edx, dword [esi + edx*4 + 0x190]
mov dword [esp + 0x18], ebx
mov ebx, eax
push 5
pop eax
mov dword [esp + 0xc], edx
movzx edx, word [edx + 0x192]
sub eax, ebx
mov dword [esp + 0x10], ebx
cmp eax, edx
ja 0x4ac9e6
mov ecx, dword [esp + 0xc]
mov ebx, edx
mov dword [esp + 0x24], eax
sub ebx, eax
imul eax, eax, 0xc
lea eax, [edi + eax + 0x10c]
mov word [ecx + 0x192], bx
mov ecx, 0x10c
mov word [edi + 0x192], 5
add ecx, edi
mov dword [esp + 4], ecx
imul ecx, dword [esp + 0x10], 0xc
push ecx
push dword [esp + 8]
push eax
mov dword [esp + 0xc], edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
imul eax, dword [esp + 0x24], 0x18
imul ecx, dword [esp + 0x10], 0x18
add eax, edi
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
lea ecx, [ebx + 1]
mov dword [esp + 0x14], edi
sub dword [esp], ecx
mov dword [esp + 0x30], ecx
imul eax, ecx, 0xc
mov ecx, dword [esp + 0xc]
lea ecx, [ecx + eax + 0x10c]
push 4
pop edi
sub edi, dword [esp + 0x10]
mov edx, dword [esp]
push edi
push dword [esp + 8]
call fcn.00486a27
mov ecx, dword [esp + 8]
add esp, 8
cmp ecx, edi
jne 0x4ac9f5
mov edi, dword [esp + 0xc]
mov eax, 0x10c
dec dword [esp + 0x1c]
imul edx, ecx, 0x18
mov dword [esp + 8], edx
add eax, edi
mov dword [esp + 0x28], eax
imul eax, dword [esp + 0x30], 0x18
add eax, edi
push edx
push eax
push dword [esp + 0x1c]
mov dword [esp + 0xc], ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
imul eax, ebx, 0x18
mov edx, dword [esp + 0x1c]
movsd xmm0, qword [edi + eax]
movsd xmm1, qword [edi + eax + 8]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xa8], xmm1
movsd xmm0, qword [edi + eax + 0x10]
imul eax, edx, 0xc
mov edi, dword [esp + 0x28]
movsd qword [esp + 0xb0], xmm0
mov ecx, dword [esi + eax + 0x114]
mov dword [esp + 0x60], ecx
imul ecx, ebx, 0xc
mov ebx, dword [esp + 0x18]
movsd xmm0, qword [esi + eax + 0x10c]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [edi + ecx]
mov ecx, dword [edi + ecx + 8]
mov edi, dword [esp + 0x14]
mov dword [esi + eax + 0x114], ecx
movsd qword [esi + eax + 0x10c], xmm0
imul eax, edx, 0x18
lea ecx, [esp + 0x58]
mov edx, dword [esp + 4]
movsd xmm0, qword [esi + eax + 0x10]
movsd qword [ecx + 0x1c], xmm0
movsd xmm0, qword [esi + eax]
movsd xmm1, qword [esi + eax + 8]
movsd qword [ecx + 0xc], xmm0
movsd xmm0, qword [esp + 0xb0]
movsd qword [ecx + 0x14], xmm1
movsd qword [esi + eax + 0x10], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
movsd qword [esi + eax + 8], xmm1
movsd qword [esi + eax], xmm0
movsd xmm1, qword [ecx + 0x1c]
mov eax, dword [esp + 0x60]
movsd xmm0, qword [esp + 0x58]
movsd xmm2, qword [ecx + 0x14]
movsd qword [esp + 0xf0], xmm1
movsd xmm1, qword [ecx + 0xc]
imul ecx, dword [esp], 0xc
mov dword [esp + 0x130], eax
movsd qword [esp + 0x128], xmm0
movsd qword [esp + 0xe8], xmm2
test ebx, ebx
movsd qword [esp + 0xe0], xmm1
mov dword [edx + ecx + 8], eax
movsd qword [edx + ecx], xmm0
mov eax, dword [esp + 8]
movsd xmm0, qword [esp + 0xf0]
movsd qword [edi + eax + 0x10], xmm0
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
movsd qword [edi + eax + 8], xmm1
movsd qword [edi + eax], xmm0
je 0x4ac5a9
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, 0x194
lea edx, [edi + eax]
mov dword [esp], edx
lea eax, [edi + esi*4 + 0x194]
lea ecx, [ecx*4 + 4]
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edx, 0x194
shl esi, 2
lea eax, [eax + ecx*4]
add eax, edx
push esi
push eax
push dword [esp + 8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
cmp eax, 6
je 0x4ac5a9
mov ecx, dword [edi + eax*4 + 0x194]
mov dword [ecx + 0x108], edi
mov word [ecx + 0x190], ax
inc eax
jmp 0x4ac87d
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp], eax
mov dword [esp + 0x10], ecx
lea esi, [esp + 0x68]
mov ecx, esi
call fcn.004884fb
mov eax, 0xa38ef0
mov dword [esi - 0x10], eax
and dword [esi - 0xc], 0
and dword [esi - 8], 0
and dword [esi - 4], 0
push 0xc
pop ecx
mov ebx, dword [esp + 0x154]
mov eax, dword [ebp + 8]
lea esi, [esp + 0x58]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x68]
movsd xmm1, qword [eax]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax + 8]
mov edi, dword [esp + 0x14c]
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
movsd qword [ebx + 0x78], xmm1
movss xmm1, dword [esp + 0x48]
movsd qword [ebx + 0x88], xmm0
movsd qword [ebx + 0x80], xmm2
mov dword [ebx + 0x30], edi
movss dword [ebx + 0x34], xmm1
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], edx
mov dword [ebx + 0x40], ecx
mov ecx, esi
call fcn.004884fb
movss xmm0, dword [esp + 0x48]
mov ecx, dword [esp + 0x150]
mov eax, 0xa38ef0
mov dword [esi - 0x10], eax
and dword [esi - 0xc], 0
and dword [esi - 8], 0
and dword [esi - 4], 0
lea esi, [esp + 0x58]
movss dword [ebx + 0x94], xmm0
mov dword [ebx + 0x98], ecx
mov dword [ebx + 0x90], edi
add ebx, 0x48
mov edi, ebx
push 0xc
pop ecx
rep movsd dword es:[edi], dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc]
mov edx, ecx
push 0xa144c0
jmp 0x4ac998
mov edx, dword [esp + 0x14]
push 0xa144d0
call fcn.0063cc20
pop eax
ud2
lea ecx, [esp + 0x58]
mov edx, 0xa0ef88
jmp 0x4ac9b4
lea ecx, [esp + 0x58]
mov edx, 0xa0efc8
mov dword [ecx], 0xa0ecd0
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], str.dest_is_out_of_bounds
and dword [ecx + 0xc], 0
call fcn.0063cbf0
ud2
push 0x19
pop edx
mov ecx, str.assertion_failed:_len___0
push 0x833c34
jmp 0x4aca20
push 0x27
pop edx
mov ecx, str.assertion_failed:_old_left_len___count
push 0xa0aaec
jmp 0x4aca20
push 0x28
pop edx
mov ecx, str.assertion_failed:_src.len____dst.len__
push 0xa0aa08
jmp 0x4aca20
push 0x2c
pop edx
mov ecx, str.assertion_failed:_end___start__end___len
push 0xa0f004
jmp 0x4aca20
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0efb8
call fcn.0063cd70
jmp 0x4ac99d
call fcn.0043aad0
ud2
lea eax, [esp + 0x4c]
lea edx, [esp + 0xe0]
lea ecx, [esp + 0x58]
mov dword [edx], eax
xor eax, eax
mov dword [ecx], str.pixels_per_point_out_of_range:
mov dword [edx + 4], 0x44bc70
inc eax
mov dword [ecx + 4], eax
and dword [ecx + 0x10], 0
mov dword [ecx + 8], edx
mov edx, 0x98c7cc
mov dword [ecx + 0xc], eax
jmp 0x4ac9d0
lea ecx, [esp + 0x58]
mov edx, 0x98cd14
mov dword [ecx], str.Tiny_texture_atlas
jmp 0x4ac9ba
lea edx, [esp + 0xe0]
lea ecx, [esp + 0x128]
and dword [edx], 0
call fcn.0063e8df
ud2
ud2
mov ecx, edi
mov edx, esi
call fcn.0063c970
ud2
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0ef98
jmp 0x4aca20
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0xa0efa8
jmp 0x4aca20
push 0x20
pop edx
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_alloc_srccollections_btree_node.rsassertion_failed:_edge.height__self.height___1
push 0x9ec6a0
jmp 0x4aca20
push 0x30
pop edx
mov ecx, 0xa0a903
push 0xa0a934
jmp 0x4aca20
push 0x20
pop edx
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_alloc_srccollections_btree_node.rsassertion_failed:_edge.height__self.height___1
push 0xa0a944
jmp 0x4aca20