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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x120
mov ebx, dword [esp + 0x148]
mov esi, dword [esp + 0x144]
mov ebp, dword [esp + 0x134]
test ebx, ebx
je 0x56d612
xor eax, eax
mov ecx, 0x2000000
cmp ecx, dword [ebp + 0x74c8]
sbb eax, dword [ebp + 0x74cc]
setb al
movzx eax, al
mov dword [esp + 0x38], eax
mov ecx, 0xffffffb8
cmp esi, 0x1ffff
jbe 0x56d62b
jmp 0x57078a
mov dword [esp + 0x38], 1
mov ecx, 0xffffffb8
cmp esi, 0x1ffff
ja 0x57078a
mov edi, dword [esp + 0x140]
push dword [esp + 0x14c]
push dword [esp + 0x140]
push dword [esp + 0x140]
push esi
push edi
push ebp
call fcn.00573290
add esp, 0x18
mov ecx, eax
xor eax, eax
cmp ecx, 0xffffff89
cmovb eax, ecx
jae 0x57078a
add edi, eax
sub esi, eax
mov ecx, ebp
mov ebp, dword [ebp + 0x7598]
lea eax, [esp + 0xbc]
push esi
push edi
push eax
push ecx
call fcn.00573b20
add esp, 0x10
mov ecx, eax
cmp eax, 0xffffff88
ja 0x57078a
mov edx, dword [esp + 0xbc]
cmp dword [esp + 0x138], 0
jne 0x56d6aa
mov ecx, 0xffffffba
test edx, edx
jg 0x57078a
add edi, eax
sub esi, eax
test ebp, ebp
mov dword [esp + 0x24], edx
je 0x56d6ec
mov ecx, dword [esp + 0x134]
mov dword [ecx + 0x7598], 0
mov ebp, dword [esp + 0x13c]
mov ebx, dword [ecx + 0x75f0]
cmp ebx, 1
jne 0x56d775
mov eax, dword [ecx + 0x75e8]
mov dword [esp + 0x18], eax
jmp 0x56d780
test ebx, ebx
mov ecx, dword [esp + 0x134]
je 0x56d893
mov eax, dword [ecx + 0x74cc]
cmp dword [ecx + 0x74c8], 0x1000001
sbb eax, 0
jb 0x56d89c
cmp edx, 8
jle 0x56d89c
mov eax, dword [ecx + 8]
mov ecx, dword [eax + 4]
xor edx, edx
mov ebx, 1
nop word [eax + eax]
cmp byte [eax + ebx*8 + 2], 0x17
sbb edx, 0xffffffff
mov ebp, ebx
shr ebp, cl
add ebx, 1
test ebp, ebp
je 0x56d730
mov al, 8
sub al, cl
mov ecx, eax
shl edx, cl
mov ecx, dword [esp + 0x134]
mov dword [ecx + 0x7598], 0
cmp edx, 0x14
mov ebp, dword [esp + 0x13c]
mov edx, dword [esp + 0x24]
jae 0x56d6ce
jmp 0x56d8ad
add ebp, dword [esp + 0x138]
mov dword [esp + 0x18], ebp
mov eax, dword [ecx + 0x7570]
mov dword [esp + 0x3c], eax
mov ebp, dword [ecx + 0x75ec]
mov dword [esp + 0x28], ebp
test edx, edx
je 0x56d84c
mov eax, dword [ecx + 0x74b0]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0x74b4]
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x74b8]
mov dword [esp + 0x44], eax
cmp edx, 8
mov dword [ecx + 0x7504], 1
mov eax, dword [ecx + 0x6834]
mov dword [esp + 0x88], eax
movsd xmm0, qword [ecx + 0x682c]
movsd qword [esp + 0x80], xmm0
mov ebx, 8
cmovl ebx, edx
mov ecx, 0xffffffec
test esi, esi
je 0x57078a
mov dword [esp + 0x60], edi
lea eax, [edi + 4]
mov dword [esp + 0x64], eax
cmp esi, 4
jb 0x56d8f0
lea eax, [edi + esi]
add eax, 0xfffffffc
mov dword [esp + 0x5c], eax
mov eax, dword [edi + esi - 4]
mov dword [esp + 0x54], eax
cmp eax, 0x1000000
jb 0x57078a
cmp esi, 0xffffff88
ja 0x57078a
add esi, 0xfffffffc
mov dword [esp + 8], eax
shr eax, 0x18
bsr edx, eax
xor edx, 0x1f
add edx, 0xffffffe9
jmp 0x56d940
mov edi, dword [esp + 0x138]
mov ebp, dword [esp + 0x18]
cmp ebx, 2
jne 0x56dbb4
mov esi, dword [esp + 0x28]
sub esi, eax
mov ecx, ebp
sub ecx, edi
cmp esi, ecx
mov ecx, 0xffffffba
ja 0x57078a
test edi, edi
je 0x56db9b
mov edx, esi
push edx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
add edi, esi
jmp 0x56db9d
cmp edx, 9
jge 0x56d71d
mov dword [ecx + 0x7598], 0
mov ebp, dword [esp + 0x13c]
cmp dword [ecx + 0x75f0], 2
jne 0x56d8cf
mov edx, dword [esp + 0x138]
push dword [esp + 0x38]
push dword [esp + 0x28]
push esi
push edi
push ebp
call fcn.00573e70
jmp 0x56d8e6
mov edx, dword [esp + 0x138]
push dword [esp + 0x38]
push dword [esp + 0x28]
push esi
push edi
push ebp
call fcn.005762a0
add esp, 0x14
mov ecx, eax
jmp 0x57078a
mov dword [esp + 0x5c], edi
movzx ebp, byte [edi]
mov dword [esp + 0x54], ebp
cmp esi, 2
je 0x56d90e
cmp esi, 3
jne 0x56d91b
movzx eax, byte [edi + 2]
shl eax, 0x10
or ebp, eax
movzx eax, byte [edi + 1]
shl eax, 8
add ebp, eax
mov dword [esp + 0x54], ebp
movzx eax, byte [esi + edi - 1]
test eax, eax
je 0x56d9c0
mov dword [esp + 8], ebp
bsr edx, eax
xor edx, 0x1f
shl esi, 3
sub edx, esi
add edx, 9
mov dword [esp + 0x58], edx
xor esi, esi
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov dword [esp + 0xa0], eax
mov eax, dword [eax + 4]
add edx, eax
mov ecx, edx
neg cl
mov ebp, dword [esp + 8]
shr ebp, cl
and ebp, dword [eax*4 + 0x68b108]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x68], ebp
cmp edx, 0x20
mov dword [esp + 0xb0], ebx
mov eax, edx
jbe 0x56d989
mov ecx, dword [esp + 0x134]
mov ebx, dword [esp + 8]
jmp 0x56d9ec
cmp esi, 4
jge 0x56d9cd
test esi, esi
mov ecx, dword [esp + 0x134]
je 0x56dbf8
mov ebx, ecx
lea ecx, [edi + esi]
mov edx, eax
shr edx, 3
sub ecx, edx
cmp ecx, edi
cmovb edx, esi
sub esi, edx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
mov ecx, ebx
shl edx, 3
sub eax, edx
jmp 0x56d9e5
mov dword [esp + 0x58], 0
jmp 0x57078a
mov ecx, eax
shr ecx, 3
sub esi, ecx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
and eax, 7
mov ecx, dword [esp + 0x134]
mov ebx, dword [edi + esi]
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0xa0]
add ebp, 8
mov dword [esp + 0xa0], ebp
mov dword [esp + 0x6c], ebp
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], ecx
mov edx, dword [ecx + 4]
add eax, edx
mov ecx, eax
neg cl
mov dword [esp + 8], ebx
mov ebp, ebx
shr ebp, cl
and ebp, dword [edx*4 + 0x68b108]
mov edx, eax
mov dword [esp + 0x70], ebp
cmp eax, 0x20
ja 0x56da75
cmp esi, 4
jge 0x56da59
test esi, esi
je 0x56dc03
lea ecx, [edi + esi]
mov eax, edx
shr edx, 3
sub ecx, edx
cmp ecx, edi
cmovb edx, esi
sub esi, edx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
shl edx, 3
sub eax, edx
mov edx, eax
jmp 0x56da6a
mov ecx, edx
shr ecx, 3
sub esi, ecx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
and edx, 7
mov eax, dword [edi + esi]
mov dword [esp + 8], eax
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0x4c]
add ebx, 8
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x74], ebx
mov ecx, dword [esp + 0x134]
mov ebx, dword [ecx + 4]
mov eax, dword [ebx + 4]
mov dword [esp + 4], eax
add edx, eax
mov ecx, edx
neg cl
mov eax, edx
mov edx, dword [esp + 8]
shr edx, cl
mov ecx, dword [esp + 4]
and edx, dword [ecx*4 + 0x68b108]
mov ecx, dword [esp + 0x138]
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], edx
mov dword [esp + 4], eax
cmp eax, 0x21
jb 0x56dafc
add ebx, 8
mov dword [esp + 0x7c], ebx
mov dword [esp], 0
mov ecx, 0xffffffec
mov eax, dword [esp]
mov ebp, eax
cmp eax, dword [esp + 0xb0]
jge 0x56e21c
jmp 0x57078a
mov dword [esp + 0xa8], ebx
cmp esi, 4
jge 0x56db63
test esi, esi
je 0x56dc0a
lea ecx, [edi + esi]
mov eax, dword [esp + 4]
mov edx, eax
shr edx, 3
sub ecx, edx
cmp ecx, edi
cmovb edx, esi
sub esi, edx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
shl edx, 3
sub eax, edx
mov dword [esp + 0x58], eax
mov ecx, dword [edi + esi]
mov dword [esp + 8], ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xa8]
add ecx, 8
mov dword [esp + 0x7c], ecx
mov dword [esp], 0
mov dword [esp + 4], eax
cmp eax, 0x20
ja 0x56dae0
jmp 0x56dc1a
mov eax, dword [esp + 4]
mov ecx, eax
shr ecx, 3
sub esi, ecx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
and eax, 7
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + esi]
mov dword [esp + 8], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xa8]
lea ecx, [eax + 8]
mov dword [esp + 0x7c], ecx
jmp 0x56dc1a
xor edi, edi
mov ecx, dword [esp + 0x134]
lea eax, [ecx + 0x75f4]
add ecx, 0x175f4
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x28]
sub esi, eax
sub ebp, edi
mov ecx, 0xffffffba
cmp esi, ebp
ja 0x57078a
test edi, edi
je 0x56dbea
mov edx, esi
push edx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
add edi, esi
mov ecx, edi
sub ecx, dword [esp + 0x138]
jmp 0x57078a
xor ecx, ecx
sub ecx, dword [esp + 0x138]
jmp 0x57078a
xor esi, esi
mov ebx, dword [esp + 8]
jmp 0x56d9ec
xor esi, esi
jmp 0x56da75
mov eax, dword [esp + 0xa8]
lea ecx, [eax + 8]
mov dword [esp + 0x7c], ecx
xor esi, esi
mov dword [esp], 0
mov ebx, dword [esp + 0xb0]
test ebx, ebx
mov ecx, 0
cmovg ecx, ebx
mov dword [esp + 0x50], ecx
lea eax, [esp + 0xc8]
mov dword [esp + 0x34], eax
mov ecx, 0xffffffec
mov dword [esp + 0x20], edi
jmp 0x56dcdc
xor esi, esi
mov ebp, edi
mov eax, ebx
mov edi, dword [esp + 0xb4]
add eax, edi
mov ecx, eax
neg cl
mov dword [esp + 8], ebp
shr ebp, cl
and ebp, dword [edi*4 + 0x68b108]
add ebp, dword [esp + 0xa4]
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
add ebx, edi
mov edx, dword [esp + 0x90]
cmp ebx, edx
mov ecx, dword [esp + 0x1c]
cmovb ecx, dword [esp + 0x44]
mov dword [esp + 0x70], ebp
add ecx, ebx
sub ecx, edx
prefetcht0 byte [ecx]
prefetcht0 byte [ecx + 0x40]
mov ecx, dword [esp + 0x34]
mov dword [ecx - 8], edi
mov edi, dword [esp + 0x40]
add ebx, edi
mov dword [esp + 0x10], ebx
mov dword [ecx - 4], edi
mov dword [ecx], edx
add dword [esp], 1
add ecx, 0xc
mov dword [esp + 0x34], ecx
mov dword [esp + 4], eax
cmp eax, 0x20
mov ecx, 0xffffffec
mov edi, dword [esp + 0x20]
ja 0x56dae5
cmp esi, 4
jge 0x56dd11
test esi, esi
je 0x56ded7
lea ecx, [edi + esi]
mov eax, dword [esp + 4]
mov ebx, eax
shr ebx, 3
sub ecx, ebx
cmp ecx, edi
cmovb ebx, esi
sub esi, ebx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
mov ecx, 0xffffffec
shl ebx, 3
sub eax, ebx
jmp 0x56dd2b
mov eax, dword [esp + 4]
mov ecx, eax
shr ecx, 3
sub esi, ecx
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
mov ecx, 0xffffffec
and eax, 7
mov dword [esp + 4], eax
mov dword [esp + 0x58], eax
mov eax, dword [edi + esi]
mov dword [esp + 8], eax
mov dword [esp + 0x54], eax
mov eax, dword [esp]
cmp dword [esp + 0x50], eax
je 0x56e218
mov dword [esp + 0x90], esi
mov ecx, dword [esp + 0xa8]
mov esi, dword [esp + 0x30]
mov eax, dword [ecx + esi*8 + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x14]
mov ebx, dword [eax + edi*8 + 4]
mov dword [esp + 0x2c], ebx
movzx edx, byte [eax + edi*8 + 2]
mov dword [esp + 0xc], edx
movzx edx, word [eax + edi*8]
mov dword [esp + 0x94], edx
movzx eax, byte [eax + edi*8 + 3]
mov dword [esp + 0x9c], eax
movzx edx, byte [ecx + esi*8 + 0xa]
movzx eax, word [ecx + esi*8 + 8]
mov dword [esp + 0x14], eax
movzx eax, byte [ecx + esi*8 + 0xb]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + ebp*8 + 4]
mov dword [esp + 0x8c], ecx
movzx ebx, byte [eax + ebp*8 + 2]
movzx ecx, word [eax + ebp*8]
mov dword [esp + 0xa4], ecx
movzx eax, byte [eax + ebp*8 + 3]
mov dword [esp + 0xb4], eax
cmp ebx, 2
mov dword [esp + 0x98], edx
jb 0x56e026
mov eax, dword [esp + 0x20]
mov edi, eax
mov esi, dword [esp + 0x90]
lea edx, [eax + esi]
cmp dword [esp + 0x38], 0
je 0x56de4d
cmp bl, 0x19
jb 0x56de4d
mov dword [esp + 0xb8], edx
mov eax, 0x20
mov edx, dword [esp + 4]
sub eax, edx
cmp eax, ebx
cmova eax, ebx
sub ebx, eax
mov dword [esp + 0xac], ebx
mov ebp, dword [esp + 8]
mov ecx, edx
shl ebp, cl
mov ecx, eax
neg cl
shr ebp, cl
add eax, edx
mov ecx, dword [esp + 0xac]
shl ebp, cl
cmp eax, 0x20
jbe 0x56de76
mov ebx, dword [esp + 8]
jmp 0x56df07
mov ebp, dword [esp + 8]
mov eax, dword [esp + 4]
mov ecx, eax
shl ebp, cl
mov ecx, ebx
neg cl
shr ebp, cl
add eax, ebx
mov ebx, eax
add ebp, dword [esp + 0x8c]
cmp eax, 0x20
jbe 0x56dea8
mov edx, edi
jmp 0x56df55
cmp esi, 4
jge 0x56deeb
test esi, esi
je 0x56e012
mov ecx, eax
shr ecx, 3
mov edx, dword [esp + 0xb8]
sub edx, ecx
cmp edx, edi
mov edx, edi
cmovb ecx, esi
sub esi, ecx
lea ebx, [edi + esi]
mov dword [esp + 0x5c], ebx
shl ecx, 3
sub eax, ecx
jmp 0x56defe
cmp esi, 4
jge 0x56df33
test esi, esi
je 0x56e01d
mov eax, ebx
shr eax, 3
sub edx, eax
cmp edx, edi
mov edx, edi
cmovb eax, esi
sub esi, eax
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
shl eax, 3
sub ebx, eax
jmp 0x56df4a
xor esi, esi
mov eax, dword [esp]
cmp dword [esp + 0x50], eax
jne 0x56dd4b
jmp 0x56e218
mov ecx, eax
shr ecx, 3
sub esi, ecx
mov edx, edi
lea ecx, [edi + esi]
mov dword [esp + 0x5c], ecx
and eax, 7
mov edi, edx
mov ebx, dword [edx + esi]
mov dword [esp + 0x54], ebx
mov ecx, dword [esp + 0x8c]
add ebp, ecx
mov edx, dword [esp + 0xac]
test edx, edx
mov dword [esp + 8], ebx
je 0x56df2d
mov ecx, eax
shl ebx, cl
mov ecx, edx
neg cl
shr ebx, cl
add eax, edx
add ebp, ebx
mov ebx, eax
mov edx, edi
jmp 0x56df55
mov eax, ebx
shr eax, 3
sub esi, eax
mov edx, edi
lea eax, [edi + esi]
mov dword [esp + 0x5c], eax
and ebx, 7
mov dword [esp + 0x58], ebx
mov eax, dword [edi + esi]
mov dword [esp + 8], eax
mov dword [esp + 0x54], eax
mov edi, ebx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x80]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x98]
add eax, ebx
mov ecx, dword [ecx]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], ebp
test ebx, ebx
mov dword [esp + 0x90], ebp
jne 0x56e066
cmp eax, 0x14
mov ecx, dword [esp + 0xc]
mov ebx, edi
jb 0x56dff4
cmp ebx, 0x20
ja 0x56dff4
cmp esi, 4
jge 0x56dfd4
test esi, esi
je 0x56e00e
lea eax, [edx + esi]
mov ecx, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edx
cmovb ecx, esi
sub esi, ecx
lea eax, [edx + esi]
mov dword [esp + 0x5c], eax
shl ecx, 3
sub ebx, ecx
mov ecx, dword [esp + 0xc]
jmp 0x56dfe5
mov eax, ebx
shr eax, 3
sub esi, eax
lea eax, [edx + esi]
mov dword [esp + 0x5c], eax
and ebx, 7
mov dword [esp + 0x58], ebx
mov eax, dword [edx + esi]
mov dword [esp + 8], eax
mov dword [esp + 0x54], eax
test ecx, ecx
jne 0x56e09c
cmp ebx, 0x20
jbe 0x56e0bb
mov edx, dword [esp + 8]
jmp 0x56e0ff
xor esi, esi
jmp 0x56dff4
xor esi, esi
mov ebx, dword [esp + 8]
jmp 0x56df07
xor esi, esi
mov edx, edi
jmp 0x56df55
xor eax, eax
cmp dword [esp + 0x2c], 0
sete al
test ebx, ebx
jne 0x56e1b2
xor ecx, ecx
cmp dword [esp + 0x2c], 0
setne cl
mov ebp, dword [esp + eax*4 + 0x80]
lea ecx, [esp + ecx*4]
add ecx, 0x80
mov edi, dword [esp + 4]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
jmp 0x56df6c
mov dword [esp + 4], edi
mov ebp, edx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 4]
shl edi, cl
mov ecx, ebx
neg cl
shr edi, cl
add dword [esp + 4], ebx
add dword [esp + 0x40], edi
mov edi, dword [esp + 4]
cmp eax, 0x14
mov ecx, dword [esp + 0xc]
mov ebx, edi
jae 0x56dfa3
jmp 0x56dff4
mov eax, dword [esp + 8]
mov edi, ecx
mov ecx, ebx
shl eax, cl
mov ecx, edi
neg cl
shr eax, cl
add ebx, edi
add dword [esp + 0x2c], eax
cmp ebx, 0x20
ja 0x56e005
cmp esi, 4
jge 0x56e0e7
test esi, esi
je 0x56e1a7
lea eax, [edx + esi]
mov ecx, ebx
shr ecx, 3
sub eax, ecx
cmp eax, edx
cmovb ecx, esi
sub esi, ecx
lea eax, [edx + esi]
mov dword [esp + 0x5c], eax
shl ecx, 3
sub ebx, ecx
jmp 0x56e0f8
mov eax, ebx
shr eax, 3
sub esi, eax
lea eax, [edx + esi]
mov dword [esp + 0x5c], eax
and ebx, 7
mov edx, dword [edx + esi]
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x9c]
add ebx, eax
mov ecx, ebx
neg cl
mov ebp, edx
shr ebp, cl
and ebp, dword [eax*4 + 0x68b108]
mov eax, ebx
mov ebx, dword [esp + 0x30]
add eax, ebx
mov ecx, eax
neg cl
mov edi, edx
shr edx, cl
add ebp, dword [esp + 0x94]
and edx, dword [ebx*4 + 0x68b108]
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], edx
mov ebx, eax
cmp eax, 0x20
ja 0x56dc51
cmp esi, 4
jge 0x56e186
test esi, esi
je 0x56dc4f
mov edx, dword [esp + 0x20]
lea ecx, [edx + esi]
mov eax, ebx
shr ebx, 3
sub ecx, ebx
cmp ecx, edx
cmovb ebx, esi
sub esi, ebx
lea ecx, [edx + esi]
mov dword [esp + 0x5c], ecx
shl ebx, 3
sub eax, ebx
mov ebx, eax
jmp 0x56e19b
mov ecx, ebx
shr ecx, 3
sub esi, ecx
mov edx, dword [esp + 0x20]
lea ecx, [edx + esi]
mov dword [esp + 0x5c], ecx
and ebx, 7
mov ebp, dword [edx + esi]
mov dword [esp + 0x54], ebp
jmp 0x56dc53
xor esi, esi
mov edx, dword [esp + 8]
jmp 0x56e0ff
mov edx, dword [esp + 8]
mov ecx, dword [esp + 4]
shl edx, cl
shr edx, 0x1f
add ecx, 1
mov edi, ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x8c]
add ecx, edx
add ecx, eax
cmp ecx, 3
jne 0x56e1ea
mov ebp, dword [esp + 0x80]
add ebp, 0xffffffff
cmp ebp, 1
adc ebp, 0
jmp 0x56e1fe
mov eax, ecx
mov ebp, dword [esp + ecx*4 + 0x80]
cmp ebp, 1
adc ebp, 0
cmp ecx, 1
je 0x56e20c
mov eax, dword [esp + 0x84]
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x80]
jmp 0x56e056
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x134]
lea eax, [esi + 0x682c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x18]
add eax, 0xffffffe0
mov dword [esp + 0x9c], eax
lea eax, [esi + 0x75f4]
mov dword [esp + 0x98], eax
lea eax, [esi + 0x175f4]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x1c]
add eax, 0x38
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x138]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 4]
jmp 0x56e2f4
push edi
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, 0xffffffec
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
cmp ebx, 0xffffff88
mov ebp, dword [esp + 0x50]
ja 0x570788
mov esi, dword [esp + 0x94]
add edi, esi
mov edx, dword [esp + 4]
cmp edi, edx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x44]
add eax, edi
sub eax, edx
prefetcht0 byte [eax]
prefetcht0 byte [eax + 0x40]
mov eax, ebp
and eax, 7
lea eax, [eax + eax*2]
mov dword [esp + eax*4 + 0xc0], esi
mov esi, dword [esp + 8]
mov dword [esp + eax*4 + 0xc4], esi
mov dword [esp + eax*4 + 0xc8], edx
mov eax, dword [esp + 0xc]
add eax, ebx
add edi, esi
add ebp, 1
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
cmp edx, 0x21
jae 0x56f7a5
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
cmp esi, eax
mov dword [esp + 0x10], edi
jae 0x56e344
mov ecx, dword [esp + 0x60]
mov eax, esi
sub eax, ecx
je 0x56e4eb
mov ebx, edx
shr edx, 3
mov edi, esi
sub edi, edx
cmp edi, ecx
cmovb edx, eax
sub esi, edx
mov dword [esp + 0x5c], esi
shl edx, 3
sub ebx, edx
mov edx, ebx
mov ebx, dword [esp + 0x24]
jmp 0x56e352
mov eax, edx
shr eax, 3
sub esi, eax
mov dword [esp + 0x5c], esi
and edx, 7
mov dword [esp + 0x58], edx
mov dword [esp], esi
mov eax, dword [esi]
mov dword [esp + 0x54], eax
cmp ebp, ebx
jge 0x56f7ad
mov ebx, edx
mov dword [esp + 0x50], ebp
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
mov edi, dword [esp + 0x78]
mov esi, dword [edx + eax*8 + 4]
mov dword [esp + 0x94], esi
movzx esi, byte [edx + eax*8 + 2]
mov dword [esp + 0x14], esi
movzx esi, word [edx + eax*8]
mov dword [esp + 0x40], esi
movzx eax, byte [edx + eax*8 + 3]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + edi*8 + 4]
mov dword [esp + 8], eax
movzx eax, byte [ecx + edi*8 + 2]
mov dword [esp + 0x30], eax
movzx eax, word [ecx + edi*8]
mov dword [esp + 0xa4], eax
movzx edi, byte [ecx + edi*8 + 3]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov ebp, dword [eax + ecx*8 + 4]
movzx edx, byte [eax + ecx*8 + 2]
movzx esi, word [eax + ecx*8]
mov dword [esp + 0x34], esi
movzx eax, byte [eax + ecx*8 + 3]
cmp edx, 2
mov dword [esp + 0x2c], eax
mov dword [esp + 0xb4], edi
jb 0x56ef3e
cmp dword [esp + 0x38], 0
je 0x56e47a
cmp dl, 0x19
jb 0x56e47a
mov eax, 0x20
sub eax, ebx
cmp eax, edx
cmova eax, edx
sub edx, eax
mov esi, dword [esp + 0x54]
mov edi, esi
mov ecx, ebx
shl edi, cl
mov ecx, eax
neg cl
shr edi, cl
add eax, ebx
mov ecx, edx
shl edi, cl
mov dword [esp + 4], edi
cmp eax, 0x20
ja 0x56e512
mov ebx, dword [esp]
cmp ebx, dword [esp + 0x20]
jae 0x56e4fb
mov edi, dword [esp + 0x60]
mov ecx, ebx
sub ecx, edi
je 0x56e512
mov dword [esp + 0xac], edi
mov edi, eax
shr edi, 3
mov esi, ebx
sub esi, edi
cmp esi, dword [esp + 0xac]
cmovb edi, ecx
sub ebx, edi
mov dword [esp + 0x5c], ebx
shl edi, 3
sub eax, edi
jmp 0x56e509
mov edi, dword [esp + 0x54]
mov ecx, ebx
shl edi, cl
mov ecx, edx
neg cl
shr edi, cl
add ebx, edx
add edi, ebp
cmp ebx, 0x20
mov esi, dword [esp + 8]
jbe 0x56e4a1
mov ebp, dword [esp]
mov edx, dword [esp + 0x14]
jmp 0x56e552
mov ebp, dword [esp]
cmp ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
jae 0x56e539
mov ecx, dword [esp + 0x60]
mov eax, ebp
sub eax, ecx
je 0x56e552
mov edx, ebx
shr edx, 3
mov ebp, edi
mov edi, esi
mov esi, dword [esp]
sub esi, edx
cmp esi, ecx
mov esi, edi
mov edi, ebp
mov ebp, dword [esp]
cmovb edx, eax
sub ebp, edx
mov dword [esp + 0x5c], ebp
shl edx, 3
sub ebx, edx
mov edx, dword [esp + 0x14]
jmp 0x56e54b
mov dword [esp], esi
cmp ebp, ebx
jl 0x56e367
jmp 0x56f7ad
mov ecx, eax
shr ecx, 3
sub ebx, ecx
mov dword [esp + 0x5c], ebx
and eax, 7
mov dword [esp], ebx
mov esi, dword [ebx]
mov dword [esp + 0x54], esi
mov edi, dword [esp + 4]
add edi, ebp
test edx, edx
je 0x56e52a
mov ecx, eax
shl esi, cl
mov ecx, edx
neg cl
shr esi, cl
add eax, edx
add edi, esi
mov ebx, eax
mov ebp, dword [esp]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 8]
jmp 0x56e552
mov eax, ebx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x5c], ebp
and ebx, 7
mov dword [esp + 0x58], ebx
mov eax, dword [ebp]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x30]
lea eax, [ecx + edx]
mov dword [esp + 0x80], edi
test ecx, ecx
jne 0x56ef85
mov dword [esp + 8], esi
cmp eax, 0x14
jb 0x56e5da
cmp ebx, 0x20
ja 0x56e5da
cmp ebp, dword [esp + 0x20]
jae 0x56e5c1
mov ecx, dword [esp + 0x60]
mov eax, ebp
sub eax, ecx
je 0x56e5da
mov edx, ebx
shr edx, 3
mov esi, ebp
sub esi, edx
cmp esi, ecx
cmovb edx, eax
sub ebp, edx
mov dword [esp + 0x5c], ebp
shl edx, 3
sub ebx, edx
mov edx, dword [esp + 0x14]
jmp 0x56e5cf
mov eax, ebx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x5c], ebp
and ebx, 7
mov dword [esp + 0x58], ebx
mov eax, dword [ebp]
mov dword [esp + 0x54], eax
test edx, edx
jne 0x56efb1
cmp ebx, 0x20
ja 0x56e627
cmp ebp, dword [esp + 0x20]
jae 0x56e612
mov ecx, dword [esp + 0x60]
mov eax, ebp
sub eax, ecx
je 0x56e627
mov edx, ebx
shr edx, 3
mov esi, ebp
sub esi, edx
cmp esi, ecx
cmovb edx, eax
sub ebp, edx
mov dword [esp + 0x5c], ebp
shl edx, 3
sub ebx, edx
jmp 0x56e620
mov eax, ebx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x5c], ebp
and ebx, 7
mov eax, dword [ebp]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x90]
add ebx, esi
mov dword [esp + 4], ebx
mov ecx, ebx
neg cl
mov edx, eax
shr edx, cl
and edx, dword [esi*4 + 0x68b108]
mov ebx, dword [esp + 0xb4]
add dword [esp + 4], ebx
mov ecx, dword [esp + 4]
neg cl
mov esi, eax
shr esi, cl
add edx, dword [esp + 0x40]
and esi, dword [ebx*4 + 0x68b108]
mov dword [esp + 0x68], edx
mov ebx, dword [esp + 4]
add esi, dword [esp + 0xa4]
mov dword [esp + 0x78], esi
cmp ebx, 0x20
jbe 0x56e685
mov edx, dword [esp + 0x34]
jmp 0x56e6d1
cmp ebp, dword [esp + 0x20]
jae 0x56e6b8
mov edx, dword [esp + 0x60]
mov ecx, ebp
sub ecx, edx
je 0x56ea4c
mov ebx, dword [esp + 4]
mov eax, ebx
shr eax, 3
mov esi, ebp
sub esi, eax
cmp esi, edx
cmovb eax, ecx
sub ebp, eax
mov dword [esp + 0x5c], ebp
shl eax, 3
sub ebx, eax
jmp 0x56e6c6
mov eax, ebx
shr eax, 3
sub ebp, eax
mov dword [esp + 0x5c], ebp
and ebx, 7
mov edx, dword [esp + 0x34]
mov eax, dword [ebp]
mov dword [esp + 0x54], eax
mov dword [esp + 4], edi
mov esi, dword [esp + 0x2c]
add ebx, esi
mov ecx, ebx
neg cl
shr eax, cl
and eax, dword [esi*4 + 0x68b108]
add eax, edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x134]
cmp dword [edx + 0x75f0], 2
mov ecx, dword [esp + 0xc]
jne 0x56e7db
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x50]
and eax, 7
lea ebp, [eax + eax*2]
mov edi, dword [esp + ebp*4 + 0xc0]
lea eax, [esi + edi]
mov edx, dword [edx + 0x75ec]
cmp eax, edx
mov dword [esp], esi
jbe 0x56e8c0
lea eax, [esp + ebp*4]
add eax, 0xc0
mov dword [esp + 0x14], eax
mov ebx, edx
sub ebx, esi
mov dword [esp + 0x30], ebp
je 0x56ea59
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp ebx, eax
ja 0x5707dc
mov esi, ecx
mov eax, ecx
sub eax, dword [esp]
lea esi, [ecx + ebx]
mov dword [esp + 0x20], esi
cmp eax, 0xfffffff8
mov dword [esp + 0x28], ebx
jg 0x56ea60
cmp ebx, 7
jle 0x56ea60
cmp eax, 0xffffffef
ja 0x56ea93
mov eax, dword [esp + 0x20]
lea edx, [eax - 0x20]
mov eax, edx
sub eax, ecx
jb 0x56ea93
mov esi, dword [esp]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
mov dword [esp + 0x34], eax
cmp eax, 0x11
jl 0x56e7cf
mov eax, 0x10
movups xmm0, xmmword [esi + eax]
movups xmmword [ecx + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x10]
movups xmmword [ecx + eax + 0x10], xmm0
lea edi, [ecx + eax]
add edi, 0x20
add eax, 0x20
cmp edi, edx
jb 0x56e7b0
add esi, dword [esp + 0x34]
mov dword [esp], esi
jmp 0x56ea95
mov eax, dword [esp + 0x50]
and eax, 7
lea eax, [eax + eax*2]
mov edi, dword [esp + eax*4 + 0xc0]
mov edx, dword [esp + eax*4 + 0xc4]
mov dword [esp], edx
mov eax, dword [esp + eax*4 + 0xc8]
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x3c]
lea eax, [edi + ebp]
cmp eax, dword [esp + 0x28]
ja 0x56ef0b
mov edx, dword [esp]
lea ebx, [edx + edi]
lea edx, [ecx + ebx]
cmp edx, dword [esp + 0x9c]
ja 0x56ef0b
mov edx, dword [esp + 0x18]
sub edx, ecx
lea esi, [ebx + 0x20]
cmp edx, esi
jb 0x56ef0b
mov dword [esp + 0x20], ebx
lea esi, [ecx + edi]
movups xmm0, xmmword [ebp]
movups xmmword [ecx], xmm0
cmp edi, 0x11
jae 0x56f043
mov ebp, esi
mov edx, dword [esp + 0x14]
sub ebp, edx
mov dword [esp + 0x3c], eax
mov eax, esi
mov ecx, dword [esp + 0x1c]
sub eax, ecx
cmp eax, edx
jae 0x56e98d
mov dword [esp + 0x30], eax
mov eax, esi
sub eax, dword [esp + 0x48]
cmp eax, edx
jb 0x5707e3
sub ebp, ecx
mov edx, dword [esp + 0x44]
lea eax, [edx + ebp]
mov edi, dword [esp]
lea ecx, [eax + edi]
cmp ecx, edx
jbe 0x56e278
mov ecx, ebp
neg ecx
push ecx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub esi, ebp
mov ebx, ebp
add ebx, edi
mov ebp, dword [esp + 0x1c]
mov ecx, 0xffffffec
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
jmp 0x56e995
lea esi, [eax - 0x20]
mov edx, dword [esp + ebp*4 + 0xc4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + ebp*4 + 0xc8]
mov dword [esp + 0x30], edx
cmp eax, dword [esp + 0x28]
ja 0x56efd6
mov edx, dword [esp + 0x14]
lea ebp, [edx + edi]
lea edx, [ecx + ebp]
cmp edx, esi
ja 0x56efd6
mov edx, dword [esp + 0x18]
sub edx, ecx
lea ebx, [ebp + 0x20]
cmp edx, ebx
mov ecx, dword [esp + 0xc]
jb 0x56efd6
mov dword [esp + 0x20], ebp
lea esi, [ecx + edi]
mov ebp, dword [esp]
movups xmm0, xmmword [ebp]
movups xmmword [ecx], xmm0
cmp edi, 0x11
jae 0x56f0c7
mov ebp, esi
mov edx, dword [esp + 0x30]
sub ebp, edx
mov dword [esp + 0x3c], eax
mov edi, esi
mov ecx, dword [esp + 0x1c]
sub edi, ecx
cmp edi, edx
jae 0x56e9fb
mov eax, esi
sub eax, dword [esp + 0x48]
cmp eax, edx
jb 0x5707e3
sub ebp, ecx
mov edx, dword [esp + 0x44]
lea eax, [edx + ebp]
mov ebx, dword [esp + 0x14]
lea ecx, [eax + ebx]
cmp ecx, edx
jbe 0x56ea8d
mov dword [esp], edi
mov ecx, ebp
neg ecx
push ecx
push eax
push esi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub esi, ebp
mov edi, ebp
add edi, ebx
mov ebp, dword [esp + 0x1c]
mov ecx, 0xffffffec
mov edx, dword [esp + 0x30]
jmp 0x56ea07
mov ebx, dword [esp]
mov ecx, 0xffffffec
cmp edx, 0x10
jb 0x56f083
movups xmm0, xmmword [ebp]
movups xmmword [esi], xmm0
cmp ebx, 0x11
jl 0x56e288
add ebx, esi
mov eax, 0x10
mov edi, dword [esp + 0x10]
nop dword [eax]
movups xmm0, xmmword [ebp + eax]
movups xmmword [esi + eax], xmm0
movups xmm0, xmmword [ebp + eax + 0x10]
movups xmmword [esi + eax + 0x10], xmm0
lea ecx, [esi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, ebx
jb 0x56e9c0
mov ecx, 0xffffffec
mov ebx, dword [esp + 0x20]
cmp ebx, 0xffffff88
mov ebp, dword [esp + 0x50]
jbe 0x56e29d
jmp 0x570788
mov dword [esp], edi
mov edi, dword [esp + 0x14]
mov ecx, 0xffffffec
cmp edx, 0x10
jb 0x56f166
movups xmm0, xmmword [ebp]
movups xmmword [esi], xmm0
cmp edi, 0x11
jl 0x56e288
add edi, esi
mov eax, 0x10
movups xmm0, xmmword [ebp + eax]
movups xmmword [esi + eax], xmm0
movups xmm0, xmmword [ebp + eax + 0x10]
movups xmmword [esi + eax + 0x10], xmm0
lea ecx, [esi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, edi
jb 0x56ea27
jmp 0x56e283
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x34]
jmp 0x56e6d1
mov edx, ecx
jmp 0x56ed37
test ebx, ebx
jle 0x56ed23
mov edi, dword [esp + 0xc]
add edx, edi
mov ecx, dword [esp]
sub edx, ecx
lea ebp, [edi + 1]
cmp edx, ebp
mov ebx, ebp
cmova ebx, edx
sub ebx, edi
cmp ebx, 8
jae 0x56eac0
mov edx, edi
mov esi, ecx
jmp 0x56ed12
push ebx
jmp 0x56e279
mov edx, ecx
add ecx, ebx
sub ecx, edx
lea esi, [edx + ecx]
cmp ecx, 8
jae 0x56eaab
mov ebx, edx
mov ebp, dword [esp]
jmp 0x56ecf5
mov ebp, dword [esp]
lea eax, [ecx + ebp]
cmp edx, eax
jae 0x56eae8
cmp ebp, esi
jae 0x56eae8
mov ebx, edx
jmp 0x56ecf5
cmp edx, ebp
mov eax, ebp
cmova eax, edx
mov esi, eax
sub esi, edi
add esi, ecx
cmp edi, esi
jae 0x56ebe4
cmp ecx, eax
jae 0x56ebe4
mov edx, dword [esp + 0xc]
mov esi, ecx
jmp 0x56ed12
xor edi, edi
cmp ecx, 0x20
mov dword [esp + 0xc], ecx
jb 0x56ebb6
mov edi, ecx
and edi, 0xffffffe0
lea eax, [edi - 0x20]
mov ebp, eax
shr ebp, 5
add ebp, 1
mov ecx, ebp
and ecx, 3
xor ebx, ebx
cmp eax, 0x60
mov eax, dword [esp]
jb 0x56eb71
and ebp, 0xfffffffc
xor ebx, ebx
movups xmm0, xmmword [eax + ebx]
movups xmm1, xmmword [eax + ebx + 0x10]
movups xmmword [edx + ebx], xmm0
movups xmmword [edx + ebx + 0x10], xmm1
movups xmm0, xmmword [eax + ebx + 0x20]
movups xmm1, xmmword [eax + ebx + 0x30]
movups xmmword [edx + ebx + 0x20], xmm0
movups xmmword [edx + ebx + 0x30], xmm1
movups xmm0, xmmword [eax + ebx + 0x40]
movups xmm1, xmmword [eax + ebx + 0x50]
movups xmmword [edx + ebx + 0x40], xmm0
movups xmmword [edx + ebx + 0x50], xmm1
movups xmm0, xmmword [eax + ebx + 0x60]
movups xmm1, xmmword [eax + ebx + 0x70]
movups xmmword [edx + ebx + 0x60], xmm0
movups xmmword [edx + ebx + 0x70], xmm1
sub ebx, 0xffffff80
add ebp, 0xfffffffc
jne 0x56eb1b
test ecx, ecx
je 0x56eb9f
lea ebp, [eax + ebx]
add ebp, 0x10
add ebx, edx
add ebx, 0x10
shl ecx, 5
xor eax, eax
movups xmm0, xmmword [ebp + eax - 0x10]
movups xmm1, xmmword [ebp + eax]
movups xmmword [ebx + eax - 0x10], xmm0
movups xmmword [ebx + eax], xmm1
add eax, 0x20
cmp ecx, eax
jne 0x56eb85
cmp dword [esp + 0xc], edi
je 0x56ed23
mov ecx, dword [esp + 0xc]
test cl, 0x18
je 0x56ecec
mov eax, ecx
and eax, 0xfffffff8
lea ebx, [edx + eax]
mov ecx, dword [esp]
lea ebp, [ecx + eax]
movsd xmm0, qword [ecx + edi]
movsd qword [edx + edi], xmm0
add edi, 8
cmp eax, edi
jne 0x56ebc4
cmp dword [esp + 0xc], eax
jne 0x56ecf5
jmp 0x56ed23
xor edi, edi
cmp ebx, 0x20
jb 0x56ecbf
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], ebx
mov edi, ebx
and edi, 0xffffffe0
lea eax, [edi - 0x20]
mov ebp, eax
shr ebp, 5
add ebp, 1
mov esi, ebp
and esi, 3
mov dword [esp + 0x34], esi
xor esi, esi
cmp eax, 0x60
mov eax, dword [esp + 0xc]
jb 0x56ec76
and ebp, 0xfffffffc
xor esi, esi
movups xmm0, xmmword [ecx + esi]
movups xmm1, xmmword [ecx + esi + 0x10]
movups xmmword [eax + esi], xmm0
movups xmmword [eax + esi + 0x10], xmm1
movups xmm0, xmmword [ecx + esi + 0x20]
movups xmm1, xmmword [ecx + esi + 0x30]
movups xmmword [eax + esi + 0x20], xmm0
movups xmmword [eax + esi + 0x30], xmm1
movups xmm0, xmmword [ecx + esi + 0x40]
movups xmm1, xmmword [ecx + esi + 0x50]
movups xmmword [eax + esi + 0x40], xmm0
movups xmmword [eax + esi + 0x50], xmm1
movups xmm0, xmmword [ecx + esi + 0x60]
movups xmm1, xmmword [ecx + esi + 0x70]
movups xmmword [eax + esi + 0x60], xmm0
movups xmmword [eax + esi + 0x70], xmm1
sub esi, 0xffffff80
add ebp, 0xfffffffc
jne 0x56ec20
mov ebx, dword [esp + 0x34]
test ebx, ebx
je 0x56ecac
lea ebp, [ecx + esi]
add ebp, 0x10
mov eax, dword [esp + 0xc]
add esi, eax
add esi, 0x10
shl ebx, 5
xor eax, eax
movups xmm0, xmmword [ebp + eax - 0x10]
movups xmm1, xmmword [ebp + eax]
movups xmmword [esi + eax - 0x10], xmm0
movups xmmword [esi + eax], xmm1
add eax, 0x20
cmp ebx, eax
jne 0x56ec92
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x56ed23
test al, 0x18
je 0x56ed07
mov ecx, dword [esp]
mov ebp, dword [esp + 0x40]
cmp edx, ebp
cmova ebp, edx
mov eax, dword [esp + 0xc]
sub ebp, eax
mov ebx, ebp
and ebx, 0xfffffff8
lea edx, [eax + ebx]
lea esi, [ecx + ebx]
movsd xmm0, qword [ecx + edi]
movsd qword [eax + edi], xmm0
add edi, 8
cmp ebx, edi
jne 0x56ecd5
cmp ebp, ebx
jne 0x56ed12
jmp 0x56ed23
mov ebp, dword [esp]
add ebp, edi
add edx, edi
mov ebx, edx
movzx eax, byte [ebp]
add ebp, 1
mov byte [ebx], al
add ebx, 1
cmp ebx, esi
jne 0x56ecf5
jmp 0x56ed23
mov esi, dword [esp]
add esi, edi
mov edx, dword [esp + 0xc]
add edx, edi
movzx eax, byte [esi]
add esi, 1
mov byte [edx], al
add edx, 1
cmp edx, dword [esp + 0x20]
jb 0x56ed12
mov eax, dword [esp + 0x14]
mov edi, dword [eax]
sub edi, dword [esp + 0x28]
mov dword [eax], edi
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x134]
mov dword [eax + 0x75f0], 0
mov esi, dword [esp + ebp*4 + 0xc4]
mov eax, dword [esp + ebp*4 + 0xc8]
mov dword [esp + 0x28], eax
cmp edi, 0x10000
jg 0x56f00a
lea ebx, [esi + edi]
lea eax, [edx + ebx]
cmp eax, dword [esp + 0x9c]
ja 0x56f00a
mov eax, dword [esp + 0x18]
sub eax, edx
lea ecx, [ebx + 0x20]
cmp eax, ecx
jb 0x56f00a
mov dword [esp], esi
lea ebp, [edx + edi]
mov eax, dword [esp + 0x98]
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
cmp edi, 0x11
jae 0x56f10d
mov eax, dword [esp + 0x134]
add eax, edi
add eax, 0x75f4
mov esi, ebp
mov edi, dword [esp + 0x28]
sub esi, edi
mov dword [esp + 0x3c], eax
mov eax, ebp
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov dword [esp + 0x34], eax
cmp eax, edi
jae 0x56ee32
mov dword [esp + 0xc], ebx
mov dword [esp + 0x20], edx
mov eax, ebp
sub eax, dword [esp + 0x48]
cmp eax, edi
jb 0x5707e3
sub esi, ecx
mov edx, dword [esp + 0x44]
lea eax, [edx + esi]
mov edi, ecx
mov ebx, dword [esp]
lea ecx, [eax + ebx]
cmp ecx, edx
jbe 0x56ee8b
mov ecx, esi
neg ecx
push ecx
push eax
push ebp
call sub.msvcrt.dll_memmove
add esp, 0xc
sub ebp, esi
mov eax, edi
mov edi, esi
add edi, ebx
mov esi, eax
mov ecx, 0xffffffec
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
jmp 0x56ee3a
mov edi, dword [esp]
mov ecx, 0xffffffec
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x56f2e5
movups xmm0, xmmword [esi]
movups xmmword [ebp], xmm0
cmp edi, 0x11
jge 0x56ee59
mov edi, dword [esp + 0x10]
jmp 0x56eea7
add edi, ebp
mov eax, 0x10
movups xmm0, xmmword [esi + eax]
movups xmmword [ebp + eax], xmm0
movups xmm0, xmmword [esi + eax + 0x10]
movups xmmword [ebp + eax + 0x10], xmm0
lea ecx, [eax + ebp]
add ecx, 0x20
add eax, 0x20
cmp ecx, edi
jb 0x56ee60
mov ecx, 0xffffffec
mov edi, dword [esp + 0x10]
jmp 0x56eea7
push ebx
push eax
push ebp
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ecx, 0xffffffec
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
cmp ebx, 0xffffff88
mov ebp, dword [esp + 0x50]
ja 0x570788
mov esi, dword [esp + 0x94]
add edi, esi
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 4]
cmp edi, ebx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x44]
add eax, edi
sub eax, ebx
prefetcht0 byte [eax]
prefetcht0 byte [eax + 0x40]
mov eax, dword [esp + 0x14]
mov dword [eax], esi
mov eax, dword [esp + 0x30]
lea eax, [esp + eax*4 + 0xc4]
mov esi, dword [esp + 8]
mov dword [eax], esi
mov dword [eax + 4], ebx
add edx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x28], eax
mov eax, edx
jmp 0x56e2e7
mov edx, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x34]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x28]
push dword [esp + 0x18]
push edi
call fcn.005b5500
add esp, 0x20
mov dword [esp + 0x20], eax
jmp 0x56e283
mov esi, dword [esp + 8]
xor eax, eax
cmp dword [esp + 0x94], 0
sete al
test edx, edx
jne 0x56f74a
xor ecx, ecx
cmp dword [esp + 0x94], 0
setne cl
mov edi, dword [esp + eax*4 + 0x80]
mov eax, dword [esp + ecx*4 + 0x80]
mov dword [esp + 0x84], eax
mov ebp, dword [esp]
mov edx, dword [esp + 0x14]
jmp 0x56e56e
mov edx, dword [esp + 0x54]
mov ecx, ebx
shl edx, cl
mov ecx, dword [esp + 0x30]
neg cl
shr edx, cl
add ebx, dword [esp + 0x30]
add esi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 8], esi
cmp eax, 0x14
jae 0x56e58d
jmp 0x56e5da
mov eax, dword [esp + 0x54]
mov ecx, ebx
shl eax, cl
mov ecx, edx
neg cl
shr eax, cl
add ebx, edx
add dword [esp + 0x94], eax
cmp ebx, 0x20
jbe 0x56e5e7
jmp 0x56e627
mov edx, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x34]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x44]
push dword [esp + 0x2c]
push edi
push esi
call fcn.005b6020
add esp, 0x24
mov dword [esp + 0x20], eax
jmp 0x56e283
mov ecx, edx
mov ebx, esi
mov esi, edx
mov edx, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x98]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x3c]
push ebx
push edi
call fcn.005b5500
mov edx, esi
add esp, 0x20
mov ebx, eax
jmp 0x56ee80
mov ebx, ecx
add edi, 0xfffffff0
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [ecx + 0x10], xmm0
cmp edi, 0x11
jl 0x56e850
lea edx, [ebx + 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 0x56f05e
jmp 0x56e850
mov dword [esp + 0x30], eax
cmp edx, 7
ja 0x56f1a6
mov al, byte [ebp]
mov byte [esi], al
mov al, byte [ebp + 1]
mov byte [esi + 1], al
mov al, byte [ebp + 2]
mov byte [esi + 2], al
mov al, byte [ebp + 3]
mov byte [esi + 3], al
mov edx, dword [esp + 0x14]
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [ebp + eax]
add ebp, eax
mov dword [esi + 4], ecx
sub ebp, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x56f1af
add edi, 0xfffffff0
movups xmm0, xmmword [ebp + 0x10]
mov edx, dword [esp + 0xc]
movups xmmword [edx + 0x10], xmm0
cmp edi, 0x11
jl 0x56e924
mov edx, dword [esp + 0xc]
add edx, 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 0x56f0e8
jmp 0x56e924
lea eax, [edi - 0x10]
mov ecx, dword [esp + 0x134]
movups xmm0, xmmword [ecx + 0x7604]
movups xmmword [edx + 0x10], xmm0
cmp eax, 0x11
jl 0x56edb1
lea eax, [edx + 0x20]
xor ecx, ecx
mov esi, edx
mov edx, dword [esp + 0x134]
movups xmm0, xmmword [edx + ecx + 0x7614]
movups xmmword [eax + ecx], xmm0
movups xmm0, xmmword [edx + ecx + 0x7624]
movups xmmword [eax + ecx + 0x10], xmm0
lea edx, [eax + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, ebp
mov edx, esi
jb 0x56f130
jmp 0x56edb1
cmp edx, 7
ja 0x56f32c
mov al, byte [ebp]
mov byte [esi], al
mov al, byte [ebp + 1]
mov byte [esi + 1], al
mov al, byte [ebp + 2]
mov byte [esi + 2], al
mov al, byte [ebp + 3]
mov byte [esi + 3], al
mov edx, dword [esp + 0x30]
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [ebp + eax]
add ebp, eax
mov dword [esi + 4], ecx
sub ebp, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x56f335
movsd xmm0, qword [ebp]
movsd qword [esi], xmm0
cmp ebx, 9
jb 0x56e283
lea ecx, [ebp + 8]
lea edx, [esi + 8]
mov eax, edx
sub eax, ecx
lea edi, [esi + ebx]
mov dword [esp + 0x34], edi
cmp eax, 0xf
jg 0x56f46f
mov eax, dword [esp]
add eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
cmp ebx, edi
mov esi, edi
cmovb esi, ebx
cmova edi, ebx
mov dword [esp], eax
add esi, eax
add esi, edi
sub esi, ebx
mov ebx, dword [esp + 0x1c]
lea eax, [edi + ebx]
add eax, 0x10
cmp esi, eax
cmovbe esi, eax
mov dword [esp + 0x40], edi
sub esi, edi
sub esi, ebx
add esi, 0xfffffff7
mov dword [esp + 0x2c], esi
cmp esi, 0x18
jb 0x56f69c
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
cmp esi, eax
mov ebx, eax
cmova ebx, esi
cmovb eax, esi
mov edi, dword [esp]
add edi, eax
add edi, ebx
sub edi, esi
mov eax, dword [esp + 0x1c]
lea esi, [ebx + eax]
add eax, ebx
add eax, 0x10
cmp edi, eax
cmovbe edi, eax
sub edi, esi
add edi, 0xfffffff7
and edi, 0xfffffff8
lea eax, [edi + ebp]
add eax, 0x10
cmp edx, eax
jae 0x56f269
mov ebx, edi
lea eax, [edi + esi]
add eax, 0x10
cmp ecx, eax
jb 0x56f69c
mov eax, dword [esp + 0x2c]
shr eax, 3
add eax, 1
mov dword [esp + 0x2c], eax
and eax, 0xfffffffc
mov dword [esp + 0x14], eax
add eax, 0xfffffffc
mov esi, eax
shr esi, 2
add esi, 1
mov dword [esp], esi
test eax, eax
je 0x56f66a
mov ebx, dword [esp]
and ebx, 0xfffffffe
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0xc]
lea esi, [edi + eax]
mov eax, dword [esp + 0x40]
sub eax, edi
add eax, esi
xor edi, edi
movups xmm0, xmmword [ebp + edi*8 + 8]
movups xmm1, xmmword [ebp + edi*8 + 0x18]
mov esi, eax
movups xmmword [eax + edi*8 - 0x30], xmm0
movups xmmword [eax + edi*8 - 0x20], xmm1
movups xmm0, xmmword [ebp + edi*8 + 0x28]
movups xmm1, xmmword [ebp + edi*8 + 0x38]
movups xmmword [eax + edi*8 - 0x10], xmm0
movups xmmword [eax + edi*8], xmm1
add edi, 8
add ebx, 0xfffffffe
jne 0x56f2af
jmp 0x56f66c
mov dword [esp + 0xc], ebx
mov dword [esp + 0x20], edx
cmp eax, 7
ja 0x56f4aa
mov al, byte [esi]
mov byte [ebp], al
mov al, byte [esi + 1]
mov byte [ebp + 1], al
mov al, byte [esi + 2]
mov byte [ebp + 2], al
mov al, byte [esi + 3]
mov byte [ebp + 3], al
mov edx, dword [esp + 0x28]
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [esi + eax]
add esi, eax
mov dword [ebp + 4], ecx
sub esi, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x56f4b3
movsd xmm0, qword [ebp]
movsd qword [esi], xmm0
cmp edi, 9
jb 0x56e283
lea ecx, [ebp + 8]
lea edx, [esi + 8]
mov eax, edx
sub eax, ecx
lea ebx, [esi + edi]
mov dword [esp + 0x34], ebx
cmp eax, 0xf
jg 0x56f5f3
mov edi, dword [esp + 0x14]
add edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp]
cmp ebx, eax
mov esi, eax
cmovb esi, ebx
mov dword [esp], eax
cmova eax, ebx
mov dword [esp + 0x14], edi
add esi, edi
add esi, eax
sub esi, ebx
mov ebx, dword [esp + 0x1c]
lea edi, [eax + ebx]
add edi, 0x10
cmp esi, edi
cmovbe esi, edi
mov dword [esp + 0x40], eax
add eax, ebx
sub esi, eax
add esi, 0xfffffff7
mov dword [esp + 0x2c], esi
cmp esi, 0x18
jb 0x56f6e7
mov esi, dword [esp + 0x30]
mov eax, dword [esp]
cmp esi, eax
mov ebx, eax
cmova ebx, esi
cmovb eax, esi
mov edi, dword [esp + 0x14]
add edi, eax
add edi, ebx
sub edi, esi
mov eax, dword [esp + 0x1c]
lea esi, [ebx + eax]
add eax, ebx
add eax, 0x10
cmp edi, eax
cmovbe edi, eax
sub edi, esi
add edi, 0xfffffff7
and edi, 0xfffffff8
lea eax, [edi + ebp]
add eax, 0x10
cmp edx, eax
jae 0x56f3f3
mov ebx, edi
lea eax, [edi + esi]
add eax, 0x10
cmp ecx, eax
jb 0x56f6e7
mov eax, dword [esp + 0x2c]
shr eax, 3
add eax, 1
mov dword [esp + 0x2c], eax
and eax, 0xfffffffc
mov dword [esp + 0x14], eax
add eax, 0xfffffffc
mov esi, eax
shr esi, 2
add esi, 1
mov dword [esp], esi
test eax, eax
je 0x56f6b5
mov ebx, dword [esp]
and ebx, 0xfffffffe
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0xc]
lea esi, [edi + eax]
mov eax, dword [esp + 0x40]
sub eax, edi
add eax, esi
xor edi, edi
movups xmm0, xmmword [ebp + edi*8 + 8]
movups xmm1, xmmword [ebp + edi*8 + 0x18]
mov esi, eax
movups xmmword [eax + edi*8 - 0x30], xmm0
movups xmmword [eax + edi*8 - 0x20], xmm1
movups xmm0, xmmword [ebp + edi*8 + 0x28]
movups xmm1, xmmword [ebp + edi*8 + 0x38]
movups xmmword [eax + edi*8 - 0x10], xmm0
movups xmmword [eax + edi*8], xmm1
add edi, 8
add ebx, 0xfffffffe
jne 0x56f439
jmp 0x56f6b7
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp ebx, 0x19
jl 0x56e283
add esi, 0x18
xor ecx, ecx
movups xmm0, xmmword [ebp + ecx + 0x18]
movups xmmword [esi + ecx], xmm0
movups xmm0, xmmword [ebp + ecx + 0x28]
movups xmmword [esi + ecx + 0x10], xmm0
lea eax, [esi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x34]
jb 0x56f483
jmp 0x56e283
movsd xmm0, qword [esi]
movsd qword [ebp], xmm0
cmp edi, 9
jb 0x56ee96
lea ecx, [esi + 8]
lea edx, [ebp + 8]
mov eax, edx
sub eax, ecx
lea ebx, [edi + ebp]
mov dword [esp + 0x2c], ebx
cmp eax, 0xf
jg 0x56f62e
mov eax, dword [esp]
add eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
cmp ebx, edi
mov ebp, edi
cmovb ebp, ebx
cmova edi, ebx
mov dword [esp], eax
add ebp, eax
add ebp, edi
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
lea eax, [edi + ebx]
add eax, 0x10
cmp ebp, eax
cmovbe ebp, eax
mov dword [esp + 0xa4], edi
sub ebp, edi
sub ebp, ebx
add ebp, 0xfffffff7
mov dword [esp + 0x40], ebp
cmp ebp, 0x18
jb 0x56f731
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
cmp ebp, eax
mov edi, eax
cmova edi, ebp
cmovb eax, ebp
mov ebx, dword [esp]
add ebx, eax
add ebx, edi
sub ebx, ebp
mov eax, dword [esp + 0x1c]
lea ebp, [edi + eax]
add eax, edi
add eax, 0x10
cmp ebx, eax
cmovbe ebx, eax
sub ebx, ebp
add ebx, 0xfffffff7
and ebx, 0xfffffff8
mov dword [esp], ebx
lea eax, [ebx + esi]
add eax, 0x10
cmp edx, eax
jae 0x56f573
mov eax, dword [esp]
add eax, ebp
add eax, 0x10
cmp ecx, eax
jb 0x56f731
mov eax, dword [esp + 0x40]
shr eax, 3
add eax, 1
mov dword [esp + 0x40], eax
and eax, 0xfffffffc
mov dword [esp], eax
add eax, 0xfffffffc
mov edi, eax
shr edi, 2
add edi, 1
mov dword [esp + 0x28], edi
test eax, eax
je 0x56f700
mov ebx, dword [esp + 0x28]
and ebx, 0xfffffffe
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x20]
lea ebp, [edi + eax]
mov eax, dword [esp + 0xa4]
sub eax, edi
add eax, ebp
xor edi, edi
movups xmm0, xmmword [esi + edi*8 + 8]
movups xmm1, xmmword [esi + edi*8 + 0x18]
mov ebp, eax
movups xmmword [eax + edi*8 - 0x30], xmm0
movups xmmword [eax + edi*8 - 0x20], xmm1
movups xmm0, xmmword [esi + edi*8 + 0x28]
movups xmm1, xmmword [esi + edi*8 + 0x38]
movups xmmword [eax + edi*8 - 0x10], xmm0
movups xmmword [eax + edi*8], xmm1
add edi, 8
add ebx, 0xfffffffe
jne 0x56f5bd
jmp 0x56f702
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp edi, 0x19
jl 0x56e283
add esi, 0x18
xor ecx, ecx
movups xmm0, xmmword [ebp + ecx + 0x18]
movups xmmword [esi + ecx], xmm0
movups xmm0, xmmword [ebp + ecx + 0x28]
movups xmmword [esi + ecx + 0x10], xmm0
lea eax, [esi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x34]
jb 0x56f607
jmp 0x56e283
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp edi, 0x19
jl 0x56ee96
add ebp, 0x18
xor ecx, ecx
movups xmm0, xmmword [esi + ecx + 0x18]
movups xmmword [ebp + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x28]
movups xmmword [ebp + ecx + 0x10], xmm0
lea eax, [ecx + ebp]
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x2c]
jb 0x56f642
jmp 0x56ee96
xor edi, edi
test byte [esp], 1
je 0x56f684
movups xmm0, xmmword [ecx + edi*8]
movups xmm1, xmmword [ecx + edi*8 + 0x10]
movups xmmword [edx + edi*8], xmm0
movups xmmword [edx + edi*8 + 0x10], xmm1
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x2c], eax
je 0x56e283
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, dword [esp + 0x34]
jb 0x56f69c
jmp 0x56e283
xor edi, edi
test byte [esp], 1
je 0x56f6cf
movups xmm0, xmmword [ecx + edi*8]
movups xmm1, xmmword [ecx + edi*8 + 0x10]
movups xmmword [edx + edi*8], xmm0
movups xmmword [edx + edi*8 + 0x10], xmm1
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x2c], eax
je 0x56e283
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, dword [esp + 0x34]
jb 0x56f6e7
jmp 0x56e283
xor edi, edi
test byte [esp + 0x28], 1
je 0x56f71b
movups xmm0, xmmword [ecx + edi*8]
movups xmm1, xmmword [ecx + edi*8 + 0x10]
movups xmmword [edx + edi*8], xmm0
movups xmmword [edx + edi*8 + 0x10], xmm1
mov eax, dword [esp]
cmp dword [esp + 0x40], eax
je 0x56ee96
mov eax, dword [esp]
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, dword [esp + 0x2c]
jb 0x56f731
jmp 0x56ee96
add ebp, eax
mov eax, dword [esp + 0x54]
mov ecx, ebx
shl eax, cl
shr eax, 0x1f
add ecx, 1
mov ebx, ecx
mov dword [esp + 0x58], ecx
add eax, ebp
cmp eax, 3
jne 0x56f779
mov edi, dword [esp + 0x80]
add edi, 0xffffffff
cmp edi, 1
adc edi, 0
jmp 0x56f78b
mov edi, dword [esp + eax*4 + 0x80]
cmp edi, 1
adc edi, 0
cmp eax, 1
je 0x56f799
mov eax, dword [esp + 0x84]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x80]
jmp 0x56ef72
cmp ebp, ebx
jl 0x57078a
sub ebp, dword [esp + 0xb0]
cmp ebp, ebx
jge 0x570797
mov eax, dword [esp + 0x134]
add eax, 0x175f4
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
add eax, 0x10
mov dword [esp + 0x2c], eax
mov eax, ebp
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x50], eax
and eax, 7
lea edi, [eax + eax*2]
lea ebx, [esp + edi*4]
add ebx, 0xc0
mov eax, dword [esp + 0x134]
cmp dword [eax + 0x75f0], 2
mov dword [esp + 0xc], ecx
jne 0x56f8c5
mov esi, dword [esp + 0x3c]
mov ebp, dword [ebx]
lea edx, [esi + ebp]
mov eax, dword [eax + 0x75ec]
cmp edx, eax
jbe 0x56f99a
mov edx, eax
sub edx, esi
je 0x56fb08
mov dword [esp + 0x28], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp edx, eax
ja 0x5707dc
mov ebp, edx
mov eax, ecx
sub eax, esi
add edx, ecx
cmp eax, 0xfffffff8
mov dword [esp + 0x38], edx
mov dword [esp + 8], edi
mov dword [esp + 0x10], ebp
jg 0x56fb11
cmp ebp, 7
jle 0x56fb11
cmp eax, 0xffffffef
ja 0x56fba7
lea eax, [edx - 0x20]
mov ebx, eax
mov edi, ecx
mov edx, esi
mov dword [esp + 0x14], ecx
sub ebx, ecx
jb 0x56fbaf
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp ebx, 0x11
jl 0x56f8b6
mov edx, 0x10
movups xmm0, xmmword [esi + edx]
movups xmmword [ecx + edx], xmm0
movups xmm0, xmmword [esi + edx + 0x10]
movups xmmword [ecx + edx + 0x10], xmm0
lea edi, [ecx + edx]
add edi, 0x20
add edx, 0x20
cmp edi, eax
jb 0x56f897
add ebx, esi
mov edi, eax
mov edx, ebx
mov dword [esp + 0x14], eax
jmp 0x56fbaf
mov esi, dword [ebx]
mov eax, dword [esp + edi*4 + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + edi*4 + 0xc8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
lea edx, [eax + esi]
mov dword [esp + 0x10], edx
cmp edx, dword [esp + 0x28]
ja 0x56ffc4
mov edx, dword [esp + 4]
lea ebx, [edx + esi]
lea edx, [ecx + ebx]
cmp edx, dword [esp + 0x9c]
ja 0x56ffc4
mov edx, ebp
sub edx, ecx
lea edi, [ebx + 0x20]
cmp edx, edi
jb 0x56ffc4
mov dword [esp + 0x38], ebx
lea edi, [ecx + esi]
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
cmp esi, 0x11
jae 0x570072
mov ebx, edi
mov ebp, dword [esp + 8]
sub ebx, ebp
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov esi, edi
mov ecx, dword [esp + 0x1c]
sub esi, ecx
cmp esi, ebp
jae 0x56fa6a
mov eax, edi
sub eax, dword [esp + 0x48]
cmp eax, ebp
jb 0x5707e3
sub ebx, ecx
mov edx, dword [esp + 0x44]
lea eax, [edx + ebx]
mov ebp, dword [esp + 4]
lea ecx, [eax + ebp]
cmp ecx, edx
jbe 0x56fb05
mov dword [esp + 0x10], esi
mov ecx, ebx
neg ecx
push ecx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub edi, ebx
mov esi, ebx
add esi, ebp
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
jmp 0x56fa72
mov dword [esp + 0x10], esi
lea ebx, [edx - 0x20]
mov eax, dword [esp + edi*4 + 0xc4]
mov dword [esp + 4], eax
mov eax, dword [esp + edi*4 + 0xc8]
mov dword [esp + 8], eax
cmp edx, dword [esp + 0x28]
ja 0x56fff5
mov eax, dword [esp + 4]
add eax, ebp
lea edi, [ecx + eax]
cmp edi, ebx
ja 0x56fff5
mov esi, ebx
mov ebx, dword [esp + 0x18]
sub ebx, ecx
lea edi, [eax + 0x20]
cmp ebx, edi
mov ebx, esi
jb 0x56fff5
mov dword [esp + 0x38], eax
lea edi, [ecx + ebp]
mov esi, dword [esp + 0x10]
movups xmm0, xmmword [esi]
movups xmmword [ecx], xmm0
cmp ebp, 0x11
jae 0x5700f6
mov ebx, edi
mov esi, dword [esp + 8]
sub ebx, esi
mov dword [esp + 0x3c], edx
mov ebp, edi
mov ecx, dword [esp + 0x1c]
sub ebp, ecx
cmp ebp, esi
jae 0x56fab9
mov eax, edi
sub eax, dword [esp + 0x48]
cmp eax, esi
jb 0x5707e3
sub ebx, ecx
mov edx, dword [esp + 0x44]
lea eax, [edx + ebx]
mov esi, dword [esp + 4]
lea ecx, [eax + esi]
cmp ecx, edx
jbe 0x56fb3f
mov dword [esp + 0x10], ebp
mov ecx, ebx
neg ecx
push ecx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub edi, ebx
mov ebp, ebx
add ebp, esi
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 8]
jmp 0x56fac5
mov dword [esp + 0x10], esi
mov esi, dword [esp + 4]
cmp ebp, 0x10
mov edx, dword [esp + 0x24]
jb 0x5700b8
movups xmm0, xmmword [ebx]
movups xmmword [edi], xmm0
cmp esi, 0x11
jl 0x56faff
add esi, edi
mov eax, 0x10
mov ebp, dword [esp + 0x18]
movups xmm0, xmmword [ebx + eax]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [ebx + eax + 0x10]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, esi
jb 0x56fa95
jmp 0x56fb52
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 4]
mov edx, dword [esp + 0x24]
cmp esi, 0x10
jb 0x57019d
movups xmm0, xmmword [ebx]
movups xmmword [edi], xmm0
cmp ebp, 0x11
jl 0x56faff
add ebp, edi
mov eax, 0x10
movups xmm0, xmmword [ebx + eax]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [ebx + eax + 0x10]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, ebp
jb 0x56fae0
mov ebp, dword [esp + 0x18]
jmp 0x56fb52
push ebp
jmp 0x56fb40
mov edx, dword [esp + 0x24]
jmp 0x56fe38
test ebp, ebp
jle 0x56fe20
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
add eax, edx
sub eax, esi
lea ebp, [edx + 1]
cmp eax, ebp
mov ebx, ebp
cmova ebx, eax
sub ebx, edx
cmp ebx, 8
jae 0x56fb79
mov ebx, edx
mov eax, esi
jmp 0x56fe0f
push esi
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
cmp eax, 0xffffff88
mov ecx, dword [esp + 0xc]
ja 0x56d8e9
add ecx, eax
mov eax, dword [esp + 0x50]
add eax, 1
cmp eax, edx
jne 0x56f7e1
jmp 0x57079f
cmp eax, ebp
mov ecx, eax
mov eax, ebp
mov dword [esp + 0x28], ecx
cmova eax, ecx
mov ecx, eax
sub ecx, edx
add ecx, esi
cmp edx, ecx
jae 0x56fd05
cmp esi, eax
jae 0x56fd05
mov ebx, dword [esp + 0xc]
mov eax, esi
jmp 0x56fe0f
mov edi, ecx
mov edx, esi
mov dword [esp + 0x14], ecx
lea eax, [ecx + ebp]
mov ecx, dword [esp + 0x14]
sub eax, ecx
lea ebx, [edi + eax]
cmp eax, 8
jb 0x56fbce
mov dword [esp + 0x40], eax
add eax, edx
cmp edi, eax
jae 0x56fbe6
cmp edx, ebx
jae 0x56fbe6
mov esi, edi
mov eax, edx
movzx ecx, byte [eax]
add eax, 1
mov byte [esi], cl
add esi, 1
cmp esi, ebx
jne 0x56fbd2
jmp 0x56fe20
xor ebp, ebp
mov eax, dword [esp + 0x40]
cmp eax, 0x20
jb 0x56fcc8
mov ebp, eax
and ebp, 0xffffffe0
lea ecx, [ebp - 0x20]
mov dword [esp + 0x30], ecx
shr ecx, 5
add ecx, 1
mov eax, ecx
and eax, 3
mov dword [esp], eax
xor eax, eax
cmp dword [esp + 0x30], 0x60
jb 0x56fc73
and ecx, 0xfffffffc
xor eax, eax
movups xmm0, xmmword [edx + eax]
movups xmm1, xmmword [edx + eax + 0x10]
movups xmmword [edi + eax], xmm0
movups xmmword [edi + eax + 0x10], xmm1
movups xmm0, xmmword [edx + eax + 0x20]
movups xmm1, xmmword [edx + eax + 0x30]
movups xmmword [edi + eax + 0x20], xmm0
movups xmmword [edi + eax + 0x30], xmm1
movups xmm0, xmmword [edx + eax + 0x40]
movups xmm1, xmmword [edx + eax + 0x50]
movups xmmword [edi + eax + 0x40], xmm0
movups xmmword [edi + eax + 0x50], xmm1
movups xmm0, xmmword [edx + eax + 0x60]
movups xmm1, xmmword [edx + eax + 0x70]
movups xmmword [edi + eax + 0x60], xmm0
movups xmmword [edi + eax + 0x70], xmm1
sub eax, 0xffffff80
add ecx, 0xfffffffc
jne 0x56fc1d
cmp dword [esp], 0
je 0x56fcb4
lea ecx, [edx + eax]
add ecx, 0x10
mov dword [esp + 0x30], ecx
add eax, edi
add eax, 0x10
mov dword [esp + 0x34], eax
shl dword [esp], 5
xor ecx, ecx
mov eax, dword [esp + 0x30]
movups xmm0, xmmword [eax + ecx - 0x10]
movups xmm1, xmmword [eax + ecx]
mov eax, dword [esp + 0x34]
movups xmmword [eax + ecx - 0x10], xmm0
movups xmmword [eax + ecx], xmm1
add ecx, 0x20
cmp dword [esp], ecx
jne 0x56fc92
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x56fe20
test al, 0x18
je 0x56fdfc
mov ecx, dword [esp + 0xc]
add ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
add eax, esi
sub ecx, eax
mov dword [esp + 0xc], ecx
and ecx, 0xfffffff8
lea esi, [edi + ecx]
lea eax, [edx + ecx]
movsd xmm0, qword [edx + ebp]
movsd qword [edi + ebp], xmm0
add ebp, 8
cmp ecx, ebp
jne 0x56fce5
cmp dword [esp + 0xc], ecx
jne 0x56fbd2
jmp 0x56fe20
xor edi, edi
cmp ebx, 0x20
jb 0x56fdcb
mov dword [esp], ebp
mov edi, ebx
and edi, 0xffffffe0
lea eax, [edi - 0x20]
mov ebp, eax
shr ebp, 5
add ebp, 1
mov edx, ebp
and edx, 3
xor ecx, ecx
cmp eax, 0x60
mov eax, dword [esp + 0xc]
jb 0x56fd8e
and ebp, 0xfffffffc
xor ecx, ecx
movups xmm0, xmmword [esi + ecx]
movups xmm1, xmmword [esi + ecx + 0x10]
movups xmmword [eax + ecx], xmm0
movups xmmword [eax + ecx + 0x10], xmm1
movups xmm0, xmmword [esi + ecx + 0x20]
movups xmm1, xmmword [esi + ecx + 0x30]
movups xmmword [eax + ecx + 0x20], xmm0
movups xmmword [eax + ecx + 0x30], xmm1
movups xmm0, xmmword [esi + ecx + 0x40]
movups xmm1, xmmword [esi + ecx + 0x50]
movups xmmword [eax + ecx + 0x40], xmm0
movups xmmword [eax + ecx + 0x50], xmm1
movups xmm0, xmmword [esi + ecx + 0x60]
movups xmm1, xmmword [esi + ecx + 0x70]
movups xmmword [eax + ecx + 0x60], xmm0
movups xmmword [eax + ecx + 0x70], xmm1
sub ecx, 0xffffff80
add ebp, 0xfffffffc
jne 0x56fd38
test edx, edx
je 0x56fdbf
lea eax, [esi + ecx]
add eax, 0x10
mov ebp, dword [esp + 0xc]
add ecx, ebp
add ecx, 0x10
shl edx, 5
xor ebp, ebp
movups xmm0, xmmword [eax + ebp - 0x10]
movups xmm1, xmmword [eax + ebp]
movups xmmword [ecx + ebp - 0x10], xmm0
movups xmmword [ecx + ebp], xmm1
add ebp, 0x20
cmp edx, ebp
jne 0x56fda6
cmp ebx, edi
je 0x56fe20
test bl, 0x18
je 0x56fe05
mov ebp, dword [esp]
mov eax, dword [esp + 0x28]
cmp eax, ebp
cmova ebp, eax
mov edx, dword [esp + 0xc]
sub ebp, edx
mov ecx, ebp
and ecx, 0xfffffff8
lea ebx, [edx + ecx]
lea eax, [esi + ecx]
movsd xmm0, qword [esi + edi]
movsd qword [edx + edi], xmm0
add edi, 8
cmp ecx, edi
jne 0x56fde5
cmp ebp, ecx
jne 0x56fe0f
jmp 0x56fe20
add edx, ebp
add edi, ebp
jmp 0x56fbce
mov eax, esi
add eax, edi
mov ebx, dword [esp + 0xc]
add ebx, edi
movzx ecx, byte [eax]
add eax, 1
mov byte [ebx], cl
add ebx, 1
cmp ebx, dword [esp + 0x38]
jb 0x56fe0f
mov eax, dword [esp + 4]
mov ebp, dword [eax]
sub ebp, dword [esp + 0x10]
mov dword [eax], ebp
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x98]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x134]
mov dword [eax + 0x75f0], 0
mov ebx, dword [esp + edi*4 + 0xc4]
mov eax, dword [esp + edi*4 + 0xc8]
mov dword [esp + 4], eax
cmp ebp, 0x10000
mov dword [esp + 0x38], ecx
jg 0x57002b
lea edi, [ebx + ebp]
lea eax, [ecx + edi]
cmp eax, dword [esp + 0x9c]
ja 0x57002b
mov eax, dword [esp + 0x18]
sub eax, ecx
lea esi, [edi + 0x20]
cmp eax, esi
jb 0x57002b
mov dword [esp + 0x10], ebx
mov dword [esp + 8], edi
lea edi, [ecx + ebp]
mov eax, dword [esp + 0x98]
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
cmp ebp, 0x11
mov esi, dword [esp + 4]
jae 0x57013c
mov eax, dword [esp + 0x134]
add eax, ebp
add eax, 0x75f4
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x3c], eax
mov ebp, edi
mov ecx, dword [esp + 0x1c]
sub ebp, ecx
cmp ebp, esi
jae 0x56ff2a
mov eax, edi
sub eax, dword [esp + 0x48]
cmp eax, esi
jb 0x5707e3
sub ebx, ecx
mov edx, dword [esp + 0x44]
lea eax, [edx + ebx]
mov esi, dword [esp + 0x10]
lea ecx, [eax + esi]
cmp ecx, edx
jbe 0x56ff82
mov dword [esp + 0xc], ebp
mov ecx, ebx
neg ecx
push ecx
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
sub edi, ebx
mov ebp, ebx
add ebp, esi
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 4]
jmp 0x56ff32
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x10]
cmp esi, 0x10
jb 0x570326
movups xmm0, xmmword [ebx]
movups xmmword [edi], xmm0
cmp ebp, 0x11
jl 0x56ff6c
add ebp, edi
mov eax, 0x10
movups xmm0, xmmword [ebx + eax]
movups xmmword [edi + eax], xmm0
movups xmm0, xmmword [ebx + eax + 0x10]
movups xmmword [edi + eax + 0x10], xmm0
lea ecx, [edi + eax]
add ecx, 0x20
add eax, 0x20
cmp ecx, ebp
jb 0x56ff4d
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 8]
cmp eax, 0xffffff89
mov ecx, dword [esp + 0x38]
jb 0x56ffa6
jmp 0x56d8e9
push esi
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 8]
cmp eax, 0xffffff89
mov ecx, dword [esp + 0x38]
jae 0x56d8e9
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
add eax, 1
cmp eax, edx
jne 0x56f7e1
jmp 0x57079f
mov edx, ebp
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x34]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push esi
call fcn.005b5500
add esp, 0x20
mov dword [esp + 0x38], eax
jmp 0x56fb4e
mov edx, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x34]
lea esi, [esp + 0x4c]
push esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push ebp
mov ebp, edx
push ebx
call fcn.005b6020
add esp, 0x24
mov dword [esp + 0x38], eax
jmp 0x56fb4e
mov edx, dword [esp + 0x18]
push dword [esp + 0x44]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x2c]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x18]
push ebx
push ebp
mov ebp, edx
call fcn.005b5500
mov edx, dword [esp + 0x44]
add esp, 0x20
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp eax, 0xffffff89
mov ecx, dword [esp + 0x38]
jb 0x56ffa6
jmp 0x56d8e9
add esi, 0xfffffff0
movups xmm0, xmmword [eax + 0x10]
mov ecx, dword [esp + 0xc]
movups xmmword [ecx + 0x10], xmm0
cmp esi, 0x11
jl 0x56f92e
mov ecx, dword [esp + 0xc]
lea edx, [ecx + 0x20]
xor esi, esi
movups xmm0, xmmword [eax + esi + 0x20]
movups xmmword [edx + esi], xmm0
movups xmm0, xmmword [eax + esi + 0x30]
movups xmmword [edx + esi + 0x10], xmm0
lea ebx, [edx + esi]
add ebx, 0x20
add esi, 0x20
cmp ebx, edi
jb 0x570093
jmp 0x56f92e
cmp ebp, 7
ja 0x5701db
mov al, byte [ebx]
mov byte [edi], al
mov al, byte [ebx + 1]
mov byte [edi + 1], al
mov al, byte [ebx + 2]
mov byte [edi + 2], al
mov al, byte [ebx + 3]
mov byte [edi + 3], al
mov edx, dword [esp + 8]
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [ebx + eax]
add ebx, eax
mov dword [edi + 4], ecx
sub ebx, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x5701e3
add ebp, 0xfffffff0
movups xmm0, xmmword [esi + 0x10]
mov eax, dword [esp + 0xc]
movups xmmword [eax + 0x10], xmm0
cmp ebp, 0x11
jl 0x56fa01
mov eax, dword [esp + 0xc]
add eax, 0x20
xor ecx, ecx
movups xmm0, xmmword [esi + ecx + 0x20]
movups xmmword [eax + ecx], xmm0
movups xmm0, xmmword [esi + ecx + 0x30]
movups xmmword [eax + ecx + 0x10], xmm0
lea ebx, [eax + ecx]
add ebx, 0x20
add ecx, 0x20
cmp ebx, edi
jb 0x570117
jmp 0x56fa01
lea eax, [ebp - 0x10]
mov ecx, dword [esp + 0x134]
movups xmm0, xmmword [ecx + 0x7604]
mov ecx, dword [esp + 0x38]
movups xmmword [ecx + 0x10], xmm0
cmp eax, 0x11
jl 0x56febf
mov eax, dword [esp + 0x38]
add eax, 0x20
xor ecx, ecx
mov edx, dword [esp + 0x134]
movups xmm0, xmmword [edx + ecx + 0x7614]
movups xmmword [eax + ecx], xmm0
movups xmm0, xmmword [edx + ecx + 0x7624]
movups xmmword [eax + ecx + 0x10], xmm0
lea edx, [eax + ecx]
add edx, 0x20
add ecx, 0x20
cmp edx, edi
mov edx, dword [esp + 0x24]
jb 0x570167
jmp 0x56febf
cmp esi, 7
ja 0x570364
mov al, byte [ebx]
mov byte [edi], al
mov al, byte [ebx + 1]
mov byte [edi + 1], al
mov al, byte [ebx + 2]
mov byte [edi + 2], al
mov al, byte [ebx + 3]
mov byte [edi + 3], al
mov edx, dword [esp + 8]
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [ebx + eax]
add ebx, eax
mov dword [edi + 4], ecx
sub ebx, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x57036c
movsd xmm0, qword [ebx]
movsd qword [edi], xmm0
cmp esi, 9
jb 0x56fb4a
lea ecx, [ebx + 8]
lea edx, [edi + 8]
mov eax, edx
sub eax, ecx
lea ebp, [edi + esi]
mov dword [esp], ebp
cmp eax, 0xf
jg 0x5704af
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x10]
cmp ebp, edi
mov esi, edi
cmovb esi, ebp
mov dword [esp + 0x10], edi
cmova edi, ebp
mov dword [esp + 4], eax
add esi, eax
add esi, edi
sub esi, ebp
mov eax, dword [esp + 0x2c]
add eax, edi
cmp esi, eax
cmovbe esi, eax
mov eax, dword [esp + 0x1c]
add eax, edi
sub esi, eax
add esi, 0xfffffff7
mov dword [esp + 0x14], esi
cmp esi, 0x18
jb 0x5706da
mov ebp, dword [esp + 8]
mov eax, dword [esp + 0x10]
cmp ebp, eax
mov esi, eax
cmova esi, ebp
cmovb eax, ebp
mov ebp, dword [esp + 4]
add ebp, eax
add ebp, esi
sub ebp, dword [esp + 8]
mov eax, dword [esp + 0x2c]
add eax, esi
cmp ebp, eax
cmovbe ebp, eax
mov eax, dword [esp + 0x1c]
add eax, esi
sub ebp, eax
add ebp, 0xfffffff7
and ebp, 0xfffffff8
mov dword [esp + 4], ebp
lea eax, [ebx + ebp]
add eax, 0x10
cmp edx, eax
jae 0x5702af
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
add eax, ebp
add esi, dword [esp + 4]
sub esi, ebp
add esi, eax
cmp ecx, esi
jb 0x5706da
mov eax, dword [esp + 0x14]
shr eax, 3
add eax, 1
mov dword [esp + 0x14], eax
and eax, 0xfffffffc
mov dword [esp + 8], eax
add eax, 0xfffffffc
mov esi, eax
shr esi, 2
add esi, 1
mov dword [esp + 4], esi
test eax, eax
je 0x5706a7
mov esi, dword [esp + 4]
and esi, 0xfffffffe
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0xc]
add eax, ebp
sub edi, ebp
add edi, eax
xor ebp, ebp
movups xmm0, xmmword [ebx + ebp*8 + 8]
movups xmm1, xmmword [ebx + ebp*8 + 0x18]
movups xmmword [edi + ebp*8 - 0x30], xmm0
movups xmmword [edi + ebp*8 - 0x20], xmm1
movups xmm0, xmmword [ebx + ebp*8 + 0x28]
movups xmm1, xmmword [ebx + ebp*8 + 0x38]
movups xmmword [edi + ebp*8 - 0x10], xmm0
movups xmmword [edi + ebp*8], xmm1
add ebp, 8
add esi, 0xfffffffe
jne 0x5702f2
jmp 0x5706a9
cmp esi, 7
ja 0x5704e9
mov al, byte [ebx]
mov byte [edi], al
mov al, byte [ebx + 1]
mov byte [edi + 1], al
mov al, byte [ebx + 2]
mov byte [edi + 2], al
mov al, byte [ebx + 3]
mov byte [edi + 3], al
mov edx, dword [esp + 4]
mov eax, dword [edx*4 + 0x68b1a8]
mov ecx, dword [ebx + eax]
add ebx, eax
mov dword [edi + 4], ecx
sub ebx, dword [edx*4 + str._b_b_b_a_b_t_n_v]
jmp 0x5704f1
movsd xmm0, qword [ebx]
movsd qword [edi], xmm0
cmp ebp, 9
jb 0x56fb4a
lea ecx, [ebx + 8]
lea edx, [edi + 8]
mov eax, edx
sub eax, ecx
lea esi, [edi + ebp]
mov dword [esp], esi
cmp eax, 0xf
jg 0x570632
mov eax, dword [esp + 4]
add eax, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
mov edi, dword [esp + 0x10]
cmp ebp, edi
mov esi, edi
cmovb esi, ebp
mov dword [esp + 0x10], edi
cmova edi, ebp
mov dword [esp + 4], eax
add esi, eax
add esi, edi
sub esi, ebp
mov eax, dword [esp + 0x2c]
add eax, edi
cmp esi, eax
cmovbe esi, eax
mov eax, dword [esp + 0x1c]
add eax, edi
sub esi, eax
add esi, 0xfffffff7
mov dword [esp + 0x14], esi
cmp esi, 0x18
jb 0x570725
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x10]
cmp esi, eax
mov ebp, eax
cmova ebp, esi
cmovb eax, esi
mov esi, dword [esp + 4]
add esi, eax
add esi, ebp
sub esi, dword [esp + 8]
mov eax, dword [esp + 0x2c]
add eax, ebp
cmp esi, eax
cmovbe esi, eax
mov eax, dword [esp + 0x1c]
add eax, ebp
sub esi, eax
add esi, 0xfffffff7
and esi, 0xfffffff8
mov dword [esp + 4], esi
lea eax, [ebx + esi]
add eax, 0x10
cmp edx, eax
jae 0x570438
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
add eax, esi
add ebp, dword [esp + 4]
sub ebp, esi
add ebp, eax
cmp ecx, ebp
jb 0x570725
mov eax, dword [esp + 0x14]
shr eax, 3
add eax, 1
mov dword [esp + 0x14], eax
and eax, 0xfffffffc
mov dword [esp + 8], eax
add eax, 0xfffffffc
mov esi, eax
shr esi, 2
add esi, 1
mov dword [esp + 4], esi
test eax, eax
je 0x5706f2
mov esi, dword [esp + 4]
and esi, 0xfffffffe
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0xc]
add eax, ebp
sub edi, ebp
add edi, eax
xor ebp, ebp
movups xmm0, xmmword [ebx + ebp*8 + 8]
movups xmm1, xmmword [ebx + ebp*8 + 0x18]
movups xmmword [edi + ebp*8 - 0x30], xmm0
movups xmmword [edi + ebp*8 - 0x20], xmm1
movups xmm0, xmmword [ebx + ebp*8 + 0x28]
movups xmm1, xmmword [ebx + ebp*8 + 0x38]
movups xmmword [edi + ebp*8 - 0x10], xmm0
movups xmmword [edi + ebp*8], xmm1
add ebp, 8
add esi, 0xfffffffe
jne 0x57047b
jmp 0x5706f4
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp esi, 0x19
jl 0x56fb4a
add edi, 0x18
xor ecx, ecx
movups xmm0, xmmword [ebx + ecx + 0x18]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [ebx + ecx + 0x28]
movups xmmword [edi + ecx + 0x10], xmm0
lea eax, [edi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp]
jb 0x5704c3
jmp 0x56fb4a
movsd xmm0, qword [ebx]
movsd qword [edi], xmm0
cmp ebp, 9
jb 0x56ff8d
lea ecx, [ebx + 8]
lea edx, [edi + 8]
mov eax, edx
sub eax, ecx
lea esi, [edi + ebp]
mov dword [esp + 0x28], esi
cmp eax, 0xf
jg 0x57066c
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x1c]
mov ebp, dword [esp + 4]
mov edi, dword [esp + 0xc]
cmp ebp, edi
mov esi, edi
cmovb esi, ebp
mov dword [esp + 0xc], edi
cmova edi, ebp
mov dword [esp + 0x10], eax
add esi, eax
add esi, edi
sub esi, ebp
mov eax, dword [esp + 0x2c]
add eax, edi
cmp esi, eax
cmovbe esi, eax
mov eax, dword [esp + 0x1c]
add eax, edi
sub esi, eax
add esi, 0xfffffff7
mov dword [esp], esi
cmp esi, 0x18
jb 0x57076f
mov esi, dword [esp + 4]
mov eax, dword [esp + 0xc]
cmp esi, eax
mov ebp, eax
cmova ebp, esi
cmovb eax, esi
mov esi, dword [esp + 0x10]
add esi, eax
add esi, ebp
sub esi, dword [esp + 4]
mov eax, dword [esp + 0x2c]
add eax, ebp
cmp esi, eax
cmovbe esi, eax
mov eax, dword [esp + 0x1c]
add eax, ebp
sub esi, eax
add esi, 0xfffffff7
and esi, 0xfffffff8
mov dword [esp + 0x10], esi
lea eax, [ebx + esi]
add eax, 0x10
cmp edx, eax
jae 0x5705bd
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
add eax, esi
add ebp, dword [esp + 0x10]
sub ebp, esi
add ebp, eax
cmp ecx, ebp
jb 0x57076f
mov eax, dword [esp]
shr eax, 3
add eax, 1
mov dword [esp], eax
and eax, 0xfffffffc
mov dword [esp + 0x10], eax
add eax, 0xfffffffc
mov esi, eax
shr esi, 2
add esi, 1
mov dword [esp + 4], esi
test eax, eax
je 0x57073d
mov esi, dword [esp + 4]
and esi, 0xfffffffe
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x38]
add eax, ebp
sub edi, ebp
add edi, eax
xor ebp, ebp
movups xmm0, xmmword [ebx + ebp*8 + 8]
movups xmm1, xmmword [ebx + ebp*8 + 0x18]
movups xmmword [edi + ebp*8 - 0x30], xmm0
movups xmmword [edi + ebp*8 - 0x20], xmm1
movups xmm0, xmmword [ebx + ebp*8 + 0x28]
movups xmm1, xmmword [ebx + ebp*8 + 0x38]
movups xmmword [edi + ebp*8 - 0x10], xmm0
movups xmmword [edi + ebp*8], xmm1
add ebp, 8
add esi, 0xfffffffe
jne 0x5705fe
jmp 0x57073f
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp ebp, 0x19
jl 0x56fb4a
add edi, 0x18
xor ecx, ecx
movups xmm0, xmmword [ebx + ecx + 0x18]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [ebx + ecx + 0x28]
movups xmmword [edi + ecx + 0x10], xmm0
lea eax, [edi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp]
jb 0x570646
jmp 0x56fb4a
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
cmp ebp, 0x19
jl 0x56ff8d
add edi, 0x18
xor ecx, ecx
movups xmm0, xmmword [ebx + ecx + 0x18]
movups xmmword [edi + ecx], xmm0
movups xmm0, xmmword [ebx + ecx + 0x28]
movups xmmword [edi + ecx + 0x10], xmm0
lea eax, [edi + ecx]
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x28]
jb 0x570680
jmp 0x56ff8d
xor ebp, ebp
test byte [esp + 4], 1
je 0x5706c2
movups xmm0, xmmword [ecx + ebp*8]
movups xmm1, xmmword [ecx + ebp*8 + 0x10]
movups xmmword [edx + ebp*8], xmm0
movups xmmword [edx + ebp*8 + 0x10], xmm1
mov eax, dword [esp + 8]
cmp dword [esp + 0x14], eax
je 0x56fb4a
mov eax, dword [esp + 8]
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, dword [esp]
jb 0x5706da
jmp 0x56fb4a
xor ebp, ebp
test byte [esp + 4], 1
je 0x57070d
movups xmm0, xmmword [ecx + ebp*8]
movups xmm1, xmmword [ecx + ebp*8 + 0x10]
movups xmmword [edx + ebp*8], xmm0
movups xmmword [edx + ebp*8 + 0x10], xmm1
mov eax, dword [esp + 8]
cmp dword [esp + 0x14], eax
je 0x56fb4a
mov eax, dword [esp + 8]
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, dword [esp]
jb 0x570725
jmp 0x56fb4a
xor ebp, ebp
test byte [esp + 4], 1
je 0x570758
movups xmm0, xmmword [ecx + ebp*8]
movups xmm1, xmmword [ecx + ebp*8 + 0x10]
movups xmmword [edx + ebp*8], xmm0
movups xmmword [edx + ebp*8 + 0x10], xmm1
mov eax, dword [esp + 0x10]
cmp dword [esp], eax
je 0x56ff8d
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*8]
lea ecx, [ecx + eax*8]
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
add edx, 8
add ecx, 8
cmp edx, dword [esp + 0x28]
jb 0x57076f
jmp 0x56ff8d
mov ecx, ebx
mov eax, ecx
add esp, 0x120
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov edi, ecx
lea ecx, [esp + 0x80]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0xa0]
mov dword [edx + 8], eax
movsd xmm0, qword [ecx]
movsd qword [edx], xmm0
mov eax, dword [esp + 0x134]
mov ebx, dword [eax + 0x75f0]
mov eax, dword [esp + 0x3c]
cmp ebx, 2
je 0x56d860
jmp 0x56dbb4
mov ecx, 0xffffffba
jmp 0x57078a
mov ecx, 0xffffffec
jmp 0x57078a