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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [0x57f040]
xor eax, ebp
mov dword [esp + 0xe8], eax
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x58], 0xffffff00
mov dword [esp + 0x50], ecx
cmp eax, ecx
mov dword [esp + 0x54], eax
je 0x4d97f7
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], 0
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x2c], eax
mov edi, dword [ebp + 0x24]
mov al, byte [ebp + 0x28]
mov byte [esp + 0x1f], al
lea eax, [esi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x4c], eax
cmp eax, 0xffffffff
je 0x4d93dc
mov eax, dword [ebx + 0x98]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
sub edx, ecx
sar edx, 5
cmp edx, eax
jbe 0x4d9cc1
shl eax, 5
mov eax, dword [ecx + eax + 0x10]
mov dword [esp + 0x48], eax
and eax, 0xffffff00
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x98]
cmp byte [esp + 0x1f], 0
mov dword [esp + 0xc], esi
je 0x4d981b
lea ecx, [ebp + 0x10]
lea edx, [esi + 4]
mov dword [esp + 0x14], edx
cmp eax, 0xffffffff
je 0x4d9408
mov dword [esp + 0x24], esp
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x80], xmm0
mov eax, ebx
shr eax, 0xe
mov ecx, ebx
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x588150]
bt ecx, eax
jae 0x4d93e9
push ebx
call fcn.004b9fc0
add esp, 4
mov edx, dword [ebx + 0x98]
movaps xmm0, xmmword [esp + 0x80]
movaps xmmword [esp + 0x90], xmm0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], ebx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
sub eax, ecx
sar eax, 5
cmp eax, edx
jbe 0x4d9cb2
mov eax, edx
shl eax, 5
mov ecx, dword [ecx + eax + 0x18]
mov dword [ecx + 0x98], 0xffffffff
mov ecx, dword [esi + 8]
mov edi, edx
mov edx, dword [esi + 0xc]
sub edx, ecx
sar edx, 5
mov dword [esp + 0x10], edi
cmp edx, edi
jbe 0x4d9cb2
add ecx, eax
lea esi, [esp + 0xc0]
push esi
call fcn.004dae70
lea edi, [esp + 0xb8]
lea ecx, [esp + 0x90]
push edi
call fcn.004dae70
mov eax, dword [esi]
cmp eax, dword [edi]
mov eax, dword [esi + 4]
sbb eax, dword [edi + 4]
jge 0x4d961f
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 0xd0], xmm0
movaps xmm0, xmmword [esp + 0x90]
movaps xmmword [esp + 0xc0], xmm0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xa8], 0
mov dword [esp + 0x18], eax
mov dword [esp + 0xd8], eax
mov esi, dword [esp + 0xc]
mov ebx, dword [esi + 8]
mov edi, dword [esi + 0xc]
mov ecx, edi
sub ecx, ebx
sar ecx, 5
mov edx, dword [esp + 0x10]
lea eax, [edx*2 + 1]
mov dword [esp + 0x28], eax
cmp eax, ecx
jae 0x4d8ffb
lea esi, [edx + edx]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x10], edx
add esi, 2
cmp esi, ecx
jae 0x4d926d
sub edi, ebx
sar edi, 5
cmp edi, esi
jbe 0x4d9cb2
mov eax, esi
mov esi, dword [esp + 0x28]
cmp edi, esi
jbe 0x4d9cb2
mov ecx, eax
mov dword [esp + 0x18], eax
shl ecx, 5
add ecx, ebx
mov edi, esi
shl edi, 5
add edi, ebx
lea eax, [esp + 0xb8]
push eax
call fcn.004dae70
mov ecx, edi
lea eax, [esp + 0xb0]
push eax
call fcn.004dae70
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xb0]
mov eax, dword [esp + 0xbc]
sbb eax, dword [esp + 0xb4]
cmovl esi, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov edx, esi
sub edi, ebx
sar edi, 5
cmp edi, edx
jbe 0x4d9cb2
mov esi, edx
shl esi, 5
add ebx, esi
mov ecx, ebx
lea eax, [esp + 0xb8]
push eax
mov dword [esp + 0x18], edx
call fcn.004dae70
lea ecx, [esp + 0xc0]
lea eax, [esp + 0xb0]
push eax
call fcn.004dae70
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xb0]
mov eax, dword [esp + 0xbc]
sbb eax, dword [esp + 0xb4]
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, edi
jl 0x4d92b4
sub eax, ebx
sar eax, 5
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x18], ecx
mov ecx, eax
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov dword [esp + 0xd8], 0
cmp ecx, edx
je 0x4d9276
jbe 0x4d9cb2
mov edi, edx
mov eax, edx
shl eax, 5
lea esi, [ebx + eax]
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [ebx + eax + 0x10], xmm1
movups xmmword [ebx + eax], xmm0
mov eax, dword [ebx + eax + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jae 0x4d905c
push eax
call fcn.004ba0f0
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esi + 0x18], eax
mov esi, dword [esp + 0xc]
mov edx, edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edx
jbe 0x4d9cb2
mov ecx, edx
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0x98], edx
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 5
cmp eax, edx
jbe 0x4d9cb2
mov eax, dword [esp + 0xd8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jb 0x4d9ce2
mov eax, dword [esp + 0xa8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jb 0x4d9cf0
mov esp, dword [esp + 0x24]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
cmp eax, ecx
je 0x4d924f
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
mov dword [esp + 0x24], esi
mov edi, dword [eax + 8]
mov dword [esp + 0x14], edi
mov edi, dword [eax + 0x14]
mov dword [esp + 0x18], edi
xor esi, esi
mov edi, dword [esp + 0x4c]
cmp edi, 0xffffffff
je 0x4d912d
movzx edi, byte [esp + 0x48]
mov ebx, dword [esp + 0x58]
or ebx, edi
cmp ebx, 1
je 0x4d9cca
cmp byte [esp + 0x1f], 0
je 0x4d913f
cmp dword [esp + 0x2c], 1
je 0x4d9cd6
mov edi, dword [esp + 0x50]
cmp dword [esp + 0x54], edi
je 0x4d920b
cmp eax, ecx
je 0x4d920b
cmp esi, dword [esp + 0x44]
jne 0x4d9189
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 0x3c]
xor edx, dword [esp + 0x40]
or edx, edi
jne 0x4d9189
mov edx, dword [esp + 0x14]
xor edx, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
xor esi, dword [esp + 0x38]
or esi, edx
jne 0x4d9189
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x30]
je 0x4d91ea
cmp eax, ecx
je 0x4d9202
movups xmm0, xmmword [eax]
mov eax, dword [eax + 0x14]
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov al, 1
mov esi, dword [ebp + 0xc]
mov byte [esp + 0x78], al
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov edi, dword [eax + 8]
cmp edi, 0x4d9ed0
je 0x4d9225
mov ecx, edi
call dword [0x5798d8]
sub esp, 0x24
movups xmm0, xmmword [esp + 0x84]
movups xmm1, xmmword [esp + 0x94]
movups xmmword [esp + 0x14], xmm1
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
mov ecx, ebx
call edi
mov ecx, dword [esp + 0xe8]
xor ecx, ebp
call fcn.004e71b0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
mov byte [esp + 0x60], 0
xor eax, eax
jmp 0x4d91a6
cmp eax, ecx
setne dl
mov esi, dword [esp + 0x50]
cmp dword [esp + 0x54], esi
setne dh
cmp dh, dl
jne 0x4d9189
jmp 0x4d91ea
mov ecx, dword [ebx + 0x1c]
sub esp, 0x24
movups xmm0, xmmword [esp + 0x84]
movups xmm1, xmmword [esp + 0x94]
movups xmmword [esp + 0x14], xmm1
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
call fcn.004bf970
jmp 0x4d91ea
xor edx, edx
dec edx
mov dword [esp + 0x10], 0xffffff00
mov esi, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], edx
jmp 0x4d9110
mov edx, dword [esp + 0x28]
jmp 0x4d8f70
mov eax, dword [esi + 0x10]
cmp edi, eax
jae 0x4d9a2b
test edi, edi
je 0x4d9cab
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
mov eax, dword [esp + 0x18]
mov dword [edi + 0x18], eax
add edi, 0x20
mov dword [esi + 0xc], edi
jmp 0x4d9069
sub eax, ebx
sar eax, 5
mov ecx, dword [esp + 0x10]
cmp eax, ecx
je 0x4d9393
mov edx, dword [esp + 0x14]
cmp eax, edx
jbe 0x4d9cb2
cmp eax, ecx
jbe 0x4d9cb2
mov edi, ecx
shl edi, 5
movsd xmm0, qword [ebx + esi + 0x10]
movsd qword [ebx + edi + 0x10], xmm0
movups xmm0, xmmword [ebx + esi]
movups xmmword [ebx + edi], xmm0
cmp ecx, edx
je 0x4d9329
add edi, ebx
mov eax, dword [edi + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jae 0x4d931a
push eax
call fcn.004ba0f0
add esp, 4
add ebx, esi
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ebx + 0x18], 0
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
sub ecx, eax
sar ecx, 5
mov esi, dword [esp + 0x10]
cmp ecx, esi
jbe 0x4d9cb2
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0x98], esi
mov ebx, dword [edx + 8]
mov edi, dword [edx + 0xc]
mov eax, edi
sub eax, ebx
sar eax, 5
cmp eax, esi
jbe 0x4d9cb2
mov edx, dword [esp + 0x14]
lea ecx, [edx + edx]
mov dword [esp + 0x18], ecx
lea esi, [edx*2 + 1]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x28], esi
cmp esi, ecx
mov esi, dword [esp + 0x18]
jae 0x4d8fe6
jmp 0x4d8eeb
cmp ecx, dword [esp + 0x14]
jbe 0x4d9cb2
add ebx, esi
mov esi, dword [esp + 0xc]
cmp edi, dword [esi + 0x10]
jae 0x4d9c85
test edi, edi
je 0x4d9cab
movsd xmm0, qword [ebx + 0x10]
movsd qword [edi + 0x10], xmm0
movups xmm0, xmmword [ebx]
movups xmmword [edi], xmm0
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x18], eax
mov dword [ebx + 0x18], 0
add edi, 0x20
mov dword [esi + 0xc], edi
jmp 0x4d9329
mov dword [esp + 0x48], 0
jmp 0x4d8d82
mov eax, ebx
shr eax, 0x15
mov byte [eax + 0x590150], 1
jmp 0x4d8ddc
mov eax, ebx
shr eax, 0x15
mov byte [eax + 0x590150], 1
jmp 0x4d9432
movups xmm0, xmmword [ecx]
movaps xmmword [esp + 0x90], xmm0
mov eax, ebx
shr eax, 0xe
mov ecx, ebx
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x588150]
bt ecx, eax
jae 0x4d93fa
push ebx
call fcn.004b9fc0
add esp, 4
movaps xmm0, xmmword [esp + 0x90]
movaps xmmword [esp + 0xc0], xmm0
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd8], ebx
mov edi, eax
sub edi, ecx
je 0x4d94fa
sar edi, 5
lea edx, [esp + 0x80]
lea ecx, [esp + 0xc0]
lea esi, [edi - 1]
mov dword [esp + 0x10], esi
shr esi, 1
mov eax, dword [esp + 0xc]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
sub eax, ebx
sar eax, 5
cmp eax, esi
jbe 0x4d9cb2
mov eax, esi
shl eax, 5
add ebx, eax
push edx
call fcn.004dae70
mov ecx, ebx
lea eax, [esp + 0xb8]
push eax
call fcn.004dae70
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0xb8]
mov eax, dword [esp + 0x84]
sbb eax, dword [esp + 0xbc]
jge 0x4d9500
mov ecx, dword [esp + 0x14]
push edi
push esi
call fcn.004d9ee0
mov edi, esi
cmp dword [esp + 0x10], 1
lea edx, [esp + 0x80]
lea ecx, [esp + 0xc0]
jbe 0x4d9502
jmp 0x4d947c
xor esi, esi
mov edi, eax
jmp 0x4d9513
mov esi, edi
mov ebx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov edi, dword [ecx + 0xc]
mov dword [esp + 0xd8], 0
mov ecx, edi
sub ecx, eax
sar ecx, 5
cmp ecx, esi
je 0x4d95dd
jbe 0x4d9cb2
mov ecx, esi
shl ecx, 5
lea edi, [eax + ecx]
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [eax + ecx + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jae 0x4d9579
push eax
call fcn.004ba0f0
add esp, 4
mov dword [edi + 0x18], ebx
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x4d9cb2
mov ecx, esi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0x98], esi
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 8]
sar eax, 5
cmp eax, esi
jbe 0x4d9cb2
mov eax, dword [esp + 0xd8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jb 0x4d9cfe
mov esi, dword [esp + 0xc]
jmp 0x4d90e2
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x10]
cmp edi, ecx
jae 0x4d9bbc
test edi, edi
je 0x4d9cab
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [edi + 0x10], xmm1
movups xmmword [edi], xmm0
mov dword [edi + 0x18], ebx
add edi, 0x20
mov eax, dword [esp + 0xc]
mov dword [eax + 0xc], edi
jmp 0x4d957c
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 0xd0], xmm0
movaps xmm0, xmmword [esp + 0x90]
movaps xmmword [esp + 0xc0], xmm0
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xd8], ebx
mov eax, dword [esp + 0x10]
test eax, eax
mov ecx, dword [esp + 0xc]
je 0x4d96f8
lea edx, [esp + 0xc0]
mov dword [esp + 0x10], eax
lea edi, [eax - 1]
mov dword [esp + 0x18], edi
shr edi, 1
mov ebx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
sub eax, ebx
sar eax, 5
cmp eax, edi
jbe 0x4d9cb2
mov eax, edi
shl eax, 5
add ebx, eax
mov esi, edx
mov ecx, edx
lea eax, [esp + 0xb8]
push eax
call fcn.004dae70
mov ecx, ebx
lea eax, [esp + 0xb0]
push eax
call fcn.004dae70
mov eax, dword [esp + 0xb8]
cmp eax, dword [esp + 0xb0]
mov eax, dword [esp + 0xbc]
sbb eax, dword [esp + 0xb4]
jge 0x4d96fc
mov ecx, dword [esp + 0x14]
push dword [esp + 0x10]
push edi
call fcn.004d9ee0
mov eax, edi
cmp dword [esp + 0x18], 1
mov ecx, dword [esp + 0xc]
mov edx, esi
jbe 0x4d9704
jmp 0x4d9671
xor edi, edi
jmp 0x4d970b
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0xd8], 0
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
cmp ecx, edi
je 0x4d97b6
jbe 0x4d9cb2
mov ecx, edi
shl ecx, 5
lea esi, [eax + ecx]
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [eax + ecx + 0x10], xmm1
movups xmmword [eax + ecx], xmm0
mov eax, dword [eax + ecx + 0x18]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jae 0x4d9777
push eax
call fcn.004ba0f0
add esp, 4
mov dword [esi + 0x18], ebx
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x4d9cb2
mov ecx, edi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0x98], edi
mov eax, dword [esi + 0xc]
sub eax, dword [esi + 8]
sar eax, 5
cmp eax, edi
ja 0x4d909c
jmp 0x4d9cb2
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0x10]
cmp esi, ecx
jae 0x4d9af3
test esi, esi
je 0x4d9cab
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
mov dword [esi + 0x18], ebx
add esi, 0x20
mov eax, dword [esp + 0xc]
mov dword [eax + 0xc], esi
mov esi, eax
jmp 0x4d977e
xor eax, eax
dec eax
mov dword [esp + 0x3c], 0xffffff00
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
jmp 0x4d8d2a
cmp eax, 0xffffffff
je 0x4d90e2
mov dword [esp + 0x10], esp
mov edi, dword [ebx + 0x98]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, edi
jbe 0x4d9cb2
mov ecx, edi
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0x98], 0xffffffff
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
mov ecx, esi
sub ecx, eax
sar ecx, 5
dec ecx
cmp ecx, edi
jne 0x4d98b2
cmp eax, esi
je 0x4d9c9d
mov edi, esi
add edi, 0xffffffe0
je 0x4d9ca4
mov eax, dword [esi - 8]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x588150]
bt edx, ecx
jae 0x4d989b
push eax
call fcn.004ba0f0
add esp, 4
mov dword [esi - 8], 0
mov esi, dword [esp + 0xc]
mov dword [esi + 0xc], edi
mov esp, dword [esp + 0x10]
jmp 0x4d90e2
cmp esi, eax
je 0x4d9cb2
shl ecx, 5
mov eax, dword [eax + ecx + 0x18]
mov dword [eax + 0x98], 0xffffffff
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 8]
je 0x4d9cb2
lea edx, [ecx + 4]
mov dword [esp + 0x14], edx
movsd xmm0, qword [eax - 0x10]
movsd qword [esp + 0xa0], xmm0
movups xmm0, xmmword [eax - 0x20]
movaps xmmword [esp + 0x90], xmm0
mov edx, dword [eax - 8]
mov dword [esp + 0x20], edx
mov dword [eax - 8], 0
mov eax, dword [ecx + 0xc]
sub eax, dword [ecx + 8]
sar eax, 5
dec eax
lea edx, [edi*2 + 1]
cmp edx, eax
jae 0x4d9c96
lea esi, [edi + edi]
mov dword [esp + 0x24], eax
add esi, 2
cmp esi, eax
jae 0x4d99a1
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
sub ecx, eax
sar ecx, 5
cmp ecx, esi
jbe 0x4d9cb2
cmp ecx, edx
jbe 0x4d9cb2
mov ecx, esi
shl ecx, 5
add ecx, eax
mov ebx, edx
shl ebx, 5
add ebx, eax
lea eax, [esp + 0xc0]
push eax
mov dword [esp + 0x1c], edx
call fcn.004dae70
mov ecx, ebx
lea eax, [esp + 0x80]
push eax
call fcn.004dae70
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
cmp eax, dword [esp + 0x80]
mov eax, dword [esp + 0xc4]
sbb eax, dword [esp + 0x84]
cmovl edx, esi
mov ebx, edx
mov ecx, dword [esp + 0x14]
push edi
push edx
call fcn.004d9ee0
lea esi, [ebx + ebx]
lea edx, [ebx*2 + 1]
mov edi, ebx
mov eax, dword [esp + 0x24]
cmp edx, eax
jb 0x4d992a
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 0xd0], xmm0
movaps xmm0, xmmword [esp + 0x90]
movaps xmmword [esp + 0xc0], xmm0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xd8], eax
sub esp, 0x24
movaps xmm0, xmmword [esp + 0xe4]
movaps xmm1, xmmword [esp + 0xf4]
movups xmmword [esp + 0x14], xmm1
movups xmmword [esp + 4], xmm0
mov dword [esp], ebx
mov ecx, dword [esp + 0x38]
call fcn.004897b0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
jmp 0x4d9866
mov dword [esp + 0x10], edx
mov edi, ecx
inc ecx
cmp ecx, 0x8000000
jae 0x4d9d11
sub eax, ebx
mov edx, eax
sar edx, 4
cmp edx, ecx
cmovbe edx, ecx
cmp eax, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, edx
test esi, esi
je 0x4d9d1a
cmp esi, 0x8000000
jae 0x4d9d0c
mov eax, esi
shl eax, 5
push eax
call fcn.004e6c0e
add esp, 4
mov ebx, edi
shl ebx, 5
add ebx, eax
mov edx, dword [esp + 0x18]
je 0x4d9cab
shl esi, 5
add eax, esi
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [ebx + 0x10], xmm1
movups xmmword [ebx], xmm0
mov dword [ebx + 0x18], edx
lea edi, [ebx + 0x20]
mov esi, dword [esp + 0xc]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
sub ecx, edx
sub ebx, ecx
push ecx
push edx
push ebx
call fcn.004ea680
add esp, 0xc
mov eax, dword [esi + 8]
mov dword [esi + 8], ebx
mov dword [esi + 0xc], edi
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x10], ecx
test eax, eax
jne 0x4d9ae8
mov edx, dword [esp + 0x10]
jmp 0x4d92ac
push eax
call fcn.004e6c3e
add esp, 4
jmp 0x4d9adf
lea edx, [edi + 1]
cmp edx, 0x8000000
jae 0x4d9d11
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
cmovbe eax, edx
cmp ecx, 0x7fffffe0
mov esi, 0x7ffffff
cmovb esi, eax
test esi, esi
je 0x4d9d21
cmp esi, 0x8000000
jae 0x4d9d0c
mov eax, esi
shl eax, 5
push eax
call fcn.004e6c0e
add esp, 4
mov ecx, edi
shl ecx, 5
add ecx, eax
je 0x4d9cab
shl esi, 5
add eax, esi
mov dword [esp + 0x10], eax
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [ecx + 0x10], xmm1
movups xmmword [ecx], xmm0
mov dword [ecx + 0x18], ebx
lea esi, [ecx + 0x20]
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 8]
mov edx, ecx
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sub edx, ecx
mov dword [esp + 0x14], edx
push ecx
push eax
push edx
call fcn.004ea680
add esp, 0xc
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], esi
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x10], ecx
test eax, eax
je 0x4d97ec
push eax
call fcn.004e6c3e
add esp, 4
jmp 0x4d97ec
lea edx, [esi + 1]
cmp edx, 0x8000000
jae 0x4d9d11
sub ecx, eax
mov eax, ecx
sar eax, 4
cmp eax, edx
cmovbe eax, edx
cmp ecx, 0x7fffffe0
mov edi, 0x7ffffff
cmovb edi, eax
test edi, edi
je 0x4d9d28
cmp edi, 0x8000000
jae 0x4d9d0c
mov eax, edi
shl eax, 5
push eax
call fcn.004e6c0e
add esp, 4
mov ecx, esi
shl ecx, 5
add ecx, eax
je 0x4d9cab
shl edi, 5
add eax, edi
mov dword [esp + 0x10], eax
movaps xmm0, xmmword [esp + 0xc0]
movsd xmm1, qword [esp + 0xd0]
movsd qword [ecx + 0x10], xmm1
movups xmmword [ecx], xmm0
mov dword [ecx + 0x18], ebx
lea edi, [ecx + 0x20]
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx + 8]
mov edx, ecx
mov ecx, dword [ebx + 0xc]
sub ecx, eax
sub edx, ecx
mov dword [esp + 0x14], edx
push ecx
push eax
push edx
call fcn.004ea680
add esp, 0xc
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x14]
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edi
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x10], ecx
test eax, eax
je 0x4d9613
push eax
call fcn.004e6c3e
add esp, 4
jmp 0x4d9613
mov ecx, dword [esp + 0x20]
push ebx
call fcn.00489a60
mov edi, eax
jmp 0x4d93d4
mov ebx, edi
jmp 0x4d99c6
push str....._third_partylibc_srcinclude_vector:1539:_assertion__empty___failed:_vector::pop_back_called_on_an_empty_vector_n
jmp 0x4d9cb7
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
jmp 0x4d9cb7
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
jmp 0x4d9cb7
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x55eb93
call fcn.00516c70
mov ecx, dword [esp + 0x20]
call fcn.00531dc0
mov edi, dword [esp + 0xc]
dec dword [edi + 0x14]
jmp 0x4d912d
mov edi, dword [esp + 0xc]
inc dword [edi + 0x14]
jmp 0x4d913f
push eax
call fcn.004ba0f0
add esp, 4
jmp 0x4d90bd
push eax
call fcn.004ba0f0
add esp, 4
jmp 0x4d90de
push eax
call fcn.004ba0f0
add esp, 4
jmp 0x4d95d4
call fcn.00516120
mov ecx, dword [esp + 0x20]
call fcn.005161e0
xor eax, eax
jmp 0x4d9a79
xor eax, eax
jmp 0x4d9b3e
xor eax, eax
jmp 0x4d9c07