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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x138
mov edi, dword [esp + 0x15c]
mov ebp, dword [esp + 0x14c]
cmp dword [ebp + 0x7594], 0
je 0x4cf045
mov ecx, dword [ebp + 0x74d0]
mov eax, 0xffffffb8
cmp ecx, edi
jae 0x4cf057
jmp 0x4d0fea
mov ecx, 0x20000
mov eax, 0xffffffb8
cmp ecx, edi
jb 0x4d0fea
mov esi, dword [esp + 0x158]
mov ebx, dword [esp + 0x150]
mov ecx, ebp
mov edx, esi
push dword [esp + 0x160]
push dword [esp + 0x158]
push ebx
push edi
call fcn.004cdb80
add esp, 0x10
cmp eax, 0xffffff88
ja 0x4d0fea
add esi, eax
mov ecx, edi
sub ecx, eax
cmp dword [ebp + 0x7594], 0
je 0x4cf0ad
mov eax, dword [ebp + 0x74d0]
mov edi, dword [esp + 0x154]
cmp eax, edi
cmovae eax, edi
jmp 0x4cf0c2
mov edi, dword [esp + 0x154]
cmp edi, 0x20000
mov eax, 0x20000
cmovb eax, edi
xor edx, edx
test eax, eax
cmovg edx, eax
add edx, ebx
sub edx, dword [ebp + 0x74b4]
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 0x75a4]
mov dword [esp + 8], eax
lea eax, [esp + 0xd4]
mov dword [esp], ecx
push ecx
push esi
push eax
push ebp
call fcn.004ce6c0
add esp, 0x10
cmp eax, 0xffffff88
ja 0x4d0fea
mov ecx, eax
test ebx, ebx
sete al
test edi, edi
mov dword [esp + 4], ecx
sete cl
or cl, al
mov edx, dword [esp + 0xd4]
test edx, edx
setg ch
mov eax, 0xffffffba
test cl, ch
mov ecx, dword [esp + 4]
jne 0x4d0fea
add esi, ecx
mov eax, dword [esp]
sub eax, ecx
mov ecx, dword [esp + 0x10]
cmp ecx, 0x3fffffc
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], eax
jbe 0x4cf162
test edx, edx
jne 0x4cf18e
xor esi, esi
mov dword [esp + 0x90], 0
jmp 0x4cf205
cmp dword [esp + 8], 0
sete al
cmp ecx, 0x1000001
setae cl
and cl, al
cmp edx, 9
setge al
mov dword [esp + 0x90], 0
test cl, al
je 0x4cf22b
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
xor esi, esi
mov edx, 1
xor edi, edi
nop dword [eax]
mov ebp, edi
movzx ebx, byte [eax + edx*8 + 2]
movzx edi, bl
cmp ebp, edi
cmova edi, ebp
cmp bl, 0x17
sbb esi, 0xffffffff
mov ebx, edx
shr ebx, cl
inc edx
test ebx, ebx
je 0x4cf1a0
mov al, 8
sub al, cl
mov ecx, eax
shl esi, cl
cmp dword [esp + 0x10], 0x3fffffd
jb 0x4cf1e1
xor eax, eax
cmp edi, 0x1a
setae al
mov dword [esp + 0x90], eax
jmp 0x4cf1ec
mov dword [esp + 0x90], 0
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x154]
mov eax, dword [esp + 8]
test eax, eax
je 0x4cf21d
mov dword [ebp + 0x75a4], 0
mov esi, dword [esp + 0x18]
jmp 0x4cf241
xor eax, eax
cmp esi, 0x14
setae al
mov esi, dword [esp + 0x18]
jmp 0x4cf22f
mov eax, dword [esp + 8]
mov dword [ebp + 0x75a4], 0
test eax, eax
je 0x4cf383
mov ecx, dword [ebp + 0x7610]
cmp ecx, 1
jne 0x4cf254
mov eax, dword [ebp + 0x7608]
jmp 0x4cf25d
xor eax, eax
test edi, edi
cmovg eax, edi
add eax, ebx
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x7578]
mov dword [esp + 0x38], eax
mov edi, dword [ebp + 0x760c]
test edx, edx
je 0x4cf33f
mov eax, dword [ebp + 0x74b0]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x74b4]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0x74b8]
mov dword [esp + 0x40], eax
mov dword [ebp + 0x750c], 1
mov eax, dword [ebp + 0x6834]
mov dword [esp + 0x78], eax
movsd xmm0, qword [ebp + 0x682c]
movsd qword [esp + 0x70], xmm0
cmp edx, 8
mov eax, 8
cmovl eax, edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc], 0xffffffec
mov eax, dword [esp + 4]
cmp dword [esp], eax
je 0x4d0fe6
mov dword [esp + 0x50], esi
lea eax, [esi + 4]
mov dword [esp + 0x30], eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
cmp ecx, 4
jb 0x4cf3a8
lea eax, [esi + ecx]
add eax, 0xfffffffc
mov dword [esp + 0x4c], eax
mov eax, dword [esi + ecx - 4]
mov dword [esp + 0x44], eax
mov dword [esp], eax
cmp eax, 0x1000000
jb 0x4d0fe6
cmp ecx, 0xffffff88
ja 0x4d0fe6
add ecx, 0xfffffffc
mov dword [esp + 0x14], ecx
mov eax, dword [esp]
shr eax, 0x18
bsr edx, eax
not edx
add edx, 9
jmp 0x4cf43a
mov dword [esp], ebx
cmp ecx, 2
jne 0x4d0fb2
sub edi, eax
mov ecx, dword [esp + 0x34]
mov esi, dword [esp]
sub ecx, esi
mov dword [esp + 0xc], 0xffffffba
cmp edi, ecx
ja 0x4d0fe6
test esi, esi
je 0x4d0f9d
push edi
push eax
push esi
call fcn.004f8d88
add esp, 0xc
add esi, edi
mov dword [esp], esi
jmp 0x4d0fa4
cmp dword [ebp + 0x7610], 2
jne 0x4cf3d0
mov ecx, ebp
mov edx, ebx
push dword [esp + 0x90]
push dword [esp + 0x24]
push dword [esp + 0x1c]
push esi
push edi
call fcn.004d1d80
jmp 0x4cf3ea
mov dword [esp + 0x4c], esi
movzx eax, byte [esi]
mov dword [esp], eax
mov dword [esp + 0x44], eax
cmp ecx, 2
je 0x4cf3f2
cmp ecx, 3
jne 0x4cf409
mov edx, ecx
movzx eax, byte [esi + 2]
shl eax, 0x10
mov ecx, dword [esp]
or ecx, eax
jmp 0x4cf3f7
mov ecx, ebp
mov edx, ebx
push dword [esp + 0x90]
push dword [esp + 0x24]
push dword [esp + 0x1c]
push esi
push edi
call fcn.004d37e0
add esp, 0x14
jmp 0x4d0fea
mov edx, ecx
mov ecx, dword [esp]
movzx eax, byte [esi + 1]
shl eax, 8
add ecx, eax
mov dword [esp], ecx
mov dword [esp + 0x44], ecx
mov ecx, edx
mov eax, dword [esp + 0x15c]
mov edx, dword [esp + 0x158]
movzx eax, byte [edx + eax - 1]
test eax, eax
je 0x4d0fe6
bsr edx, eax
xor edx, 0x1f
shl ecx, 3
sub edx, ecx
add edx, 9
mov dword [esp + 0x14], 0
mov dword [esp + 0x80], edi
mov eax, dword [ebp]
mov dword [esp + 0xb4], eax
mov eax, dword [eax + 4]
add edx, eax
mov ecx, edx
neg cl
mov ebp, dword [esp]
shr ebp, cl
and ebp, dword [eax*4 + 0x851948]
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x10], edx
cmp edx, 0x21
jae 0x4d1d2e
mov ecx, dword [esp + 0x14]
lea edi, [esi + ecx]
cmp ecx, 4
jge 0x4cf4b5
test ecx, ecx
je 0x4d1cd7
mov edx, dword [esp + 0x10]
mov eax, edx
shr eax, 3
mov ebp, ecx
mov ecx, edi
sub ecx, eax
cmp ecx, esi
cmovb eax, ebp
sub edi, eax
mov dword [esp + 0x4c], edi
shl eax, 3
sub edx, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
jmp 0x4cf4cf
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 3
sub edi, eax
mov dword [esp + 0x4c], edi
and ecx, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 4], edi
mov ebp, dword [edi]
mov dword [esp + 0x44], ebp
mov eax, dword [esp + 0xb4]
add eax, 8
mov dword [esp + 0xb4], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 8]
mov dword [esp + 0xb0], eax
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x10]
add edx, eax
mov ecx, edx
neg cl
mov edi, ebp
shr ebp, cl
and ebp, dword [eax*4 + 0x851948]
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x60], ebp
mov ecx, edx
cmp edx, 0x21
jae 0x4d1d46
mov ebp, dword [esp + 4]
cmp ebp, dword [esp + 0x30]
jae 0x4cf560
mov eax, ebp
sub eax, esi
je 0x4cf579
mov edx, ecx
shr ecx, 3
mov esi, ebp
sub esi, ecx
cmp esi, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
sub edx, ecx
mov ecx, edx
jmp 0x4cf56e
mov eax, ecx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and ecx, 7
mov dword [esp + 4], ebp
mov edi, dword [ebp]
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0xb0]
add eax, 8
mov dword [esp + 0xb0], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x14c]
mov eax, dword [eax + 4]
mov dword [esp + 0xac], eax
mov eax, dword [eax + 4]
mov edx, ecx
add edx, eax
mov ecx, edx
neg cl
mov dword [esp], edi
shr edi, cl
and edi, dword [eax*4 + 0x851948]
mov dword [esp + 0x48], edx
mov dword [esp + 0xa4], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x10], edx
cmp edx, 0x21
jae 0x4d1d5b
mov edi, dword [esp + 4]
cmp edi, dword [esp + 0x30]
jae 0x4cf60f
mov eax, edi
sub eax, esi
je 0x4cf636
mov edx, dword [esp + 0x10]
mov ecx, edx
shr ecx, 3
mov esi, edi
sub esi, ecx
cmp esi, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
cmovb ecx, eax
sub edi, ecx
mov dword [esp + 0x4c], edi
shl ecx, 3
sub edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
jmp 0x4cf629
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 3
sub edi, eax
mov dword [esp + 0x4c], edi
and ecx, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 4], edi
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 0x44], eax
mov eax, ebx
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xac]
add eax, 8
mov dword [esp + 0xac], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4cfd59
dec eax
mov dword [esp + 0xbc], eax
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x84], eax
xor edi, edi
lea ebp, [esp + 0xe0]
jmp 0x4cf6e1
mov ebx, esi
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x14]
add ecx, esi
cmp ecx, ebx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x40]
add eax, ecx
sub eax, ebx
prefetcht0 byte [eax]
prefetcht0 byte [eax + 0x40]
mov dword [ebp - 8], esi
mov eax, dword [esp + 0x2c]
add ecx, eax
mov dword [esp + 0x8c], ecx
mov dword [ebp - 4], eax
mov dword [ebp], ebx
inc edi
add ebp, 0xc
cmp dword [esp + 0xb8], edi
mov esi, dword [esp + 0x18]
je 0x4cfd49
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x98], ebx
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
mov eax, dword [ebp + edi*8 + 4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esi + edx*8 + 4]
mov dword [esp + 0x94], ebx
movzx ebx, byte [eax + ecx*8 + 2]
mov dword [esp + 0x3c], ebx
movzx ebx, byte [ebp + edi*8 + 2]
mov dword [esp + 8], ebx
movzx ebx, byte [esi + edx*8 + 2]
mov dword [esp + 0x88], ebx
movzx ebx, word [eax + ecx*8]
mov dword [esp + 0xc8], ebx
movzx ebx, word [ebp + edi*8]
mov dword [esp + 0xcc], ebx
movzx ebx, word [esi + edx*8]
mov dword [esp + 0x9c], ebx
movzx eax, byte [eax + ecx*8 + 3]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xc0], eax
movzx ebx, byte [ebp + edi*8 + 3]
movzx eax, byte [esi + edx*8 + 3]
cmp ecx, 2
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc4], ebx
jb 0x4cf837
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
mov edi, ecx
mov ecx, edx
shl esi, cl
mov ecx, edi
add edx, edi
mov dword [esp + 0x10], edx
cmp dword [esp + 0x90], 0
je 0x4cf86a
cmp cl, 0x19
jb 0x4cf86a
mov edx, ecx
mov cl, 5
sub cl, dl
shr esi, cl
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffffb
mov edx, ecx
cmp ecx, 0x21
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0x24]
jae 0x4cfd34
cmp ebp, dword [esp + 0x30]
jae 0x4cf902
mov eax, ebp
mov ecx, dword [esp + 0x18]
sub eax, ecx
je 0x4cfc3e
mov ecx, edx
shr ecx, 3
mov ebx, ebp
sub ebx, ecx
cmp ebx, dword [esp + 0x18]
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
mov eax, edx
sub eax, ecx
mov edx, eax
mov dword [esp + 0x48], eax
jmp 0x4cf918
xor eax, eax
mov esi, dword [esp + 0x14]
test esi, esi
sete al
test ecx, ecx
jne 0x4cfc5b
xor ecx, ecx
test esi, esi
setne cl
mov esi, dword [esp + eax*4 + 0x70]
mov eax, dword [esp + ecx*4 + 0x70]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0x24]
jmp 0x4cf95a
neg cl
shr esi, cl
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], eax
add esi, dword [esp + 0x94]
cmp eax, 0x21
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0x24]
jae 0x4cfce3
cmp ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp]
jae 0x4cf8d5
mov dword [esp], eax
mov eax, ebp
sub eax, ebx
je 0x4cf8f9
mov edx, dword [esp + 0x10]
mov ecx, edx
shr ecx, 3
mov ebx, esi
mov esi, ebp
sub esi, ecx
cmp esi, dword [esp + 0x18]
mov esi, ebx
mov ebx, dword [esp + 0x18]
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
sub edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
jmp 0x4cf8ef
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and ecx, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], ecx
mov eax, dword [ebp]
mov dword [esp], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
jmp 0x4cf94f
mov ecx, edx
mov eax, edx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and ecx, 7
mov edx, ecx
mov dword [esp + 0x48], ecx
mov ebx, dword [ebp]
mov dword [esp + 0x44], ebx
mov dword [esp], ebx
shl esi, 5
add esi, dword [esp + 0x94]
mov ecx, edx
shl ebx, cl
shr ebx, 0x1b
add ebx, esi
add ecx, 5
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x84]
mov esi, ebx
mov ebx, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x84], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], esi
mov eax, dword [esp + 8]
test eax, eax
je 0x4cf998
mov eax, dword [esp]
mov edx, dword [esp + 0x10]
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 8]
neg cl
shr eax, cl
add edx, dword [esp + 8]
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
add dword [esp + 0x2c], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x3c]
add eax, ecx
cmp eax, 0x14
jb 0x4cf9e7
cmp dword [esp + 0x10], 0x21
jae 0x4cfc96
cmp ebp, dword [esp + 0x30]
jae 0x4cf9f3
mov eax, ebp
sub eax, ebx
je 0x4cf9e7
mov edx, dword [esp + 0x10]
mov ecx, edx
shr ecx, 3
mov ebx, esi
mov esi, ebp
sub esi, ecx
cmp esi, dword [esp + 0x18]
mov esi, ebx
mov ebx, dword [esp + 0x18]
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
sub edx, ecx
mov ecx, dword [esp + 0x3c]
jmp 0x4cfa05
mov eax, dword [esp]
test ecx, ecx
mov dword [esp], eax
jne 0x4cfa1b
jmp 0x4cfa4d
mov edx, dword [esp + 0x10]
mov eax, edx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and edx, 7
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
mov eax, dword [ebp]
mov dword [esp + 0x44], eax
test ecx, ecx
mov dword [esp], eax
je 0x4cfa4d
mov edx, dword [esp + 0x10]
mov dword [esp + 4], ebp
mov ebp, esi
mov esi, edi
mov edi, ebx
mov ebx, ecx
mov ecx, edx
shl eax, cl
mov ecx, ebx
neg cl
shr eax, cl
add edx, ebx
mov ebx, edi
mov edi, esi
mov esi, ebp
mov ebp, dword [esp + 4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
add dword [esp + 0x14], eax
cmp dword [esp + 0x10], 0x21
jae 0x4cfc46
cmp ebp, dword [esp + 0x30]
jae 0x4cfa95
mov eax, ebp
sub eax, ebx
je 0x4cfc1f
mov edx, dword [esp + 0x10]
mov ecx, edx
shr ecx, 3
mov ebx, esi
mov esi, ebp
sub esi, ecx
cmp esi, dword [esp + 0x18]
mov esi, ebx
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
sub edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
jmp 0x4cfaaf
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and ecx, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], ecx
mov eax, dword [ebp]
mov dword [esp + 0x44], eax
cmp dword [esp + 0xbc], edi
je 0x4cf686
mov dword [esp + 8], esi
mov edi, eax
mov esi, dword [esp + 0xc0]
mov edx, dword [esp + 0x10]
add edx, esi
mov ecx, edx
neg cl
shr eax, cl
and eax, dword [esi*4 + 0x851948]
mov esi, dword [esp + 0xc4]
add edx, esi
mov ecx, edx
neg cl
mov ebx, edi
shr edi, cl
add eax, dword [esp + 0xc8]
and edi, dword [esi*4 + 0x851948]
add edi, dword [esp + 0xcc]
mov dword [esp + 0xa8], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0x68], edi
mov ecx, edx
cmp edx, 0x21
jae 0x4cfcb6
cmp ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
jae 0x4cfb5d
mov eax, ebp
sub eax, dword [esp + 0x18]
je 0x4cfc27
mov edx, ecx
shr ecx, 3
mov esi, ebp
sub esi, ecx
cmp esi, dword [esp + 0x18]
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
sub edx, ecx
jmp 0x4cfb6d
mov edx, ecx
mov eax, ecx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and edx, 7
mov ecx, edx
mov dword [esp + 0x48], edx
mov eax, dword [ebp]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0xd0]
mov edx, ecx
add edx, esi
mov ecx, edx
neg cl
mov dword [esp], eax
shr eax, cl
and eax, dword [esi*4 + 0x851948]
add eax, dword [esp + 0x9c]
mov dword [esp + 0x48], edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x10], edx
cmp edx, 0x21
mov ebx, dword [esp + 8]
jae 0x4cfcce
cmp ebp, dword [esp + 0x30]
jae 0x4cfbf5
mov eax, ebp
mov ecx, dword [esp + 0x18]
sub eax, ecx
je 0x4cfc2e
mov edx, dword [esp + 0x10]
mov ecx, edx
shr ecx, 3
mov esi, ebp
sub esi, ecx
cmp esi, dword [esp + 0x18]
cmovb ecx, eax
sub ebp, ecx
mov dword [esp + 0x4c], ebp
shl ecx, 3
sub edx, ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], edx
jmp 0x4cfc0f
mov ecx, dword [esp + 0x10]
mov eax, ecx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x4c], ebp
and ecx, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 4], ebp
mov eax, dword [ebp]
mov dword [esp + 0x44], eax
jmp 0x4cf68c
mov eax, dword [esp]
jmp 0x4cfab6
mov eax, ebx
jmp 0x4cfb7a
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x28]
mov eax, dword [esp]
jmp 0x4cf690
mov ebx, dword [esp]
jmp 0x4cf91f
mov dword [esp + 0x4c], 0x8519c8
mov ebp, 0x8519c8
mov eax, dword [esp]
jmp 0x4cfab6
mov esi, dword [esp]
mov ecx, dword [esp + 0x10]
shl esi, cl
shr esi, 0x1f
inc ecx
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x94]
add edx, esi
add edx, eax
cmp edx, 3
mov dword [esp + 0x10], ecx
jne 0x4cfcf9
mov eax, dword [esp + 0x98]
dec eax
cmp eax, 1
mov esi, 0
sbb esi, esi
or esi, eax
jmp 0x4cfd10
mov dword [esp + 0x4c], 0x8519c8
mov ebp, 0x8519c8
mov eax, dword [esp]
test ecx, ecx
mov dword [esp], eax
jne 0x4cfa1b
jmp 0x4cfa4d
mov dword [esp + 0x4c], 0x8519c8
mov ebp, 0x8519c8
mov edi, dword [esp + 0x24]
mov eax, ebx
jmp 0x4cfb7a
mov dword [esp + 0x4c], 0x8519c8
mov dword [esp + 4], 0x8519c8
jmp 0x4cfc32
mov dword [esp + 0x4c], 0x8519c8
mov ebp, 0x8519c8
mov ebx, dword [esp + 0x18]
jmp 0x4cf8f9
mov eax, edx
mov eax, dword [esp + eax*4 + 0x70]
cmp eax, 1
mov esi, 0
sbb esi, esi
or esi, eax
cmp edx, 1
je 0x4cfd1b
mov eax, dword [esp + 0x84]
mov dword [esp + 0x78], eax
mov dword [esp + 0xc], 0xffffffec
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0x24]
jmp 0x4cf953
mov dword [esp + 0x4c], 0x8519c8
mov ebp, 0x8519c8
mov ebx, dword [esp]
jmp 0x4cf91f
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x150]
jmp 0x4cfd5b
xor edi, edi
mov eax, dword [esp + 0x20]
cmp edi, eax
mov ecx, dword [esp + 4]
jge 0x4d0f98
dec eax
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x34]
lea eax, [eax - 0x20]
mov dword [esp + 0xa0], eax
mov ebp, dword [esp + 0x14c]
lea eax, [ebp + 0x7614]
mov dword [esp + 0x84], eax
lea eax, [ebp + 0x17614]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x10]
mov dword [esp + 0x94], ecx
add eax, 0x18
mov dword [esp + 0x9c], eax
mov dword [esp], ebx
jmp 0x4cfe4e
push ebx
push eax
push edi
call fcn.004f8d88
add esp, 0xc
mov dword [esp + 0xc], 0xffffffec
mov edx, ebp
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 4]
cmp ebp, 0xffffff88
mov edi, dword [esp + 0x10]
ja 0x4d0ff5
mov esi, dword [esp + 0x8c]
add esi, ebx
mov ecx, dword [esp + 0x30]
cmp esi, ecx
mov eax, edx
mov edx, esi
cmovb eax, dword [esp + 0x40]
add eax, esi
sub eax, ecx
prefetcht0 byte [eax]
prefetcht0 byte [eax + 0x40]
mov eax, edi
and eax, 7
lea eax, [eax + eax*2]
mov dword [esp + eax*4 + 0xd8], ebx
mov ebx, dword [esp + 0x150]
mov esi, dword [esp + 0x18]
mov dword [esp + eax*4 + 0xdc], esi
mov dword [esp + eax*4 + 0xe0], ecx
add dword [esp], ebp
add edx, esi
mov dword [esp + 0x8c], edx
inc edi
cmp edi, dword [esp + 0x20]
je 0x4d0ffb
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov ebp, dword [esi + edx*8 + 4]
movzx ebx, byte [esi + edx*8 + 2]
mov dword [esp + 4], ebx
movzx ebx, word [esi + edx*8]
mov dword [esp + 0x3c], ebx
movzx edx, byte [esi + edx*8 + 3]
mov dword [esp + 0xa8], edx
mov edx, dword [eax + ecx*8 + 4]
mov dword [esp + 0x18], edx
movzx ebx, byte [eax + ecx*8 + 2]
movzx edx, word [eax + ecx*8]
mov dword [esp + 0x28], edx
movzx eax, byte [eax + ecx*8 + 3]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x2c], eax
movzx eax, byte [ecx + edx*8 + 2]
movzx esi, word [ecx + edx*8]
movzx ecx, byte [ecx + edx*8 + 3]
mov dword [esp + 0x24], ecx
cmp eax, 2
mov dword [esp + 0x10], edi
mov dword [esp + 8], ebp
mov dword [esp + 0x14], esi
jb 0x4cff5a
cmp dword [esp + 0x90], 0
je 0x4cff84
cmp al, 0x19
jb 0x4cff84
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x30], ebp
mov ecx, edx
shl ebp, cl
mov cl, 5
sub cl, al
shr ebp, cl
lea ecx, [eax + edx]
add ecx, 0xfffffffb
cmp ecx, 0x21
mov esi, dword [esp + 0x18]
jae 0x4d0b09
mov edi, dword [esp + 0x4c]
cmp edi, dword [esp + 0x54]
jae 0x4d0014
mov eax, dword [esp + 0x50]
mov edx, edi
sub edx, eax
je 0x4d0110
mov esi, ecx
shr esi, 3
mov dword [esp + 0x30], eax
mov eax, edi
sub eax, esi
cmp eax, dword [esp + 0x30]
cmovb esi, edx
sub edi, esi
mov dword [esp + 0x4c], edi
shl esi, 3
sub ecx, esi
mov esi, dword [esp + 0x18]
jmp 0x4d0022
xor ecx, ecx
test ebp, ebp
sete cl
test eax, eax
jne 0x4d0119
xor eax, eax
test ebp, ebp
setne al
mov edx, dword [esp + ecx*4 + 0x70]
lea ecx, [esp + 0x70]
lea ecx, [ecx + eax*4]
mov esi, dword [esp + 0x18]
jmp 0x4d0051
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ecx, edx
shl ebp, cl
mov ecx, eax
neg cl
shr ebp, cl
add edx, eax
mov dword [esp + 0x48], edx
add ebp, dword [esp + 0x2c]
mov dword [esp + 0x30], ebp
cmp edx, 0x21
mov esi, dword [esp + 0x18]
jae 0x4d0aca
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x54]
jae 0x4cfff6
mov esi, dword [esp + 0x50]
mov ecx, eax
sub ecx, esi
je 0x4cffec
mov edi, edx
shr edi, 3
mov ebp, eax
sub ebp, edi
cmp ebp, esi
cmovb edi, ecx
sub eax, edi
mov dword [esp + 0x4c], eax
shl edi, 3
sub edx, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x48], edx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
jmp 0x4d0045
mov ecx, edx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x4c], eax
and edx, 7
mov dword [esp + 0x48], edx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x30]
jmp 0x4d0045
mov edx, ecx
shr edx, 3
sub edi, edx
mov dword [esp + 0x4c], edi
and ecx, 7
mov dword [esp + 0x48], ecx
mov edx, dword [edi]
mov dword [esp + 0x44], edx
shl ebp, 5
add ebp, dword [esp + 0x2c]
shl edx, cl
shr edx, 0x1b
add edx, ebp
add ecx, 5
mov dword [esp + 0x48], ecx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x78], eax
lea ecx, [esp + 0x70]
mov eax, dword [ecx]
mov dword [esp + 0x74], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x70], edx
test ebx, ebx
je 0x4d0081
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ecx, edx
shl eax, cl
mov ecx, ebx
neg cl
shr eax, cl
add edx, ebx
mov dword [esp + 0x48], edx
add esi, eax
mov dword [esp + 0x18], esi
add ebx, dword [esp + 4]
cmp ebx, 0x14
mov ebx, dword [esp]
jb 0x4d00e8
mov eax, dword [esp + 0x48]
cmp eax, 0x21
jae 0x4d015e
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x54]
jae 0x4d00d0
mov esi, dword [esp + 0x50]
mov edx, ecx
sub edx, esi
je 0x4d00e8
mov edi, eax
shr edi, 3
mov ebx, ecx
sub ebx, edi
cmp ebx, esi
mov ebx, dword [esp]
cmovb edi, edx
sub ecx, edi
mov dword [esp + 0x4c], ecx
shl edi, 3
sub eax, edi
mov edi, dword [esp + 0x10]
jmp 0x4d00de
mov edx, eax
shr edx, 3
sub ecx, edx
mov dword [esp + 0x4c], ecx
and eax, 7
mov dword [esp + 0x48], eax
mov eax, dword [ecx]
mov dword [esp + 0x44], eax
mov esi, ebx
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x4d0170
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ecx, edx
shl eax, cl
mov ecx, ebx
neg cl
shr eax, cl
add edx, ebx
mov dword [esp + 0x48], edx
add dword [esp + 8], eax
jmp 0x4d0174
mov edx, dword [esp + 0x30]
jmp 0x4d002c
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
add edx, ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
shl eax, cl
shr eax, 0x1f
inc ecx
mov dword [esp + 0x48], ecx
add eax, edx
cmp eax, 3
jne 0x4d0adb
mov eax, dword [esp + 0x70]
dec eax
cmp eax, 1
mov edx, 0
sbb edx, edx
or edx, eax
mov dword [esp + 0xc], 0xffffffec
jmp 0x4d0041
mov dword [esp + 0x4c], 0x8519c8
mov esi, ebx
mov ebx, dword [esp + 4]
test ebx, ebx
jne 0x4d00f2
mov edx, dword [esp + 0x48]
cmp edx, 0x21
mov ebx, esi
jae 0x4d096c
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x54]
jae 0x4d01b5
mov esi, dword [esp + 0x50]
mov ecx, eax
sub ecx, esi
je 0x4d01cd
mov edi, edx
shr edi, 3
mov ebx, eax
sub ebx, edi
cmp ebx, esi
mov ebx, dword [esp]
cmovb edi, ecx
sub eax, edi
mov dword [esp + 0x4c], eax
shl edi, 3
sub edx, edi
mov edi, dword [esp + 0x10]
jmp 0x4d01c3
mov ecx, edx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x4c], eax
and edx, 7
mov dword [esp + 0x48], edx
mov ecx, dword [eax]
mov dword [esp + 0x44], ecx
cmp edi, dword [esp + 0xa4]
je 0x4d02e9
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0xa8]
add edx, edi
mov ecx, edx
neg cl
mov ebx, esi
shr ebx, cl
and ebx, dword [edi*4 + 0x851948]
mov ebp, dword [esp + 0x88]
add edx, ebp
mov ecx, edx
neg cl
mov edi, esi
shr edi, cl
add ebx, dword [esp + 0x3c]
and edi, dword [ebp*4 + 0x851948]
mov dword [esp + 0x58], ebx
add edi, dword [esp + 0x28]
mov dword [esp + 0x68], edi
cmp edx, 0x21
jae 0x4d0a19
cmp eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x14]
jae 0x4d025a
mov edi, dword [esp + 0x50]
mov ecx, eax
sub ecx, edi
je 0x4d0272
mov esi, edx
shr esi, 3
mov ebx, eax
sub ebx, esi
cmp ebx, edi
mov ebx, dword [esp + 0x14]
cmovb esi, ecx
sub eax, esi
mov dword [esp + 0x4c], eax
shl esi, 3
sub edx, esi
jmp 0x4d0268
mov ecx, edx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x4c], eax
and edx, 7
mov dword [esp + 0x48], edx
mov esi, dword [eax]
mov dword [esp + 0x44], esi
mov edi, dword [esp + 0x24]
add edx, edi
mov ecx, edx
neg cl
shr esi, cl
and esi, dword [edi*4 + 0x851948]
add esi, ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x60], esi
cmp edx, 0x21
mov edi, dword [esp + 0x10]
mov ebx, dword [esp]
jae 0x4d0a33
cmp eax, dword [esp + 0x54]
jae 0x4d02d1
mov esi, dword [esp + 0x50]
mov ecx, eax
sub ecx, esi
je 0x4d02e9
mov edi, edx
shr edi, 3
mov ebx, eax
sub ebx, edi
cmp ebx, esi
mov ebx, dword [esp]
cmovb edi, ecx
sub eax, edi
mov dword [esp + 0x4c], eax
shl edi, 3
sub edx, edi
mov edi, dword [esp + 0x10]
jmp 0x4d02df
mov ecx, edx
shr ecx, 3
sub eax, ecx
mov dword [esp + 0x4c], eax
and edx, 7
mov dword [esp + 0x48], edx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14c]
cmp dword [ecx + 0x7610], 2
jne 0x4d0412
mov ebp, dword [esp + 0x38]
and edi, 7
lea eax, [edi + edi*2]
lea edi, [esp + eax*4]
add edi, 0xd8
mov eax, dword [esp + eax*4 + 0xd8]
lea ebx, [eax + ebp]
mov edx, dword [ecx + 0x760c]
cmp ebx, edx
jbe 0x4d04fd
mov esi, edx
sub esi, ebp
mov dword [esp + 0x2c], edi
je 0x4d066c
mov eax, dword [esp + 0x34]
mov ebx, dword [esp]
sub eax, ebx
cmp esi, eax
ja 0x4d1d21
mov eax, ebx
sub eax, ebp
lea ecx, [ebx + esi]
mov dword [esp + 4], ecx
cmp esi, 8
setge cl
cmp eax, 0xfffffff9
setl ch
test ch, cl
jne 0x4d0674
test esi, esi
mov ecx, dword [esp + 4]
jle 0x4d0766
mov edi, dword [esp]
add edx, edi
sub edx, ebp
lea ecx, [edi + 1]
cmp edx, ecx
cmovbe edx, ecx
sub edx, edi
cmp edx, 8
jb 0x4d06bb
cmp eax, 0x20
jb 0x4d06bb
xor eax, eax
cmp edx, 0x20
jb 0x4d03d5
mov eax, edx
and eax, 0xffffffe0
xor ecx, ecx
movups xmm0, xmmword [ebp + ecx]
movups xmm1, xmmword [ebp + ecx + 0x10]
movups xmmword [edi + ecx], xmm0
movups xmmword [edi + ecx + 0x10], xmm1
add ecx, 0x20
cmp eax, ecx
jne 0x4d03a3
cmp edx, eax
mov ecx, dword [esp + 4]
je 0x4d0766
test dl, 0x18
je 0x4d0927
mov edi, dword [esp]
mov dword [esp], edi
mov dword [esp + 0x14], esi
mov esi, edx
and esi, 0xfffffff8
add edi, esi
mov ecx, esi
lea ebx, [esi + ebp]
movsd xmm0, qword [ebp + eax]
mov esi, dword [esp]
movsd qword [esi + eax], xmm0
add eax, 8
cmp ecx, eax
jne 0x4d03e8
cmp edx, ecx
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x14]
jne 0x4d06c1
jmp 0x4d0766
and edi, 7
lea eax, [edi + edi*2]
mov esi, dword [esp + eax*4 + 0xd8]
mov ecx, dword [esp + eax*4 + 0xdc]
mov dword [esp + 0x14], ecx
mov eax, dword [esp + eax*4 + 0xe0]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x38]
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x80]
ja 0x4d0935
mov edx, dword [esp + 0x14]
lea ebp, [edx + esi]
lea edx, [ebx + ebp]
cmp edx, dword [esp + 0xa0]
ja 0x4d0935
mov edx, dword [esp + 0x34]
sub edx, ebx
lea edi, [ebp + 0x20]
cmp edx, edi
jb 0x4d0935
lea edi, [ebx + esi]
movups xmm0, xmmword [ecx]
movups xmmword [ebx], xmm0
cmp esi, 0x11
jae 0x4d0a40
mov esi, edi
mov ecx, dword [esp + 0x2c]
sub esi, ecx
mov dword [esp + 0x38], eax
mov ebx, edi
mov edx, dword [esp + 0x1c]
sub ebx, edx
cmp ebx, ecx
mov dword [esp + 4], ebp
jae 0x4d05d1
mov dword [esp + 0x24], ebx
mov eax, edi
sub eax, dword [esp + 0x7c]
cmp eax, ecx
mov ebx, dword [esp + 0x14]
jb 0x4d0fe6
sub esi, edx
mov ebp, dword [esp + 0x40]
lea eax, [esi + ebp]
lea ecx, [eax + ebx]
cmp ecx, ebp
mov ebp, edx
jbe 0x4cfdc2
mov ecx, esi
neg ecx
push ecx
push eax
push edi
call fcn.004f8d88
add esp, 0xc
sub edi, esi
mov eax, esi
add eax, ebx
mov esi, ebp
mov dword [esp + 0xc], 0xffffffec
mov edx, ebp
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
jmp 0x4d05d5
lea edx, [ebx - 0x20]
mov dword [esp + 4], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x14], edx
mov ecx, dword [edi + 8]
mov dword [esp + 0x2c], ecx
cmp ebx, dword [esp + 0x80]
mov esi, dword [esp]
ja 0x4d098b
mov ecx, dword [esp + 0x14]
lea edi, [ecx + eax]
lea ecx, [esi + edi]
cmp ecx, dword [esp + 4]
ja 0x4d098b
mov ecx, dword [esp + 0x34]
sub ecx, esi
lea edx, [edi + 0x20]
cmp ecx, edx
jb 0x4d098b
mov dword [esp + 4], edi
lea edi, [esi + eax]
movups xmm0, xmmword [ebp]
movups xmmword [esi], xmm0
cmp eax, 0x11
jae 0x4d0b1a
mov esi, edi
mov ecx, dword [esp + 0x2c]
sub esi, ecx
mov dword [esp + 0x38], ebx
mov ebx, edi
mov edx, dword [esp + 0x1c]
sub ebx, edx
cmp ebx, ecx
jae 0x4d0621
mov dword [esp + 0x24], ebx
mov eax, edi
sub eax, dword [esp + 0x7c]
cmp eax, ecx
mov ebx, dword [esp + 0x14]
jb 0x4d0fe6
sub esi, edx
mov ebp, dword [esp + 0x40]
lea eax, [esi + ebp]
lea ecx, [eax + ebx]
cmp ecx, ebp
mov ebp, edx
jbe 0x4cfdc2
mov ecx, esi
neg ecx
push ecx
push eax
push edi
call fcn.004f8d88
add esp, 0xc
sub edi, esi
mov eax, esi
add eax, ebx
mov esi, ebp
mov dword [esp + 0xc], 0xffffffec
mov edx, ebp
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
jmp 0x4d0625
mov eax, dword [esp + 0x14]
cmp ecx, 0x10
jb 0x4d0a84
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
cmp eax, 0x11
jl 0x4cfdd7
add eax, edi
mov ecx, 0x10
nop word cs:[eax + eax]
movups xmm0, xmmword [esi + ecx]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x10]
movups xmmword [edi + ecx + 0x10], xmm0
lea edx, [edi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, eax
jb 0x4d0600
jmp 0x4d0663
mov eax, dword [esp + 0x14]
cmp ecx, 0x10
jb 0x4d0bb4
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
cmp eax, 0x11
jl 0x4cfdd7
add eax, edi
mov ecx, 0x10
movups xmm0, xmmword [esi + ecx]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x10]
movups xmmword [edi + ecx + 0x10], xmm0
lea edx, [edi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, eax
jb 0x4d0644
mov edx, dword [esp + 0x1c]
jmp 0x4cfdd7
mov ecx, dword [esp]
jmp 0x4d0770
cmp eax, 0xffffffef
ja 0x4d06d5
mov ecx, dword [esp + 4]
lea edx, [ecx - 0x20]
mov eax, edx
sub eax, ebx
jb 0x4d06d1
movups xmm0, xmmword [ebp]
movups xmmword [ebx], xmm0
cmp eax, 0x11
jl 0x4d06b7
mov ecx, 0x10
movups xmm0, xmmword [ebp + ecx]
movups xmmword [ebx + ecx], xmm0
movups xmm0, xmmword [ebp + ecx + 0x10]
movups xmmword [ebx + ecx + 0x10], xmm0
lea edi, [ebx + ecx]
add edi, 0x20
add ecx, 0x20
cmp edi, edx
jb 0x4d0697
add ebp, eax
jmp 0x4d06d7
mov ebx, ebp
mov ecx, dword [esp + 4]
movzx eax, byte [ebx]
inc ebx
mov byte [edi], al
inc edi
cmp edi, ecx
jb 0x4d06c1
jmp 0x4d0766
mov edx, ebx
jmp 0x4d06db
mov edx, ebx
mov ecx, dword [esp + 4]
add ebx, esi
sub ebx, edx
cmp ebx, 8
mov dword [esp], ebx
jb 0x4d0754
mov eax, edx
sub eax, ebp
cmp eax, 0x20
jb 0x4d0754
xor eax, eax
cmp ebx, 0x20
jb 0x4d072c
mov eax, ebx
and eax, 0xffffffe0
xor ecx, ecx
movups xmm0, xmmword [ebp + ecx]
movups xmm1, xmmword [ebp + ecx + 0x10]
movups xmmword [edx + ecx], xmm0
movups xmmword [edx + ecx + 0x10], xmm1
add ecx, 0x20
cmp eax, ecx
jne 0x4d06fe
cmp ebx, eax
mov ecx, dword [esp + 4]
je 0x4d0766
mov ebx, dword [esp]
test bl, 0x18
je 0x4d091c
mov ecx, ebx
and ecx, 0xfffffff8
lea edi, [edx + ecx]
lea ebx, [ecx + ebp]
movsd xmm0, qword [ebp + eax]
movsd qword [edx + eax], xmm0
add eax, 8
cmp ecx, eax
jne 0x4d0737
cmp dword [esp], ecx
mov ecx, dword [esp + 4]
jne 0x4d0758
jmp 0x4d0766
mov edi, edx
mov ebx, ebp
add edx, dword [esp]
movzx eax, byte [ebx]
inc ebx
mov byte [edi], al
inc edi
cmp edi, edx
jne 0x4d075b
mov edi, dword [esp + 0x2c]
mov eax, dword [edi]
sub eax, esi
mov dword [edi], eax
mov esi, dword [esp + 0x84]
mov dword [esp + 0x38], esi
mov ebp, dword [esp + 0x14c]
mov dword [ebp + 0x7610], 0
mov edx, dword [edi + 4]
mov dword [esp], edx
mov edx, dword [edi + 8]
mov dword [esp + 0x14], edx
cmp eax, 0x10000
mov dword [esp + 4], ecx
jg 0x4d09d5
mov edx, dword [esp]
lea ebx, [edx + eax]
lea edx, [ecx + ebx]
cmp edx, dword [esp + 0xa0]
ja 0x4d09d5
mov edi, dword [esp + 0x34]
sub edi, ecx
lea edx, [ebx + 0x20]
cmp edi, edx
jb 0x4d09d5
mov dword [esp + 0x24], ebx
lea edi, [ecx + eax]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp eax, 0x11
jae 0x4d0b5e
add eax, esi
mov ebx, edi
mov ecx, dword [esp + 0x14]
sub ebx, ecx
mov dword [esp + 0x38], eax
mov esi, edi
mov edx, dword [esp + 0x1c]
sub esi, edx
cmp esi, ecx
jae 0x4d0851
mov dword [esp + 0x3c], esi
mov eax, edi
sub eax, dword [esp + 0x7c]
cmp eax, ecx
jb 0x4d0fe6
sub ebx, edx
mov esi, dword [esp + 0x40]
lea eax, [esi + ebx]
mov ebp, dword [esp]
lea ecx, [eax + ebp]
cmp ecx, esi
mov esi, edx
jbe 0x4d0894
mov ecx, ebx
neg ecx
push ecx
push eax
push edi
call fcn.004f8d88
add esp, 0xc
sub edi, ebx
mov eax, ebx
add eax, ebp
mov ebx, esi
mov dword [esp + 0xc], 0xffffffec
mov edx, esi
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x3c]
jmp 0x4d0854
mov eax, dword [esp]
cmp ecx, 0x10
jb 0x4d0cdd
movups xmm0, xmmword [ebx]
movups xmmword [edi], xmm0
cmp eax, 0x11
jl 0x4d08a9
add eax, edi
mov ecx, 0x10
movups xmm0, xmmword [ebx + ecx]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [ebx + ecx + 0x10]
movups xmmword [edi + ecx + 0x10], xmm0
lea edx, [edi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, eax
jb 0x4d086f
mov edx, dword [esp + 0x1c]
jmp 0x4d08a9
push ebp
push eax
push edi
call fcn.004f8d88
add esp, 0xc
mov dword [esp + 0xc], 0xffffffec
mov edx, esi
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x24]
cmp ebp, 0xffffff88
mov ebx, dword [esp + 0x150]
mov edi, dword [esp + 0x10]
ja 0x4d0ff5
mov esi, dword [esp + 0x8c]
add esi, eax
mov ecx, dword [esp + 0x30]
cmp esi, ecx
mov dword [esp + 8], eax
mov eax, edx
mov edx, esi
cmovb eax, dword [esp + 0x40]
add eax, esi
sub eax, ecx
prefetcht0 byte [eax]
prefetcht0 byte [eax + 0x40]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 8]
mov dword [eax], esi
mov esi, dword [esp + 0x18]
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 4]
add ecx, ebp
mov eax, dword [esp + 0x98]
mov dword [esp + 0x80], eax
mov dword [esp], ecx
jmp 0x4cfe3a
add ebp, eax
add eax, edx
mov edi, eax
jmp 0x4d0756
add ebp, eax
mov edi, dword [esp]
add edi, eax
mov ebx, ebp
jmp 0x4d06c1
mov ecx, ebx
mov edx, dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x80]
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x8c]
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x40]
push dword [esp + 0x2c]
push esi
call fcn.004d4590
mov edx, edi
add esp, 0x20
jmp 0x4d09c4
mov dword [esp + 0x4c], 0x8519c8
mov eax, 0x8519c8
cmp edi, dword [esp + 0xa4]
jne 0x4d01da
jmp 0x4d02e9
mov ecx, esi
mov edx, dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x80]
mov esi, dword [esp + 0x24]
push esi
push dword [esp + 0x8c]
lea ebx, [esp + 0x48]
push ebx
push dword [esp + 0x40]
push dword [esp + 0x2c]
push eax
push dword [esp + 0x24]
call fcn.004d4cb0
mov edx, esi
add esp, 0x24
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0xffffffec
jmp 0x4cfdd7
mov edx, dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x80]
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0xa4]
lea esi, [esp + 0x48]
push esi
push dword [esp + 0x28]
push dword [esp + 0x18]
push eax
call fcn.004d4590
mov edx, edi
add esp, 0x20
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], 0xffffffec
jmp 0x4d08a9
mov dword [esp + 0x4c], 0x8519c8
mov eax, 0x8519c8
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
jmp 0x4d0276
mov dword [esp + 0x4c], 0x8519c8
jmp 0x4d02e9
add esi, 0xfffffff0
movups xmm0, xmmword [ecx + 0x10]
mov edx, dword [esp]
movups xmmword [edx + 0x10], xmm0
cmp esi, 0x11
jl 0x4d0483
mov edx, dword [esp]
add edx, 0x20
xor esi, esi
movups xmm0, xmmword [ecx + esi + 0x20]
movups xmmword [edx + esi], xmm0
movups xmm0, xmmword [ecx + esi + 0x30]
movups xmmword [edx + esi + 0x10], xmm0
lea ebx, [edx + esi]
add ebx, 0x20
add esi, 0x20
cmp ebx, edi
jb 0x4d0a5f
jmp 0x4d0483
mov dword [esp + 0x24], ebx
cmp ecx, 7
ja 0x4d0bfa
movzx ecx, byte [esi]
mov byte [edi], cl
movzx ecx, byte [esi + 1]
mov byte [edi + 1], cl
movzx ecx, byte [esi + 2]
mov byte [edi + 2], cl
movzx ecx, byte [esi + 3]
mov byte [edi + 3], cl
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx*4 + 0x8519cc]
mov edx, dword [esi + ecx]
add esi, ecx
mov dword [edi + 4], edx
sub esi, dword [ebx*4 + 0x8519ec]
jmp 0x4d0c02
mov dword [esp + 0x4c], 0x8519c8
mov edx, dword [esp + 0x30]
jmp 0x4d0045
mov ecx, dword [esp + eax*4 + 0x70]
cmp ecx, 1
mov edx, 0
sbb edx, edx
or edx, ecx
lea ecx, [esp + 0x70]
cmp eax, 1
mov dword [esp + 0xc], 0xffffffec
mov edi, dword [esp + 0x10]
jne 0x4d0045
jmp 0x4d0051
mov dword [esp + 0x4c], 0x8519c8
mov edx, dword [esp + 0x30]
jmp 0x4d002c
add eax, 0xfffffff0
movups xmm0, xmmword [ebp + 0x10]
mov ecx, dword [esp]
movups xmmword [ecx + 0x10], xmm0
cmp eax, 0x11
jl 0x4d055e
mov eax, dword [esp]
add eax, 0x20
xor ecx, ecx
movups xmm0, xmmword [ebp + ecx + 0x20]
movups xmmword [eax + ecx], xmm0
movups xmm0, xmmword [ebp + ecx + 0x30]
movups xmmword [eax + ecx + 0x10], xmm0
lea edx, [eax + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, edi
jb 0x4d0b39
jmp 0x4d055e
lea ecx, [eax - 0x10]
movups xmm0, xmmword [ebp + 0x7624]
mov edx, dword [esp + 4]
movups xmmword [edx + 0x10], xmm0
cmp ecx, 0x11
jl 0x4d07e5
mov ecx, dword [esp + 4]
add ecx, 0x20
xor edx, edx
movups xmm0, xmmword [ebp + edx + 0x7634]
movups xmmword [ecx + edx], xmm0
movups xmm0, xmmword [ebp + edx + 0x7644]
movups xmmword [ecx + edx + 0x10], xmm0
lea ebx, [ecx + edx]
add ebx, 0x20
add edx, 0x20
cmp ebx, edi
mov esi, dword [esp + 0x84]
jb 0x4d0b82
jmp 0x4d07e5
mov dword [esp + 0x24], ebx
cmp ecx, 7
ja 0x4d0d23
movzx ecx, byte [esi]
mov byte [edi], cl
movzx ecx, byte [esi + 1]
mov byte [edi + 1], cl
movzx ecx, byte [esi + 2]
mov byte [edi + 2], cl
movzx ecx, byte [esi + 3]
mov byte [edi + 3], cl
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx*4 + 0x8519cc]
mov edx, dword [esi + ecx]
add esi, ecx
mov dword [edi + 4], edx
sub esi, dword [ebx*4 + 0x8519ec]
jmp 0x4d0d2b
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
cmp eax, 9
jb 0x4d0f4c
lea edx, [esi + 8]
lea ecx, [edi + 8]
mov ebp, ecx
sub ebp, edx
lea ebx, [edi + eax]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], ebp
cmp ebp, 0xf
jg 0x4d0e04
mov edi, dword [esp + 0x14]
add edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
cmp ebx, ebp
mov eax, ebp
cmovb eax, ebx
cmova ebp, ebx
add eax, edi
add eax, ebp
sub eax, ebx
mov edi, dword [esp + 0x94]
add edi, ebp
cmp eax, edi
cmovbe eax, edi
mov dword [esp + 0x24], ebp
mov edi, dword [esp + 0x1c]
add edi, ebp
sub eax, edi
add eax, 0xfffffff7
cmp eax, 0x18
jb 0x4d0cc4
cmp dword [esp + 0x28], 0x20
jb 0x4d0cc4
mov edi, eax
shr edi, 3
inc edi
mov dword [esp + 0x14], edi
and edi, 0xfffffffc
lea ecx, [ecx + edi*8]
lea edx, [edx + edi*8]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x9c]
lea eax, [ebx + ebp]
mov ebp, ebx
mov ebx, dword [esp + 0x24]
sub ebx, ebp
add ebx, eax
mov eax, ebx
xor ebp, ebp
movups xmm0, xmmword [esi + ebp*8 + 8]
movups xmm1, xmmword [esi + ebp*8 + 0x18]
movups xmmword [eax + ebp*8 - 0x10], xmm0
movups xmmword [eax + ebp*8], xmm1
add ebp, 4
cmp edi, ebp
jne 0x4d0ca0
cmp dword [esp + 0x14], edi
je 0x4d0f4c
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
add ecx, 8
add edx, 8
cmp ecx, dword [esp + 0x3c]
jb 0x4d0cc4
jmp 0x4d0f4c
mov dword [esp + 0x3c], esi
cmp ecx, 7
ja 0x4d0e3f
movzx ecx, byte [ebx]
mov byte [edi], cl
movzx ecx, byte [ebx + 1]
mov byte [edi + 1], cl
movzx ecx, byte [ebx + 2]
mov byte [edi + 2], cl
movzx ecx, byte [ebx + 3]
mov byte [edi + 3], cl
mov esi, dword [esp + 0x14]
mov ecx, dword [esi*4 + 0x8519cc]
mov edx, dword [ebx + ecx]
add ebx, ecx
mov dword [edi + 4], edx
sub ebx, dword [esi*4 + 0x8519ec]
jmp 0x4d0e47
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
cmp eax, 9
jb 0x4d0f4c
lea edx, [esi + 8]
lea ecx, [edi + 8]
mov ebp, ecx
sub ebp, edx
lea ebx, [edi + eax]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], ebp
cmp ebp, 0xf
jg 0x4d0f1a
mov ebp, dword [esp + 0x1c]
add dword [esp + 0x14], ebp
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
cmp edi, ebx
mov eax, ebx
cmovb eax, edi
cmova ebx, edi
add eax, dword [esp + 0x14]
add eax, ebx
sub eax, edi
mov edi, dword [esp + 0x94]
add edi, ebx
cmp eax, edi
cmovbe eax, edi
mov dword [esp + 0x24], ebx
sub eax, ebx
sub eax, ebp
add eax, 0xfffffff7
cmp eax, 0x18
jb 0x4d0deb
cmp dword [esp + 0x28], 0x20
jb 0x4d0deb
mov edi, eax
shr edi, 3
inc edi
mov dword [esp + 0x14], edi
and edi, 0xfffffffc
lea ecx, [ecx + edi*8]
lea edx, [edx + edi*8]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x9c]
lea eax, [ebx + ebp]
mov ebp, ebx
mov ebx, dword [esp + 0x24]
sub ebx, ebp
add ebx, eax
mov eax, ebx
xor ebp, ebp
movups xmm0, xmmword [esi + ebp*8 + 8]
movups xmm1, xmmword [esi + ebp*8 + 0x18]
movups xmmword [eax + ebp*8 - 0x10], xmm0
movups xmmword [eax + ebp*8], xmm1
add ebp, 4
cmp edi, ebp
jne 0x4d0dc7
cmp dword [esp + 0x14], edi
je 0x4d0f4c
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
add ecx, 8
add edx, 8
cmp ecx, dword [esp + 0x3c]
jb 0x4d0deb
jmp 0x4d0f4c
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x19
jl 0x4d0f4c
add edi, 0x18
xor eax, eax
movups xmm0, xmmword [esi + eax + 0x18]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x28]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, dword [esp + 0x3c]
jb 0x4d0e18
jmp 0x4d0f4c
movsd xmm0, qword [ebx]
movsd qword [edi], xmm0
cmp eax, 9
jb 0x4d0f8b
lea edx, [ebx + 8]
lea ecx, [edi + 8]
mov ebp, ecx
sub ebp, edx
lea esi, [edi + eax]
mov dword [esp + 0x28], esi
mov dword [esp + 0x88], ebp
cmp ebp, 0xf
jg 0x4d0f59
mov esi, dword [esp]
add esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x3c]
cmp ebp, edi
mov eax, edi
cmovb eax, ebp
cmova edi, ebp
add eax, esi
add eax, edi
sub eax, ebp
mov esi, dword [esp + 0x94]
add esi, edi
cmp eax, esi
cmovbe eax, esi
mov esi, dword [esp + 0x1c]
add esi, edi
sub eax, esi
add eax, 0xfffffff7
cmp eax, 0x18
jb 0x4d0f04
cmp dword [esp + 0x88], 0x20
jb 0x4d0f04
mov ebp, edi
mov esi, eax
shr esi, 3
inc esi
mov dword [esp], esi
and esi, 0xfffffffc
lea ecx, [ecx + esi*8]
lea edx, [edx + esi*8]
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 4]
add edi, eax
sub ebp, eax
add ebp, edi
mov eax, ebp
xor edi, edi
movups xmm0, xmmword [ebx + edi*8 + 8]
movups xmm1, xmmword [ebx + edi*8 + 0x18]
movups xmmword [eax + edi*8 - 0x10], xmm0
movups xmmword [eax + edi*8], xmm1
add edi, 4
cmp esi, edi
jne 0x4d0ee1
cmp dword [esp], esi
je 0x4d0f8b
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
add ecx, 8
add edx, 8
cmp ecx, dword [esp + 0x28]
jb 0x4d0f04
jmp 0x4d0f8b
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x19
jl 0x4d0f4c
add edi, 0x18
xor eax, eax
movups xmm0, xmmword [esi + eax + 0x18]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x28]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, dword [esp + 0x3c]
jb 0x4d0f2a
mov dword [esp + 0xc], 0xffffffec
jmp 0x4d0663
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x19
jl 0x4d0f8b
add edi, 0x18
xor eax, eax
movups xmm0, xmmword [ebx + eax + 0x18]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [ebx + eax + 0x28]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, dword [esp + 0x28]
jb 0x4d0f69
mov dword [esp + 0xc], 0xffffffec
jmp 0x4d088e
mov dword [esp], ebx
jmp 0x4d100f
mov dword [esp], 0
lea eax, [ebp + 0x7614]
add ebp, 0x17614
mov edi, ebp
sub edi, eax
mov ecx, dword [esp + 0x34]
mov esi, dword [esp]
sub ecx, esi
mov dword [esp + 0xc], 0xffffffba
cmp edi, ecx
ja 0x4d0fe6
test esi, esi
je 0x4d0fde
push edi
push eax
push esi
call fcn.004f8d88
add esp, 0xc
add esi, edi
mov eax, esi
jmp 0x4d0fe0
xor eax, eax
sub eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
add esp, 0x138
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xc], ebp
jmp 0x4d0fe6
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x20]
cmp ecx, esi
jne 0x4d0fe6
cmp dword [esp + 0x10], 0x20
jne 0x4d0fe6
sub edi, dword [esp + 0xb8]
cmp edi, dword [esp + 0x20]
jge 0x4d1ce3
mov eax, dword [esp + 0x34]
add eax, 0xffffffe0
mov dword [esp + 0x30], eax
mov ebp, dword [esp + 0x14c]
lea eax, [ebp + 0x7614]
mov dword [esp + 0x8c], eax
lea eax, [ebp + 0x17614]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
lea ecx, [eax + 0x10]
mov dword [esp + 0x24], ecx
add eax, 0x18
mov dword [esp + 0x3c], eax
jmp 0x4d1071
inc edi
cmp edi, edx
je 0x4d1cea
mov eax, edi
and eax, 7
lea eax, [eax + eax*2]
lea ecx, [esp + eax*4]
add ecx, 0xd8
cmp dword [ebp + 0x7610], 2
mov dword [esp + 0x10], edi
jne 0x4d118c
mov edx, dword [esp + 0x38]
mov ebx, dword [ecx]
lea esi, [edx + ebx]
mov eax, dword [ebp + 0x760c]
cmp esi, eax
jbe 0x4d1263
mov edi, eax
sub edi, edx
mov esi, dword [esp + 0x8c]
je 0x4d1406
mov ebp, eax
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x34]
mov ebx, dword [esp]
sub eax, ebx
cmp edi, eax
ja 0x4d1d21
mov esi, ebx
sub esi, edx
lea ecx, [ebx + edi]
cmp edi, 8
setge al
cmp esi, 0xfffffff9
setl ah
test ah, al
mov dword [esp + 0x18], edi
jne 0x4d1446
test edi, edi
jle 0x4d1567
mov ebx, dword [esp]
add ebp, ebx
sub ebp, edx
lea eax, [ebx + 1]
cmp ebp, eax
cmovbe ebp, eax
mov eax, ebp
sub eax, ebx
cmp eax, 8
jb 0x4d1559
cmp esi, 0x20
jb 0x4d1555
xor esi, esi
cmp eax, 0x20
mov dword [esp + 4], eax
jb 0x4d1162
mov esi, eax
and esi, 0xffffffe0
xor eax, eax
movups xmm0, xmmword [edx + eax]
movups xmm1, xmmword [edx + eax + 0x10]
movups xmmword [ebx + eax], xmm0
movups xmmword [ebx + eax + 0x10], xmm1
add eax, 0x20
cmp esi, eax
jne 0x4d1130
cmp dword [esp + 4], esi
je 0x4d1567
mov eax, dword [esp + 4]
test al, 0x18
je 0x4d170b
mov ebx, dword [esp]
and eax, 0xfffffff8
mov edi, ebx
add ebx, eax
lea ebp, [edx + eax]
movsd xmm0, qword [edx + esi]
movsd qword [edi + esi], xmm0
add esi, 8
cmp eax, esi
jne 0x4d116c
cmp dword [esp + 4], eax
jne 0x4d155b
jmp 0x4d1567
mov edi, dword [ecx]
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
mov eax, dword [ecx + 8]
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x38]
lea eax, [edi + ebp]
cmp eax, dword [esp + 0x80]
mov ecx, dword [esp]
ja 0x4d1719
mov edx, dword [esp + 8]
lea ebx, [edx + edi]
lea edx, [ecx + ebx]
cmp edx, dword [esp + 0x30]
ja 0x4d1719
mov edx, dword [esp + 0x34]
sub edx, ecx
lea esi, [ebx + 0x20]
cmp edx, esi
jb 0x4d1719
mov dword [esp + 0x18], ebx
lea esi, [ecx + edi]
movups xmm0, xmmword [ebp]
movups xmmword [ecx], xmm0
cmp edi, 0x11
jae 0x4d17d3
mov edi, esi
mov ecx, dword [esp + 4]
sub edi, ecx
mov dword [esp + 0x38], eax
mov ebx, esi
mov edx, dword [esp + 0x1c]
sub ebx, edx
cmp ebx, ecx
jae 0x4d1349
mov dword [esp + 0x14], ebx
mov eax, esi
sub eax, dword [esp + 0x7c]
cmp eax, ecx
jb 0x4d1d70
sub edi, edx
mov ebp, dword [esp + 0x40]
lea eax, [edi + ebp]
mov ebx, dword [esp + 8]
lea ecx, [eax + ebx]
cmp ecx, ebp
jbe 0x4d13e0
mov ebp, edx
mov ecx, edi
neg ecx
push ecx
push eax
push esi
call fcn.004f8d88
add esp, 0xc
sub esi, edi
mov eax, edi
add eax, ebx
mov edi, ebp
mov dword [esp + 0xc], 0xffffffec
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x14]
jmp 0x4d134d
lea eax, [esi - 0x20]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
mov eax, dword [ecx + 8]
mov dword [esp + 4], eax
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x80]
mov ebp, dword [esp]
ja 0x4d1752
mov eax, dword [esp + 8]
lea esi, [eax + ebx]
lea eax, [esi + ebp]
cmp eax, dword [esp + 0x18]
ja 0x4d1752
mov eax, dword [esp + 0x34]
sub eax, ebp
lea ecx, [esi + 0x20]
cmp eax, ecx
jb 0x4d1752
mov dword [esp + 0x18], esi
lea esi, [ebx + ebp]
movups xmm0, xmmword [edx]
movups xmmword [ebp], xmm0
cmp ebx, 0x11
jae 0x4d185d
mov edi, esi
mov ecx, dword [esp + 4]
sub edi, ecx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], eax
mov ebx, esi
mov edx, dword [esp + 0x1c]
sub ebx, edx
cmp ebx, ecx
jae 0x4d13b1
mov dword [esp + 0x14], ebx
mov eax, esi
sub eax, dword [esp + 0x7c]
cmp eax, ecx
mov ebp, dword [esp + 0x14c]
jb 0x4d0fe6
sub edi, edx
mov ebx, dword [esp + 0x40]
lea eax, [ebx + edi]
mov ecx, dword [esp + 8]
add ecx, eax
cmp ecx, ebx
jbe 0x4d1495
mov ebx, edx
mov ecx, edi
neg ecx
push ecx
push eax
push esi
call fcn.004f8d88
add esp, 0xc
sub esi, edi
mov eax, edi
add eax, dword [esp + 8]
mov edi, ebx
mov dword [esp + 0xc], 0xffffffec
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x14]
jmp 0x4d13c0
mov eax, dword [esp + 8]
cmp ecx, 0x10
mov edx, dword [esp + 0x20]
jb 0x4d1817
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp eax, 0x11
jge 0x4d1378
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
jmp 0x4d14b6
add eax, esi
mov ecx, 0x10
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
movups xmm0, xmmword [edi + ecx]
movups xmmword [esi + ecx], xmm0
movups xmm0, xmmword [edi + ecx + 0x10]
movups xmmword [esi + ecx + 0x10], xmm0
lea edx, [esi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, eax
jb 0x4d138d
jmp 0x4d14b2
mov eax, dword [esp + 8]
mov ebp, dword [esp + 0x14c]
mov edx, dword [esp + 0x20]
cmp ecx, 0x10
jb 0x4d1902
movups xmm0, xmmword [edi]
movups xmmword [esi], xmm0
cmp eax, 0x11
jge 0x4d1417
mov ebx, dword [esp + 0x150]
jmp 0x4d14b6
push ebx
push eax
push esi
call fcn.004f8d88
add esp, 0xc
mov dword [esp + 0xc], 0xffffffec
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
jmp 0x4d14b2
mov edx, ecx
mov ecx, dword [esp]
mov eax, dword [esp + 0x14c]
jmp 0x4d1581
add eax, esi
mov ecx, 0x10
mov ebx, dword [esp + 0x150]
movups xmm0, xmmword [edi + ecx]
movups xmmword [esi + ecx], xmm0
movups xmm0, xmmword [edi + ecx + 0x10]
movups xmmword [esi + ecx + 0x10], xmm0
lea edx, [esi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, eax
jb 0x4d1425
jmp 0x4d14b2
cmp esi, 0xffffffef
ja 0x4d14cf
lea esi, [ecx - 0x20]
mov ebp, esi
sub ebp, ebx
jb 0x4d14cf
movups xmm0, xmmword [edx]
movups xmmword [ebx], xmm0
cmp ebp, 0x11
jl 0x4d148d
mov eax, 0x10
movups xmm0, xmmword [edx + eax]
movups xmmword [ebx + eax], xmm0
movups xmm0, xmmword [edx + eax + 0x10]
movups xmmword [ebx + eax + 0x10], xmm0
mov edi, dword [esp]
lea ebx, [edi + eax]
add ebx, 0x20
add eax, 0x20
cmp ebx, esi
mov ebx, dword [esp]
jb 0x4d1468
add edx, ebp
mov edi, dword [esp + 0x18]
jmp 0x4d14d1
push dword [esp + 8]
push eax
push esi
call fcn.004f8d88
add esp, 0xc
mov dword [esp + 0xc], 0xffffffec
mov ebx, dword [esp + 0x150]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
cmp eax, 0xffffff88
mov edi, dword [esp + 0x10]
ja 0x4d0fe2
add dword [esp], eax
jmp 0x4d1068
mov esi, ebx
add ebx, edi
sub ebx, esi
cmp ebx, 8
mov dword [esp], ebx
jb 0x4d1540
mov eax, esi
sub eax, edx
cmp eax, 0x20
jb 0x4d1540
xor edi, edi
cmp ebx, 0x20
jb 0x4d151d
mov edi, ebx
and edi, 0xffffffe0
xor eax, eax
movups xmm0, xmmword [edx + eax]
movups xmm1, xmmword [edx + eax + 0x10]
movups xmmword [esi + eax], xmm0
movups xmmword [esi + eax + 0x10], xmm1
add eax, 0x20
cmp edi, eax
jne 0x4d14f4
cmp ebx, edi
je 0x4d1567
mov ebx, dword [esp]
test bl, 0x18
je 0x4d1700
mov eax, ebx
and eax, 0xfffffff8
lea ebx, [esi + eax]
lea ebp, [edx + eax]
movsd xmm0, qword [edx + edi]
movsd qword [esi + edi], xmm0
add edi, 8
cmp eax, edi
jne 0x4d1528
cmp dword [esp], eax
jne 0x4d1544
jmp 0x4d1567
mov ebx, esi
mov ebp, edx
add esi, dword [esp]
movzx eax, byte [ebp]
inc ebp
mov byte [ebx], al
inc ebx
cmp ebx, esi
jne 0x4d1547
jmp 0x4d1567
mov ebp, edx
jmp 0x4d155b
mov ebp, edx
movzx eax, byte [ebp]
inc ebp
mov byte [ebx], al
inc ebx
cmp ebx, ecx
jb 0x4d155b
mov edx, dword [esp + 8]
mov ebx, dword [edx]
sub ebx, dword [esp + 0x18]
mov dword [edx], ebx
mov eax, dword [esp + 0x14c]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x38], esi
mov dword [eax + 0x7610], 0
mov eax, dword [edx + 4]
mov dword [esp], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x18], eax
cmp ebx, 0x10000
mov edx, dword [esp + 0x20]
mov dword [esp + 4], ecx
jg 0x4d1791
mov eax, dword [esp]
lea ebp, [eax + ebx]
lea eax, [ecx + ebp]
cmp eax, dword [esp + 0x30]
ja 0x4d1791
mov eax, dword [esp + 0x34]
sub eax, ecx
lea edi, [ebp + 0x20]
cmp eax, edi
jb 0x4d1791
mov dword [esp + 8], ebp
lea edi, [ecx + ebx]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp ebx, 0x11
jae 0x4d18a1
add ebx, esi
mov esi, edi
mov ecx, dword [esp + 0x18]
sub esi, ecx
mov dword [esp + 0x38], ebx
mov ebp, edi
sub ebp, dword [esp + 0x1c]
cmp ebp, ecx
jae 0x4d1654
mov eax, edi
sub eax, dword [esp + 0x7c]
cmp eax, ecx
mov ebx, dword [esp]
jb 0x4d0fe6
sub esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x40]
lea eax, [edx + esi]
lea ecx, [eax + ebx]
cmp ecx, edx
jbe 0x4d16b1
mov ecx, esi
neg ecx
push ecx
push eax
push edi
call fcn.004f8d88
add esp, 0xc
sub edi, esi
mov eax, esi
add eax, ebx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc], 0xffffffec
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
jmp 0x4d1657
mov eax, dword [esp]
cmp ecx, 0x10
jb 0x4d1a2b
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
cmp eax, 0x11
jge 0x4d167b
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
jmp 0x4d16d6
add eax, edi
mov ecx, 0x10
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
movups xmm0, xmmword [esi + ecx]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x10]
movups xmmword [edi + ecx + 0x10], xmm0
lea edx, [edi + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, eax
jb 0x4d1690
jmp 0x4d16d2
push ebx
push eax
push edi
call fcn.004f8d88
add esp, 0xc
mov dword [esp + 0xc], 0xffffffec
mov ebx, dword [esp + 0x150]
mov ebp, dword [esp + 0x14c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 8]
cmp eax, 0xffffff89
mov edi, dword [esp + 0x10]
jae 0x4d0fe2
mov ecx, dword [esp + 4]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x80], eax
mov dword [esp], ecx
jmp 0x4d1068
add edx, edi
add edi, esi
mov ebx, edi
jmp 0x4d1542
add edx, esi
mov ebx, dword [esp]
add ebx, esi
mov ebp, edx
jmp 0x4d155b
mov edx, dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x80]
push dword [esp + 0x24]
push dword [esp + 0x8c]
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
push edi
call fcn.004d4590
add esp, 0x20
mov dword [esp + 0x18], eax
jmp 0x4d13eb
mov ecx, ebp
mov edx, dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x80]
push dword [esp + 0x24]
push dword [esp + 0x8c]
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
push ebx
push dword [esp + 0x38]
call fcn.004d4cb0
add esp, 0x24
mov dword [esp + 0x18], eax
jmp 0x4d13eb
mov edx, dword [esp + 0x34]
push dword [esp + 0x40]
push dword [esp + 0x80]
push dword [esp + 0x24]
push dword [esp + 0x38]
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x18]
push ebx
call fcn.004d4590
mov edx, dword [esp + 0x40]
add esp, 0x20
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xffffffec
jmp 0x4d166b
add edi, 0xfffffff0
movups xmm0, xmmword [ebp + 0x10]
mov ecx, dword [esp]
movups xmmword [ecx + 0x10], xmm0
cmp edi, 0x11
jl 0x4d11ef
mov ecx, dword [esp]
lea edx, [ecx + 0x20]
xor edi, edi
movups xmm0, xmmword [ebp + edi + 0x20]
movups xmmword [edx + edi], xmm0
movups xmm0, xmmword [ebp + edi + 0x30]
movups xmmword [edx + edi + 0x10], xmm0
lea ebx, [edx + edi]
add ebx, 0x20
add edi, 0x20
cmp ebx, esi
jb 0x4d17f2
jmp 0x4d11ef
mov dword [esp + 0x14], ebx
cmp ecx, 7
ja 0x4d1948
movzx ecx, byte [edi]
mov byte [esi], cl
movzx ecx, byte [edi + 1]
mov byte [esi + 1], cl
movzx ecx, byte [edi + 2]
mov byte [esi + 2], cl
movzx ecx, byte [edi + 3]
mov byte [esi + 3], cl
mov ebx, dword [esp + 4]
mov ecx, dword [ebx*4 + 0x8519cc]
mov edx, dword [edi + ecx]
add edi, ecx
mov dword [esi + 4], edx
sub edi, dword [ebx*4 + 0x8519ec]
jmp 0x4d1950
add ebx, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
mov eax, dword [esp]
movups xmmword [eax + 0x10], xmm0
cmp ebx, 0x11
jl 0x4d12c8
mov eax, dword [esp]
add eax, 0x20
xor ecx, ecx
movups xmm0, xmmword [edx + ecx + 0x20]
movups xmmword [eax + ecx], xmm0
movups xmm0, xmmword [edx + ecx + 0x30]
movups xmmword [eax + ecx + 0x10], xmm0
lea edi, [eax + ecx]
add edi, 0x20
add ecx, 0x20
cmp edi, esi
jb 0x4d187c
jmp 0x4d12c8
lea eax, [ebx - 0x10]
mov ecx, dword [esp + 0x14c]
movups xmm0, xmmword [ecx + 0x7624]
mov ecx, dword [esp + 4]
movups xmmword [ecx + 0x10], xmm0
cmp eax, 0x11
jl 0x4d15ea
mov eax, dword [esp + 4]
add eax, 0x20
xor ecx, ecx
mov edx, dword [esp + 0x14c]
movups xmm0, xmmword [edx + ecx + 0x7634]
movups xmmword [eax + ecx], xmm0
movups xmm0, xmmword [edx + ecx + 0x7644]
movups xmmword [eax + ecx + 0x10], xmm0
lea edx, [eax + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, edi
mov edx, dword [esp + 0x20]
jb 0x4d18cc
jmp 0x4d15ea
mov dword [esp + 0x14], ebx
cmp ecx, 7
ja 0x4d1a71
movzx ecx, byte [edi]
mov byte [esi], cl
movzx ecx, byte [edi + 1]
mov byte [esi + 1], cl
movzx ecx, byte [edi + 2]
mov byte [esi + 2], cl
movzx ecx, byte [edi + 3]
mov byte [esi + 3], cl
mov ebx, dword [esp + 4]
mov ecx, dword [ebx*4 + 0x8519cc]
mov edx, dword [edi + ecx]
add edi, ecx
mov dword [esi + 4], edx
sub edi, dword [ebx*4 + 0x8519ec]
jmp 0x4d1a79
movsd xmm0, qword [edi]
movsd qword [esi], xmm0
cmp eax, 9
jb 0x4d13eb
lea edx, [edi + 8]
lea ecx, [esi + 8]
mov ebp, ecx
sub ebp, edx
lea ebx, [esi + eax]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x88], ebp
cmp ebp, 0xf
jg 0x4d1b4b
mov esi, dword [esp + 8]
add esi, dword [esp + 0x1c]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 0x14]
cmp ebx, ebp
mov eax, ebp
cmovb eax, ebx
cmova ebp, ebx
add eax, esi
add eax, ebp
sub eax, ebx
mov esi, dword [esp + 0x24]
add esi, ebp
cmp eax, esi
cmovbe eax, esi
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x1c]
add esi, ebp
sub eax, esi
add eax, 0xfffffff7
cmp eax, 0x18
jb 0x4d1a12
cmp dword [esp + 0x88], 0x20
jb 0x4d1a12
mov esi, eax
shr esi, 3
inc esi
mov dword [esp + 8], esi
and esi, 0xfffffffc
lea ecx, [ecx + esi*8]
lea edx, [edx + esi*8]
mov ebx, dword [esp]
mov ebp, dword [esp + 0x3c]
lea eax, [ebx + ebp]
mov ebp, ebx
mov ebx, dword [esp + 0x14]
sub ebx, ebp
add ebx, eax
mov eax, ebx
xor ebp, ebp
movups xmm0, xmmword [edi + ebp*8 + 8]
movups xmm1, xmmword [edi + ebp*8 + 0x18]
movups xmmword [eax + ebp*8 - 0x10], xmm0
movups xmmword [eax + ebp*8], xmm1
add ebp, 4
cmp esi, ebp
jne 0x4d19ee
cmp dword [esp + 8], esi
je 0x4d13eb
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
add ecx, 8
add edx, 8
cmp ecx, dword [esp + 0x28]
jb 0x4d1a12
jmp 0x4d13eb
mov dword [esp + 0x28], ebp
cmp ecx, 7
ja 0x4d1b86
movzx ecx, byte [esi]
mov byte [edi], cl
movzx ecx, byte [esi + 1]
mov byte [edi + 1], cl
movzx ecx, byte [esi + 2]
mov byte [edi + 2], cl
movzx ecx, byte [esi + 3]
mov byte [edi + 3], cl
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx*4 + 0x8519cc]
mov edx, dword [esi + ecx]
add esi, ecx
mov dword [edi + 4], edx
sub esi, dword [ebx*4 + 0x8519ec]
jmp 0x4d1b8e
movsd xmm0, qword [edi]
movsd qword [esi], xmm0
cmp eax, 9
jb 0x4d13eb
lea edx, [edi + 8]
lea ecx, [esi + 8]
mov ebp, ecx
sub ebp, edx
lea ebx, [esi + eax]
mov dword [esp + 0x28], ebx
cmp ebp, 0xf
jg 0x4d1c61
mov eax, dword [esp + 8]
add eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x14]
cmp esi, ebx
mov eax, ebx
cmovb eax, esi
cmova ebx, esi
add eax, dword [esp + 8]
add eax, ebx
sub eax, esi
mov esi, dword [esp + 0x24]
add esi, ebx
cmp eax, esi
cmovbe eax, esi
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x1c]
add esi, ebx
sub eax, esi
add eax, 0xfffffff7
cmp eax, 0x18
jb 0x4d1b32
cmp ebp, 0x20
jb 0x4d1b32
mov esi, eax
shr esi, 3
inc esi
mov dword [esp + 8], esi
and esi, 0xfffffffc
lea ecx, [ecx + esi*8]
lea edx, [edx + esi*8]
mov eax, dword [esp]
mov ebp, dword [esp + 0x3c]
add ebp, eax
mov ebx, dword [esp + 0x14]
sub ebx, eax
add ebx, ebp
mov eax, ebx
xor ebp, ebp
movups xmm0, xmmword [edi + ebp*8 + 8]
movups xmm1, xmmword [edi + ebp*8 + 0x18]
movups xmmword [eax + ebp*8 - 0x10], xmm0
movups xmmword [eax + ebp*8], xmm1
add ebp, 4
cmp esi, ebp
jne 0x4d1b0e
cmp dword [esp + 8], esi
je 0x4d13eb
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
add ecx, 8
add edx, 8
cmp ecx, dword [esp + 0x28]
jb 0x4d1b32
jmp 0x4d13eb
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x19
jl 0x4d13eb
add esi, 0x18
xor eax, eax
movups xmm0, xmmword [edi + eax + 0x18]
movups xmmword [esi + eax], xmm0
movups xmm0, xmmword [edi + eax + 0x28]
movups xmmword [esi + eax + 0x10], xmm0
lea ecx, [esi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, dword [esp + 0x28]
jb 0x4d1b5f
jmp 0x4d13eb
movsd xmm0, qword [esi]
movsd qword [edi], xmm0
cmp eax, 9
jb 0x4d16bc
lea edx, [esi + 8]
lea ecx, [edi + 8]
mov ebp, ecx
sub ebp, edx
lea ebx, [edi + eax]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x88], ebp
cmp ebp, 0xf
jg 0x4d1c9c
mov ebp, dword [esp + 0x1c]
add dword [esp], ebp
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
cmp edi, ebx
mov eax, ebx
cmovb eax, edi
cmova ebx, edi
add eax, dword [esp]
add eax, ebx
sub eax, edi
mov edi, dword [esp + 0x24]
add edi, ebx
cmp eax, edi
cmovbe eax, edi
mov dword [esp + 0x28], ebx
sub eax, ebx
sub eax, ebp
add eax, 0xfffffff7
cmp eax, 0x18
jb 0x4d1c48
cmp dword [esp + 0x88], 0x20
jb 0x4d1c48
mov edi, eax
shr edi, 3
inc edi
mov dword [esp], edi
and edi, 0xfffffffc
lea ecx, [ecx + edi*8]
lea edx, [edx + edi*8]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 4]
add ebp, eax
mov ebx, dword [esp + 0x28]
sub ebx, eax
add ebx, ebp
mov eax, ebx
xor ebp, ebp
movups xmm0, xmmword [esi + ebp*8 + 8]
movups xmm1, xmmword [esi + ebp*8 + 0x18]
movups xmmword [eax + ebp*8 - 0x10], xmm0
movups xmmword [eax + ebp*8], xmm1
add ebp, 4
cmp edi, ebp
jne 0x4d1c25
cmp dword [esp], edi
je 0x4d16bc
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
add ecx, 8
add edx, 8
cmp ecx, dword [esp + 0x14]
jb 0x4d1c48
jmp 0x4d16bc
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x19
jl 0x4d13eb
add esi, 0x18
xor eax, eax
movups xmm0, xmmword [edi + eax + 0x18]
movups xmmword [esi + eax], xmm0
movups xmm0, xmmword [edi + eax + 0x28]
movups xmmword [esi + eax + 0x10], xmm0
lea ecx, [esi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, dword [esp + 0x28]
jb 0x4d1c75
jmp 0x4d13eb
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x19
jl 0x4d16bc
add edi, 0x18
xor eax, eax
movups xmm0, xmmword [esi + eax + 0x18]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x28]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, dword [esp + 0x14]
jb 0x4d1cb0
jmp 0x4d16bc
mov dword [esp + 4], esi
mov ebp, dword [esp]
jmp 0x4cf4d9
mov ebp, dword [esp + 0x14c]
lea eax, [ebp + 0x682c]
lea edx, [esp + 0x70]
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
movsd xmm0, qword [edx]
movsd qword [eax], xmm0
mov ecx, dword [ebp + 0x7610]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x80]
cmp ecx, 2
je 0x4cf34b
jmp 0x4d0fb2
mov dword [esp + 0xc], 0xffffffba
jmp 0x4d0fe6
mov dword [esp + 0x4c], 0x8519c8
mov dword [esp + 4], 0x8519c8
mov ebp, dword [esp]
jmp 0x4cf4d9
mov dword [esp + 0x4c], 0x8519c8
mov dword [esp + 4], 0x8519c8
jmp 0x4cf579
mov dword [esp + 0x4c], 0x8519c8
mov dword [esp + 4], 0x8519c8
jmp 0x4cf636
mov dword [esp + 0xc], 0xffffffec
jmp 0x4d0fe6