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

Disassembly:
sub esp, 0x110
mov eax, dword [0x537eb4]
xor eax, esp
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x11c]
test eax, eax
mov edx, dword [esp + 0x120]
push ebx
mov ebx, dword [esp + 0x11c]
push ebp
push esi
mov esi, dword [esp + 0x120]
lea ecx, [ebx + eax]
mov dword [esp + 0x48], esi
push edi
mov edi, ebx
mov dword [esp + 0xcc], ebx
mov eax, dword [esi + 0x74b0]
cmovg edi, ecx
cmp dword [esp + 0x138], 0
mov ecx, dword [esi + 0x7578]
mov ebp, dword [esi + 0x760c]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x74b4]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x74b8]
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], eax
je 0x4cf746
push dword [esp + 0x134]
lea eax, [esi + 0x682c]
mov dword [esi + 0x750c], 1
mov esi, eax
mov dword [esp + 0xcc], eax
lea edi, [esp + 0x114]
push edx
lea eax, [esp + 0xec]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004c7523
add esp, 0xc
cmp eax, 0xffffff88
jbe 0x4ce02e
push 0xffffffffffffffec
pop edi
jmp 0x4cf7a7
mov ebx, dword [esp + 0x4c]
lea eax, [esp + 0xe4]
push dword [ebx]
push eax
lea eax, [esp + 0x100]
push eax
call fcn.004d05a6
push dword [ebx + 8]
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x114]
push eax
call fcn.004d05a6
push dword [ebx + 4]
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x128]
push eax
call fcn.004d05a6
add esp, 0x24
mov esi, dword [esp + 0x10c]
mov ebx, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
mov ebp, dword [esi + edx*8 + 4]
mov dl, byte [ebx + edi*8 + 2]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x54], ebp
mov ebp, dword [ebx + edi*8 + 4]
mov byte [esp + 0x17], dl
mov edx, dword [esp + 0x108]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [ecx + eax*8 + 4]
mov bl, byte [esi + edx*8 + 2]
mov byte [esp + 0x16], bl
mov bl, byte [ecx + eax*8 + 2]
mov byte [esp + 0x23], bl
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x10], ebp
movzx ebp, word [ebx + edi*8]
movzx edi, byte [ebx + edi*8 + 3]
mov dword [esp + 0x5c], ebp
movzx ebp, word [esi + edx*8]
movzx edx, byte [esi + edx*8 + 3]
mov dword [esp + 0x68], ebp
movzx ebp, word [ecx + eax*8]
movzx eax, byte [ecx + eax*8 + 3]
mov dword [esp + 0x7c], eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], edx
cmp al, 1
jbe 0x4ce379
cmp dword [esp + 0x13c], 0
je 0x4ce25a
cmp al, 0x19
jb 0x4ce25a
mov ebp, dword [esp + 0xe4]
mov ebx, ebp
movzx edx, al
mov eax, dword [esp + 0xe8]
sub edx, 5
mov ecx, eax
and ecx, 0x1f
shl ebx, cl
mov ecx, edx
neg ecx
lea esi, [eax + edx]
and ecx, 0x1f
shr ebx, cl
shl ebx, 5
add dword [esp + 0x10], ebx
cmp esi, 0x20
jbe 0x4ce18b
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4ce22e
mov edi, dword [esp + 0xec]
cmp edi, dword [esp + 0xf4]
jb 0x4ce1cc
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0x84]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x8c]
jmp 0x4ce216
mov ebx, dword [esp + 0xf0]
cmp edi, ebx
je 0x4ce235
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ce1e8
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0xec], edi
push 4
lea eax, [esp + 0x88]
mov dword [esp + 0xec], esi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov dword [esp + 0xe4], ebp
mov ebx, dword [esp + 0xf0]
mov ecx, esi
mov eax, ebp
and ecx, 0x1f
add esi, 5
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, 0x1b
add ecx, eax
mov dword [esp + 0xe8], esi
mov dword [esp + 0x10], ecx
jmp 0x4ce351
mov ecx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xe4]
and ecx, 0x1f
movzx esi, al
mov edx, ebp
shl edx, cl
mov ecx, esi
add esi, dword [esp + 0xe8]
neg ecx
and ecx, 0x1f
mov dword [esp + 0xe8], esi
shr edx, cl
add dword [esp + 0x10], edx
cmp esi, 0x20
jbe 0x4ce2a3
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4ce346
mov edi, dword [esp + 0xec]
cmp edi, dword [esp + 0xf4]
jb 0x4ce2e4
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0x98]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0xa0]
jmp 0x4ce32e
mov ebx, dword [esp + 0xf0]
cmp edi, ebx
je 0x4ce34d
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ce300
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0xec], edi
push 4
lea eax, [esp + 0x8c]
mov dword [esp + 0xec], esi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov dword [esp + 0xe4], ebp
mov ebx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x114]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], ecx
jmp 0x4ce42c
mov esi, dword [esp + 0xe8]
xor edx, edx
test ebp, ebp
sete dl
test al, al
jne 0x4ce3b0
mov ebx, dword [esp + edx*4 + 0x110]
neg ebp
sbb eax, eax
mov ebp, dword [esp + 0xe4]
and eax, 4
mov eax, dword [esp + eax + 0x110]
mov dword [esp + 0x114], eax
jmp 0x4ce411
mov ebp, dword [esp + 0xe4]
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
shr eax, 0x1f
inc esi
mov dword [esp + 0xe8], esi
lea ecx, [eax + edx]
mov edx, dword [esp + 0x110]
add ecx, dword [esp + 0x10]
lea ebx, [edx - 1]
cmp ecx, 3
je 0x4ce3e8
mov ebx, dword [esp + ecx*4 + 0x110]
xor eax, eax
test ebx, ebx
sete al
sub ebx, eax
mov eax, dword [esp + 0x118]
cmp ecx, 1
cmovne eax, dword [esp + 0x114]
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], edx
mov edi, dword [esp + 0xec]
mov ecx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0xf0]
mov al, byte [esp + 0x16]
mov dword [esp + 0x58], ecx
test al, al
je 0x4ce468
movzx edx, al
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add esi, edx
mov ecx, edx
mov dword [esp + 0xe8], esi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov al, byte [esp + 0x16]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], ecx
movzx edx, byte [esp + 0x17]
movzx eax, al
add eax, edx
mov dword [esp + 0x48], edx
cmp eax, 0x14
jb 0x4ce533
cmp esi, 0x20
jbe 0x4ce495
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4ce533
cmp edi, dword [esp + 0xf4]
jb 0x4ce4cf
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0x90]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x98]
jmp 0x4ce510
cmp edi, ebx
je 0x4ce533
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ce4e4
mov ecx, edi
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub edi, ecx
push 4
push edi
mov dword [esp + 0xf4], edi
add esi, eax
lea eax, [esp + 0x98]
push eax
mov dword [esp + 0xf4], esi
call fcn.004e4d00
mov ebp, dword [esp + 0x9c]
mov edx, dword [esp + 0x54]
add esp, 0xc
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], ebp
cmp byte [esp + 0x17], 0
jbe 0x4ce563
mov ecx, esi
mov eax, ebp
and ecx, 0x1f
add esi, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0xe8], esi
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x50], ecx
cmp esi, 0x20
jbe 0x4ce579
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4ce613
cmp edi, dword [esp + 0xf4]
jb 0x4ce5b3
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0xd8]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0xe0]
jmp 0x4ce5f4
cmp edi, ebx
je 0x4ce613
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ce5c8
mov ecx, edi
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub edi, ecx
push 4
push edi
mov dword [esp + 0xf4], edi
add esi, eax
lea eax, [esp + 0xa0]
push eax
mov dword [esp + 0xf4], esi
call fcn.004e4d00
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], ebp
mov edx, dword [esp + 0x138]
cmp edx, 1
je 0x4ce7f6
mov eax, dword [esp + 0x64]
mov edx, ebp
add esi, eax
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x531188]
mov eax, dword [esp + 0x5c]
movzx eax, ax
add edx, eax
mov eax, dword [esp + 0x60]
add esi, eax
mov dword [esp + 0xf8], edx
mov ecx, esi
mov edx, ebp
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x531188]
mov eax, dword [esp + 0x68]
movzx eax, ax
add edx, eax
mov dword [esp + 0x108], edx
cmp esi, 0x20
jbe 0x4ce689
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4ce725
cmp edi, dword [esp + 0xf4]
jb 0x4ce6c3
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0xb0]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0xb8]
jmp 0x4ce706
cmp edi, ebx
je 0x4ce725
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ce6d8
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0xec], edi
push 4
lea eax, [esp + 0xd4]
mov dword [esp + 0xec], esi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0xdc]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], ebp
mov eax, dword [esp + 0x7c]
lea edx, [esi + eax]
mov ecx, edx
mov dword [esp + 0xe8], edx
neg ecx
and ecx, 0x1f
shr ebp, cl
and ebp, dword [eax*4 + 0x531188]
mov eax, dword [esp + 0x38]
movzx eax, ax
add eax, ebp
mov dword [esp + 0x100], eax
cmp edx, 0x20
jbe 0x4ce768
mov dword [esp + 0xec], 0x530b2c
jmp 0x4ce7ef
cmp edi, dword [esp + 0xf4]
jb 0x4ce7a2
mov eax, edx
and edx, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], edx
push 4
lea eax, [esp + 0xa0]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov eax, dword [esp + 0xa8]
jmp 0x4ce7e5
cmp edi, ebx
je 0x4ce7ef
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ce7b7
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub edx, eax
mov dword [esp + 0xec], edi
push 4
lea eax, [esp + 0xa4]
mov dword [esp + 0xec], edx
push edi
push eax
call fcn.004e4d00
mov eax, dword [esp + 0xac]
mov dword [esp + 0xf0], eax
add esp, 0xc
mov edx, dword [esp + 0x138]
mov ebx, dword [esp + 0x24]
lea esi, [esp + 0x50]
mov ecx, dword [esp + 0x28]
lea edi, [esp + 0x70]
mov ebp, dword [esp + 0x4c]
movsd dword es:[edi], dword [esi]
lea eax, [ebx + ecx]
mov dword [esp + 0x38], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x760c]
cmp eax, esi
ja 0x4cea8e
lea esi, [esp + 0x50]
lea edi, [esp + 0xd8]
movsd dword es:[edi], dword [esi]
lea edx, [eax - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add edi, ebx
lea ebp, [ebx + esi]
mov ebx, ebp
sub ebx, dword [esp + 0x10]
cmp eax, dword [esp + 0x3c]
ja 0x4cea2f
lea eax, [edi + esi]
cmp eax, edx
ja 0x4cea2f
mov ecx, dword [esp + 0x30]
lea eax, [edi + 0x20]
sub ecx, esi
cmp ecx, eax
jb 0x4cea2f
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
cmp eax, 0x10
jbe 0x4ce8b5
lea edx, [ecx + 0x10]
add eax, 0xfffffff0
lea ecx, [esi + 0x10]
movups xmm0, xmmword [edx]
lea esi, [ecx + eax]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4ce8b5
push 0x10
pop eax
add ecx, eax
add edx, eax
movups xmm0, xmmword [edx]
add edx, eax
movups xmmword [ecx], xmm0
add ecx, eax
movups xmm0, xmmword [edx]
add edx, eax
movups xmmword [ecx], xmm0
add ecx, eax
cmp ecx, esi
jb 0x4ce89d
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, edx
cmp ecx, eax
jbe 0x4ce92a
mov eax, ebp
sub eax, dword [esp + 0x44]
cmp ecx, eax
ja 0x4ce026
mov esi, dword [esp + 0x40]
mov eax, esi
mov ecx, dword [esp + 0x1c]
sub eax, edx
add ebx, eax
lea eax, [ebx + ecx]
cmp eax, esi
ja 0x4ce908
push ecx
push ebx
push ebp
call fcn.004e5280
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4cea6c
sub esi, ebx
push esi
push ebx
push ebp
call fcn.004e5280
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ebx, dword [esp + 0x34]
add ebp, esi
sub edx, esi
mov dword [esp + 0xdc], edx
jmp 0x4ce931
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
cmp ecx, 0x10
jb 0x4ce973
movups xmm0, xmmword [ebx]
push 0x10
pop ecx
lea eax, [edx + ebp]
movups xmmword [ebp], xmm0
cmp edx, ecx
jle 0x4ce8ff
add ebp, 0x10
add ebx, ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
cmp ebp, eax
jb 0x4ce957
jmp 0x4ce8ff
cmp ecx, 8
jae 0x4ce9a6
mov al, byte [ebx]
mov byte [ebp], al
mov al, byte [ebx + 1]
mov byte [ebp + 1], al
mov al, byte [ebx + 2]
mov byte [ebp + 2], al
mov al, byte [ebx + 3]
add ebx, dword [ecx*4 + 0x531048]
mov byte [ebp + 3], al
mov edx, ebx
sub ebx, dword [ecx*4 + 0x531068]
lea eax, [ebp + 4]
push 4
jmp 0x4ce9ac
mov eax, ebp
mov edx, ebx
push 8
pop ecx
push ecx
push edx
push eax
call fcn.004e4d00
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, 8
jbe 0x4ce8ff
add ebp, 8
lea ecx, [eax - 8]
add ebx, 8
mov eax, ebp
sub eax, ebx
lea esi, [ecx + ebp]
cmp eax, 0x10
jge 0x4ce9f7
sub ebx, ebp
push 8
lea eax, [ebx + ebp]
push eax
push ebp
call fcn.004e4d00
add ebp, 8
add esp, 0xc
cmp ebp, esi
jb 0x4ce9dc
jmp 0x4ce8ff
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
cmp ecx, 0x10
jle 0x4ce8ff
push 0x10
add ebp, 0x10
add ebx, 0x10
pop ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
cmp ebp, esi
jb 0x4cea10
jmp 0x4ce8ff
push dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push dword [esp + 0x48]
lea esi, [esp + 0x58]
push dword [esp + 0x3c]
push dword [esp + 0x48]
push eax
sub esp, 0xc
mov edi, esp
push edx
push dword [esp + 0x54]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d0426
mov edi, eax
add esp, 0x2c
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmp edi, 0xffffff88
ja 0x4cf7a7
add ebx, edi
sub dword [esp + 0x138], 1
mov dword [esp + 0x18], ebx
jne 0x4ce07c
jmp 0x4cf70f
test edx, edx
jle 0x4cf703
sub esi, ecx
je 0x4ceac8
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x18]
sub eax, edi
cmp esi, eax
jbe 0x4ceaaf
push 0xffffffffffffffba
jmp 0x4ce028
push esi
push ecx
push edi
call fcn.004d07da
sub ebx, esi
add esp, 0xc
add edi, esi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x18], edi
jmp 0x4ceacc
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
lea esi, [esp + 0x70]
and dword [ebp + 0x7610], 0
lea edi, [esp + 0xd8]
movsd dword es:[edi], dword [esi]
lea eax, [ebp + 0x7614]
lea ecx, [ebp + 0x17614]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], eax
add eax, ebx
mov dword [esp + 0x3c], ecx
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x28], eax
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
lea edi, [edx + ebx]
lea ebp, [ebx + esi]
mov ebx, ebp
sub ebx, dword [esp + 0x78]
cmp eax, ecx
ja 0x4ced05
mov eax, dword [esp + 0x30]
lea ecx, [edi + esi]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4ced01
mov ecx, dword [esp + 0x30]
lea eax, [edi + 0x20]
sub ecx, esi
cmp ecx, eax
jb 0x4ced01
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
movups xmm0, xmmword [ecx + 0x7614]
movups xmmword [esi], xmm0
cmp eax, 0x10
jbe 0x4ceb92
lea edx, [ecx + 0x7624]
add eax, 0xfffffff0
lea ecx, [esi + 0x10]
movups xmm0, xmmword [edx]
lea esi, [ecx + eax]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4ceb8e
push 0x10
pop eax
add ecx, eax
add edx, eax
movups xmm0, xmmword [edx]
add edx, eax
movups xmmword [ecx], xmm0
add ecx, eax
movups xmm0, xmmword [edx]
add edx, eax
movups xmmword [ecx], xmm0
add ecx, eax
cmp ecx, esi
jb 0x4ceb76
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, ecx
cmp dword [esp + 0x78], eax
jbe 0x4cec01
mov eax, ebp
sub eax, dword [esp + 0x44]
cmp dword [esp + 0x78], eax
ja 0x4ce026
mov esi, dword [esp + 0x40]
mov eax, esi
sub eax, ecx
add ebx, eax
lea eax, [ebx + edx]
cmp eax, esi
ja 0x4cebdd
push edx
push ebx
push ebp
call fcn.004e5280
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4ced3e
sub esi, ebx
push esi
push ebx
push ebp
call fcn.004e5280
mov eax, dword [esp + 0x80]
add ebp, esi
mov ebx, dword [esp + 0x40]
add esp, 0xc
sub eax, esi
mov dword [esp + 0x38], eax
mov esi, eax
jmp 0x4cec08
mov esi, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
push 0x10
pop edx
cmp ecx, edx
jb 0x4cec45
lea eax, [esi + ebp]
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
cmp esi, edx
jle 0x4cebd4
add ebp, 0x10
add ebx, edx
movups xmm0, xmmword [ebx]
add ebx, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [ebx]
add ebx, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, eax
jb 0x4cec29
jmp 0x4cebd4
cmp ecx, 8
jae 0x4cec78
mov al, byte [ebx]
mov byte [ebp], al
mov al, byte [ebx + 1]
mov byte [ebp + 1], al
mov al, byte [ebx + 2]
mov byte [ebp + 2], al
mov al, byte [ebx + 3]
add ebx, dword [ecx*4 + 0x531048]
mov byte [ebp + 3], al
mov edx, ebx
sub ebx, dword [ecx*4 + 0x531068]
lea eax, [ebp + 4]
push 4
jmp 0x4cec7e
mov eax, ebp
mov edx, ebx
push 8
pop ecx
push ecx
push edx
push eax
call fcn.004e4d00
add esp, 0xc
cmp esi, 8
jbe 0x4cebd4
add ebp, 8
add esi, 0xfffffff8
add ebx, 8
mov eax, ebp
push 0x10
sub eax, ebx
pop edx
lea ecx, [esi + ebp]
mov dword [esp + 0x38], ecx
cmp eax, edx
jge 0x4ceccd
sub ebx, ebp
mov esi, ecx
push 8
lea eax, [ebx + ebp]
push eax
push ebp
call fcn.004e4d00
add ebp, 8
add esp, 0xc
cmp ebp, esi
jb 0x4cecb2
jmp 0x4cebd4
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
cmp esi, edx
jle 0x4cebd4
add ebp, 0x10
add ebx, 0x10
movups xmm0, xmmword [ebx]
add ebx, edx
movups xmmword [ebp], xmm0
add ebp, edx
movups xmm0, xmmword [ebx]
add ebx, edx
movups xmmword [ebp], xmm0
add ebp, edx
cmp ebp, ecx
jb 0x4cece2
jmp 0x4cebd4
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push dword [esp + 0x48]
lea esi, [esp + 0x78]
push dword [esp + 0x3c]
push ecx
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x50]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d0341
mov edi, eax
add esp, 0x28
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmp edi, 0xffffff88
ja 0x4cf7a7
mov edx, dword [esp + 0x138]
add ebx, edi
dec edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x138], edx
test edx, edx
jle 0x4cf709
mov esi, dword [esp + 0x10c]
mov ebx, dword [esp + 0xfc]
mov edi, dword [esp + 0xf8]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
mov ebp, dword [esi + edx*8 + 4]
mov dl, byte [ebx + edi*8 + 2]
mov byte [esp + 0x16], dl
mov edx, dword [esp + 0x108]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x54], ebp
mov ebp, dword [ebx + edi*8 + 4]
mov bl, byte [esi + edx*8 + 2]
mov byte [esp + 0x17], bl
mov bl, byte [ecx + eax*8 + 2]
mov byte [esp + 0x23], bl
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x50], ebp
mov ebp, dword [ecx + eax*8 + 4]
mov dword [esp + 0x10], ebp
movzx ebp, word [ebx + edi*8]
movzx edi, byte [ebx + edi*8 + 3]
mov dword [esp + 0xb0], ebp
movzx ebp, word [esi + edx*8]
movzx edx, byte [esi + edx*8 + 3]
mov dword [esp + 0xb8], ebp
movzx ebp, word [ecx + eax*8]
movzx eax, byte [ecx + eax*8 + 3]
mov dword [esp + 0xc0], eax
mov al, byte [esp + 0x23]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0xc4], edi
mov dword [esp + 0xb4], edx
cmp al, 1
jbe 0x4cf05a
cmp dword [esp + 0x13c], 0
je 0x4cef47
cmp al, 0x19
jb 0x4cef47
mov ebp, dword [esp + 0xe4]
mov ebx, ebp
movzx edx, al
mov eax, dword [esp + 0xe8]
sub edx, 5
mov ecx, eax
and ecx, 0x1f
shl ebx, cl
mov ecx, edx
neg ecx
lea esi, [eax + edx]
and ecx, 0x1f
shr ebx, cl
shl ebx, 5
add dword [esp + 0x10], ebx
cmp esi, 0x20
jbe 0x4cee7e
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4cef1b
mov edi, dword [esp + 0xec]
cmp edi, dword [esp + 0xf4]
jb 0x4ceeb9
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0x3c]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x44]
jmp 0x4cef03
mov ebx, dword [esp + 0xf0]
cmp edi, ebx
je 0x4cef22
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4ceed5
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0xec], edi
push 4
lea eax, [esp + 0x80]
mov dword [esp + 0xec], esi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov dword [esp + 0xe4], ebp
mov ebx, dword [esp + 0xf0]
mov ecx, esi
mov eax, ebp
and ecx, 0x1f
add esi, 5
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, 0x1b
add ecx, eax
mov dword [esp + 0xe8], esi
mov dword [esp + 0x10], ecx
jmp 0x4cf032
mov ecx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xe4]
and ecx, 0x1f
movzx esi, al
mov edx, ebp
shl edx, cl
mov ecx, esi
add esi, dword [esp + 0xe8]
neg ecx
and ecx, 0x1f
mov dword [esp + 0xe8], esi
shr edx, cl
add dword [esp + 0x10], edx
cmp esi, 0x20
jbe 0x4cef90
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4cf027
mov edi, dword [esp + 0xec]
cmp edi, dword [esp + 0xf4]
jb 0x4cefcb
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0x6c]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x74]
jmp 0x4cf00f
mov ebx, dword [esp + 0xf0]
cmp edi, ebx
je 0x4cf02e
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4cefe7
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0xec], edi
push 4
lea eax, [esp + 0x64]
mov dword [esp + 0xec], esi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov dword [esp + 0xe4], ebp
mov ebx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x114]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x114], eax
mov dword [esp + 0x110], ecx
jmp 0x4cf10b
mov ecx, dword [esp + 0x24]
xor edx, edx
mov esi, dword [esp + 0xe8]
test ecx, ecx
mov ebp, dword [esp + 0xe4]
sete dl
test al, al
jne 0x4cf095
mov ebx, dword [esp + edx*4 + 0x110]
neg ecx
sbb eax, eax
and eax, 4
mov eax, dword [esp + eax + 0x110]
mov dword [esp + 0x114], eax
jmp 0x4cf0f0
mov ecx, esi
mov eax, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
add ecx, edx
shr eax, 0x1f
mov edx, dword [esp + 0x110]
inc esi
add ecx, eax
mov dword [esp + 0xe8], esi
lea ebx, [edx - 1]
cmp ecx, 3
je 0x4cf0c7
mov ebx, dword [esp + ecx*4 + 0x110]
xor eax, eax
test ebx, ebx
sete al
sub ebx, eax
mov eax, dword [esp + 0x118]
cmp ecx, 1
cmovne eax, dword [esp + 0x114]
mov dword [esp + 0x118], eax
mov dword [esp + 0x114], edx
mov edi, dword [esp + 0xec]
mov ecx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0xf0]
mov al, byte [esp + 0x17]
mov dword [esp + 0x58], ecx
test al, al
je 0x4cf147
movzx edx, al
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add esi, edx
mov ecx, edx
mov dword [esp + 0xe8], esi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x1c]
add ecx, eax
mov al, byte [esp + 0x17]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x54], ecx
movzx edx, byte [esp + 0x16]
movzx eax, al
add eax, edx
mov dword [esp + 0x48], edx
cmp eax, 0x14
jb 0x4cf206
cmp esi, 0x20
jbe 0x4cf174
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4cf206
cmp edi, dword [esp + 0xf4]
jb 0x4cf1a8
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0x60]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0x68]
jmp 0x4cf1e3
cmp edi, ebx
je 0x4cf206
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4cf1bd
mov ecx, edi
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub edi, ecx
push 4
push edi
mov dword [esp + 0xf4], edi
add esi, eax
lea eax, [esp + 0x6c]
push eax
mov dword [esp + 0xf4], esi
call fcn.004e4d00
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
add esp, 0xc
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], ebp
cmp byte [esp + 0x16], 0
jbe 0x4cf236
mov ecx, esi
mov eax, ebp
and ecx, 0x1f
add esi, edx
shl eax, cl
mov ecx, edx
neg ecx
mov dword [esp + 0xe8], esi
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x50], ecx
cmp esi, 0x20
jbe 0x4cf24c
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4cf2e6
cmp edi, dword [esp + 0xf4]
jb 0x4cf286
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0xa8]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0xb0]
jmp 0x4cf2c7
cmp edi, ebx
je 0x4cf2e6
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4cf29b
mov ecx, edi
sub ecx, ebx
imul eax, ecx, 0xfffffff8
sub edi, ecx
push 4
push edi
mov dword [esp + 0xf4], edi
add esi, eax
lea eax, [esp + 0xb0]
push eax
mov dword [esp + 0xf4], esi
call fcn.004e4d00
mov ebp, dword [esp + 0xb4]
mov esi, dword [esp + 0xf4]
add esp, 0xc
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], ebp
cmp dword [esp + 0x138], 1
je 0x4cf486
mov eax, dword [esp + 0xc4]
mov edx, ebp
add esi, eax
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x531188]
mov eax, dword [esp + 0xb0]
movzx eax, ax
add edx, eax
mov eax, dword [esp + 0xb4]
add esi, eax
mov dword [esp + 0xf8], edx
mov ecx, esi
mov edx, ebp
neg ecx
and ecx, 0x1f
shr edx, cl
and edx, dword [eax*4 + 0x531188]
mov eax, dword [esp + 0xb8]
movzx eax, ax
add edx, eax
mov dword [esp + 0x108], edx
cmp esi, 0x20
jbe 0x4cf366
mov edi, 0x530b2c
mov dword [esp + 0xec], edi
jmp 0x4cf3f4
cmp edi, dword [esp + 0xf4]
jb 0x4cf3a3
mov eax, esi
and esi, 7
shr eax, 3
sub edi, eax
mov dword [esp + 0xe8], esi
push 4
lea eax, [esp + 0xc0]
mov dword [esp + 0xf0], edi
push edi
push eax
call fcn.004e4d00
mov ebp, dword [esp + 0xc8]
add esp, 0xc
jmp 0x4cf3d8
cmp edi, ebx
je 0x4cf3f4
mov ecx, esi
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4cf3b8
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub esi, eax
mov dword [esp + 0xec], edi
push edi
mov dword [esp + 0xec], esi
call fcn.004c3e6e
pop ecx
mov ebp, eax
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xec]
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], ebp
mov eax, dword [esp + 0xc0]
lea edx, [eax + esi]
mov ecx, edx
mov dword [esp + 0xe8], edx
neg ecx
and ecx, 0x1f
shr ebp, cl
and ebp, dword [eax*4 + 0x531188]
mov eax, dword [esp + 0x6c]
movzx eax, ax
add eax, ebp
mov dword [esp + 0x100], eax
cmp edx, 0x20
jbe 0x4cf437
mov dword [esp + 0xec], 0x530b2c
jmp 0x4cf486
cmp edi, dword [esp + 0xf4]
jb 0x4cf44c
mov eax, edx
shr eax, 3
sub edi, eax
and edx, 7
jmp 0x4cf46a
cmp edi, ebx
je 0x4cf486
mov ecx, edx
mov eax, edi
shr ecx, 3
sub eax, ecx
cmp eax, ebx
jae 0x4cf461
mov ecx, edi
sub ecx, ebx
mov eax, ecx
sub edi, ecx
shl eax, 3
sub edx, eax
push edi
mov dword [esp + 0xf0], edi
mov dword [esp + 0xec], edx
call fcn.004c3e6e
mov dword [esp + 0xe8], eax
pop ecx
mov eax, dword [esp + 0x24]
lea esi, [esp + 0x50]
mov edx, dword [esp + 0x1c]
lea edi, [esp + 0xd8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
lea edi, [eax + edx]
lea ebp, [eax + esi]
add eax, dword [esp + 0x28]
mov ebx, ebp
mov dword [esp + 0x6c], eax
sub ebx, dword [esp + 0x10]
cmp eax, dword [esp + 0x3c]
ja 0x4cf6a8
mov eax, dword [esp + 0x30]
lea ecx, [edi + esi]
add eax, 0xffffffe0
cmp ecx, eax
ja 0x4cf6a8
mov ecx, dword [esp + 0x30]
lea eax, [edi + 0x20]
sub ecx, esi
cmp ecx, eax
jb 0x4cf6a8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
cmp ecx, 0x10
jbe 0x4cf532
mov edx, dword [esp + 0x28]
lea eax, [ecx - 0x10]
add edx, 0x10
lea ecx, [esi + 0x10]
lea esi, [ecx + eax]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x4cf52e
push 0x10
pop eax
add ecx, eax
add edx, eax
movups xmm0, xmmword [edx]
add edx, eax
movups xmmword [ecx], xmm0
add ecx, eax
movups xmm0, xmmword [edx]
add edx, eax
movups xmmword [ecx], xmm0
add ecx, eax
cmp ecx, esi
jb 0x4cf516
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, ebp
sub eax, esi
cmp ecx, eax
jbe 0x4cf5a5
mov eax, ebp
sub eax, dword [esp + 0x44]
cmp ecx, eax
ja 0x4ce026
mov ecx, dword [esp + 0x40]
mov eax, ecx
sub eax, esi
add ebx, eax
lea eax, [edx + ebx]
cmp eax, ecx
ja 0x4cf581
push edx
push ebx
push ebp
call fcn.004e5280
add esp, 0xc
mov ebx, dword [esp + 0x18]
jmp 0x4cf6e4
mov esi, ecx
sub esi, ebx
push esi
push ebx
push ebp
call fcn.004e5280
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ebx, dword [esp + 0x34]
add ebp, esi
sub edx, esi
mov dword [esp + 0xdc], edx
jmp 0x4cf5ac
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x1c], edx
cmp ecx, 0x10
jb 0x4cf5ee
movups xmm0, xmmword [ebx]
push 0x10
pop ecx
lea eax, [edx + ebp]
movups xmmword [ebp], xmm0
cmp edx, ecx
jle 0x4cf578
add ebp, 0x10
add ebx, ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
cmp ebp, eax
jb 0x4cf5d2
jmp 0x4cf578
cmp ecx, 8
jae 0x4cf62b
mov al, byte [ebx]
mov esi, dword [ecx*4 + 0x531068]
mov byte [ebp], al
mov al, byte [ebx + 1]
mov byte [ebp + 1], al
mov al, byte [ebx + 2]
mov byte [ebp + 2], al
mov al, byte [ebx + 3]
add ebx, dword [ecx*4 + 0x531048]
push 4
mov byte [ebp + 3], al
lea eax, [ebp + 4]
push ebx
push eax
call fcn.004e4d00
add esp, 0xc
sub ebx, esi
jmp 0x4cf634
push ebx
push ebp
call fcn.004cb524
pop ecx
pop ecx
mov ecx, dword [esp + 0x1c]
cmp ecx, 8
jbe 0x4cf578
add ebp, 8
add ecx, 0xfffffff8
add ebx, 8
mov eax, ebp
sub eax, ebx
lea esi, [ecx + ebp]
cmp eax, 0x10
jge 0x4cf670
sub ebx, ebp
lea eax, [ebx + ebp]
push eax
push ebp
call fcn.004cb524
add ebp, 8
pop ecx
pop ecx
cmp ebp, esi
jb 0x4cf658
jmp 0x4cf578
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
cmp ecx, 0x10
jle 0x4cf578
push 0x10
add ebp, 0x10
add ebx, 0x10
pop ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
movups xmm0, xmmword [ebx]
add ebx, ecx
movups xmmword [ebp], xmm0
add ebp, ecx
cmp ebp, esi
jb 0x4cf689
jmp 0x4cf578
push dword [esp + 0x40]
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push dword [esp + 0x48]
lea esi, [esp + 0x58]
push dword [esp + 0x3c]
push dword [esp + 0x48]
push eax
sub esp, 0xc
mov edi, esp
push dword [esp + 0x50]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004d0341
mov edi, eax
add esp, 0x28
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmp edi, 0xffffff88
ja 0x4cf7a7
add ebx, edi
sub dword [esp + 0x138], 1
mov dword [esp + 0x18], ebx
jne 0x4ced64
jmp 0x4cf70f
mov ebx, dword [esp + 0x18]
test edx, edx
jne 0x4ce026
lea eax, [esp + 0xe4]
push eax
call fcn.004c750a
pop ecx
test eax, eax
je 0x4ce026
mov edi, dword [esp + 0xc8]
lea esi, [esp + 0x110]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x3c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
cmp dword [esi + 0x7610], 2
jne 0x4cf781
mov eax, edi
sub ebp, ecx
sub eax, ebx
cmp ebp, eax
ja 0x4ceaa8
test ebx, ebx
je 0x4cf76e
push ebp
push ecx
push ebx
call fcn.004e5280
add esp, 0xc
add ebx, ebp
and dword [esi + 0x7610], 0
lea ecx, [esi + 0x7614]
lea ebp, [esi + 0x17614]
sub ebp, ecx
sub edi, ebx
cmp ebp, edi
ja 0x4ceaa8
test ebx, ebx
je 0x4cf79e
push ebp
push ecx
push ebx
call fcn.004e4d00
add esp, 0xc
add ebx, ebp
mov edi, ebx
sub edi, dword [esp + 0xcc]
mov ecx, dword [esp + 0x11c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004e424b
add esp, 0x110
ret