Function at 0x4c8930
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov ebx, dword [esp + 0x44]
cmp byte [ebx + 0x14], 0
jne 0x4c899b
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0x10]
cmp ecx, dword [ebx + 0xc]
jne 0x4c8989
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov edi, 0x20
cmovne edi, eax
cmp edi, ecx
jbe 0x4c8995
cmp edi, 0x3fffffff
ja 0x4c8995
lea eax, [edi*4]
push eax
push dword [ebx + 4]
call sym.fastboot.exe_OPENSSL_realloc
add esp, 8
test eax, eax
je 0x4c8995
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], edi
mov ecx, dword [ebx + 8]
jmp 0x4c898c
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4], esi
add dword [ebx + 8], 1
jmp 0x4c899b
mov word [ebx + 0x14], 0x101
push ebx
call sym.fastboot.exe_BN_CTX_get
add esp, 4
xor edi, edi
test eax, eax
je 0x4c990b
mov esi, eax
mov ebp, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
lea eax, [ebp + 0x14]
push ebp
push ebx
push eax
push dword [ecx + 4]
push dword [esp + 0x4c]
push esi
call sym.fastboot.exe_BN_mod_exp_mont_consttime
add esp, 0x18
test eax, eax
je 0x4c990b
push ebx
push ebp
push ebp
push esi
push esi
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x4c990b
mov eax, dword [esp + 0x34]
mov edi, dword [eax + 8]
mov dword [esp + 0xc], esi
mov eax, dword [esi + 4]
mov edx, dword [edi + 4]
xor ebx, ebx
mov esi, eax
sub esi, edx
mov ecx, eax
mov dword [esp], eax
mov dword [esp + 8], edi
jge 0x4c8b4b
mov ebp, dword [edi]
mov dword [esp + 0x10], edx
sub edx, eax
xor ebx, ebx
mov ecx, eax
cmp edx, 8
jb 0x4c8b38
mov dword [esp + 4], esi
mov dword [esp + 0x18], edx
mov ecx, edx
and ecx, 0xfffffff8
lea eax, [ecx - 8]
mov ebx, eax
shr ebx, 3
add ebx, 1
mov esi, ebx
and esi, 3
cmp eax, 0x18
jae 0x4c8a54
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x4c8ac7
and ebx, 0xfffffffc
mov eax, dword [esp]
lea eax, [eax*4 + 0x70]
add eax, ebp
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop dword [eax]
movdqu xmm2, xmmword [eax + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + edi*4 - 0x50]
movdqu xmm3, xmmword [eax + edi*4 - 0x40]
movdqu xmm4, xmmword [eax + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + edi*4]
por xmm1, xmm2
add edi, 0x20
add ebx, 0xfffffffc
jne 0x4c8a70
test esi, esi
je 0x4c8afa
add edi, dword [esp]
lea eax, [edi*4 + 0x10]
add eax, ebp
shl esi, 5
xor edi, edi
nop dword [eax]
movdqu xmm2, xmmword [eax + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + edi]
por xmm1, xmm2
add edi, 0x20
cmp esi, edi
jne 0x4c8ae0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ebx, xmm0
cmp dword [esp + 0x18], ecx
jne 0x4c8b2b
mov eax, dword [esp]
mov edi, dword [esp + 8]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x10]
jmp 0x4c8b4b
mov eax, dword [esp]
add ecx, eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x10]
nop dword [eax]
or ebx, dword [ebp + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x4c8b40
cmp edx, eax
jge 0x4c8b62
mov ebp, dword [esp + 0xc]
mov ecx, dword [ebp]
cmp esi, 8
jae 0x4c8b6b
mov esi, edx
jmp 0x4c8c70
mov ebp, dword [esp + 0xc]
jmp 0x4c8c7a
mov dword [esp + 4], esi
and esi, 0xfffffff8
movd xmm0, ebx
lea eax, [esi - 8]
mov ebp, eax
shr ebp, 3
add ebp, 1
mov ebx, ebp
and ebx, 3
cmp eax, 0x18
jae 0x4c8b93
pxor xmm1, xmm1
xor edi, edi
jmp 0x4c8c07
and ebp, 0xfffffffc
lea eax, [ecx + edx*4]
add eax, 0x70
pxor xmm1, xmm1
xor edi, edi
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [eax + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + edi*4 - 0x50]
movdqu xmm3, xmmword [eax + edi*4 - 0x40]
movdqu xmm4, xmmword [eax + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + edi*4]
por xmm1, xmm2
add edi, 0x20
add ebp, 0xfffffffc
jne 0x4c8bb0
test ebx, ebx
je 0x4c8c3a
add edi, edx
lea eax, [ecx + edi*4]
add eax, 0x10
shl ebx, 5
xor edi, edi
nop dword [eax + eax]
movdqu xmm2, xmmword [eax + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + edi]
por xmm1, xmm2
add edi, 0x20
cmp ebx, edi
jne 0x4c8c20
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ebx, xmm0
cmp dword [esp + 4], esi
mov ebp, dword [esp + 0xc]
jne 0x4c8c67
mov eax, dword [esp]
mov edi, dword [esp + 8]
jmp 0x4c8c7a
add esi, edx
mov eax, dword [esp]
mov edi, dword [esp + 8]
or ebx, dword [ecx + esi*4]
add esi, 1
cmp eax, esi
jne 0x4c8c70
cmp eax, edx
cmovl edx, eax
test edx, edx
jle 0x4c8d8f
mov ecx, dword [ebp]
mov esi, dword [edi]
xor edi, edi
cmp edx, 4
jb 0x4c8d80
mov edi, edx
and edi, 0xfffffffc
movd xmm0, ebx
lea eax, [edi - 4]
mov ebp, eax
shr ebp, 2
add ebp, 1
mov ebx, ebp
and ebx, 3
cmp eax, 0xc
mov dword [esp + 0x10], edx
jae 0x4c8cbd
xor eax, eax
jmp 0x4c8d26
and ebp, 0xfffffffc
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm1, xmmword [ecx + eax*4]
movdqu xmm2, xmmword [ecx + eax*4 + 0x10]
movdqu xmm3, xmmword [esi + eax*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [esi + eax*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [ecx + eax*4 + 0x20]
movdqu xmm2, xmmword [esi + eax*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [ecx + eax*4 + 0x30]
movdqu xmm0, xmmword [esi + eax*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add eax, 0x10
add ebp, 0xfffffffc
jne 0x4c8cd0
test ebx, ebx
je 0x4c8d5a
mov edx, ebx
lea ebp, [esi + eax*4]
lea eax, [ecx + eax*4]
shl edx, 4
xor ebx, ebx
nop word [eax + eax]
movdqu xmm1, xmmword [eax + ebx]
movdqu xmm2, xmmword [ebp + ebx]
pxor xmm2, xmm1
por xmm0, xmm2
add ebx, 0x10
cmp edx, ebx
jne 0x4c8d40
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ebx, xmm0
mov edx, dword [esp + 0x10]
cmp edx, edi
mov ebp, dword [esp + 0xc]
je 0x4c8d8f
nop dword [eax]
mov eax, dword [esi + edi*4]
xor eax, dword [ecx + edi*4]
or ebx, eax
add edi, 1
cmp edx, edi
jne 0x4c8d80
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], eax
mov edx, dword [eax + 4]
xor edi, edi
mov eax, dword [esp]
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
jge 0x4c8eea
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov dword [esp + 0x14], edx
sub edx, eax
xor edi, edi
mov esi, eax
cmp edx, 8
jb 0x4c8ed0
mov dword [esp + 0x1c], edx
mov esi, edx
and esi, 0xfffffff8
lea eax, [esi - 8]
mov edi, eax
shr edi, 3
add edi, 1
mov edx, edi
and edx, 3
cmp eax, 0x18
jae 0x4c8dfa
pxor xmm0, xmm0
xor ebp, ebp
pxor xmm1, xmm1
jmp 0x4c8e67
and edi, 0xfffffffc
mov eax, dword [esp]
lea eax, [ecx + eax*4]
add eax, 0x70
pxor xmm0, xmm0
xor ebp, ebp
pxor xmm1, xmm1
movdqu xmm2, xmmword [eax + ebp*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + ebp*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + ebp*4 - 0x50]
movdqu xmm3, xmmword [eax + ebp*4 - 0x40]
movdqu xmm4, xmmword [eax + ebp*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + ebp*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + ebp*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + ebp*4]
por xmm1, xmm2
add ebp, 0x20
add edi, 0xfffffffc
jne 0x4c8e10
test edx, edx
je 0x4c8e9a
add ebp, dword [esp]
lea eax, [ecx + ebp*4]
add eax, 0x10
shl edx, 5
xor edi, edi
nop dword [eax]
movdqu xmm2, xmmword [eax + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + edi]
por xmm1, xmm2
add edi, 0x20
cmp edx, edi
jne 0x4c8e80
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edi, xmm0
cmp dword [esp + 0x1c], esi
jne 0x4c8ec7
mov ebp, dword [esp + 0xc]
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
jmp 0x4c8eea
mov eax, dword [esp]
add esi, eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
nop word cs:[eax + eax]
nop
or edi, dword [ecx + esi*4]
add esi, 1
cmp edx, esi
jne 0x4c8ee0
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0xc]
xor ecx, dword [esp + 4]
cmp edx, eax
jge 0x4c901a
mov esi, dword [ebp]
mov ebp, dword [esp + 0x18]
cmp ebp, 8
jae 0x4c8f10
mov ebp, edx
jmp 0x4c9010
mov dword [esp + 8], ecx
and ebp, 0xfffffff8
movd xmm0, edi
lea ecx, [ebp - 8]
mov eax, ecx
shr eax, 3
add eax, 1
mov edi, eax
and edi, 3
mov dword [esp + 0x14], edi
cmp ecx, 0x18
jae 0x4c8f3c
pxor xmm1, xmm1
xor ecx, ecx
jmp 0x4c8fa7
and eax, 0xfffffffc
lea edi, [esi + edx*4]
add edi, 0x70
pxor xmm1, xmm1
xor ecx, ecx
nop dword [eax + eax]
movdqu xmm2, xmmword [edi + ecx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edi + ecx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edi + ecx*4 - 0x50]
movdqu xmm3, xmmword [edi + ecx*4 - 0x40]
movdqu xmm4, xmmword [edi + ecx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edi + ecx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edi + ecx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edi + ecx*4]
por xmm1, xmm2
add ecx, 0x20
add eax, 0xfffffffc
jne 0x4c8f50
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4c8fda
add ecx, edx
lea eax, [esi + ecx*4]
add eax, 0x10
shl edi, 5
xor ecx, ecx
nop dword [eax]
movdqu xmm2, xmmword [eax + ecx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ecx]
por xmm1, xmm2
add ecx, 0x20
cmp edi, ecx
jne 0x4c8fc0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edi, xmm0
cmp dword [esp + 0x18], ebp
jne 0x4c9003
mov eax, dword [esp]
mov ecx, dword [esp + 8]
jmp 0x4c901a
add ebp, edx
mov eax, dword [esp]
mov ecx, dword [esp + 8]
nop dword [eax]
or edi, dword [esi + ebp*4]
add ebp, 1
cmp eax, ebp
jne 0x4c9010
or ecx, ebx
cmp eax, edx
cmovl edx, eax
test edx, edx
mov dword [esp + 8], ecx
jle 0x4c9125
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx]
xor ebx, ebx
cmp edx, 4
jb 0x4c9116
mov ebx, edx
and ebx, 0xfffffffc
movd xmm0, edi
lea ecx, [ebx - 4]
mov ebp, ecx
shr ebp, 2
add ebp, 1
mov edi, ebp
and edi, 3
cmp ecx, 0xc
mov dword [esp + 0x14], edx
jae 0x4c906a
xor ecx, ecx
jmp 0x4c90c6
and ebp, 0xfffffffc
xor ecx, ecx
nop
movdqu xmm1, xmmword [eax + ecx*4]
movdqu xmm2, xmmword [eax + ecx*4 + 0x10]
movdqu xmm3, xmmword [esi + ecx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [esi + ecx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [eax + ecx*4 + 0x20]
movdqu xmm2, xmmword [esi + ecx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [eax + ecx*4 + 0x30]
movdqu xmm0, xmmword [esi + ecx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add ecx, 0x10
add ebp, 0xfffffffc
jne 0x4c9070
test edi, edi
je 0x4c90fa
mov edx, edi
lea ebp, [esi + ecx*4]
lea ecx, [eax + ecx*4]
shl edx, 4
xor edi, edi
nop word [eax + eax]
movdqu xmm1, xmmword [ecx + edi]
movdqu xmm2, xmmword [ebp + edi]
pxor xmm2, xmm1
por xmm0, xmm2
add edi, 0x10
cmp edx, edi
jne 0x4c90e0
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edi, xmm0
mov edx, dword [esp + 0x14]
jmp 0x4c9121
mov ecx, dword [esi + ebx*4]
xor ecx, dword [eax + ebx*4]
or edi, ecx
add ebx, 1
cmp edx, ebx
jne 0x4c9116
cmp dword [esp + 8], 0
sete al
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x10]
xor ecx, dword [edx + 0xc]
or ecx, edi
sete cl
or cl, al
movzx eax, cl
neg eax
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x34]
cmp dword [esi + 0x10], 2
jl 0x4c98f5
mov edi, 1
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xc]
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 0x14]
mov ecx, eax
xor ecx, edi
not eax
add ecx, 0xffffffff
test ecx, eax
jns 0x4c918b
cmp dword [esp + 0x10], 0xffffffff
jne 0x4c98f9
push ebx
push dword [esp + 0x44]
push ebp
push ebp
push ebp
call sym.fastboot.exe_BN_mod_mul_montgomery
add esp, 0x14
test eax, eax
je 0x4c992e
mov dword [esp + 0x18], edi
mov ebx, dword [esi + 0xc]
mov esi, dword [ebp + 4]
mov ecx, dword [ebx + 4]
xor eax, eax
mov edx, esi
mov dword [esp], esi
sub esi, ecx
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
jge 0x4c92ea
mov edi, dword [ebx]
mov edx, ecx
mov esi, dword [esp]
sub edx, esi
xor eax, eax
cmp edx, 8
jb 0x4c92e0
mov dword [esp + 0x14], edx
mov esi, edx
and esi, 0xfffffff8
lea ebx, [esi - 8]
mov eax, ebx
shr eax, 3
add eax, 1
mov edx, eax
and edx, 3
cmp ebx, 0x18
jae 0x4c9205
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x4c9278
and eax, 0xfffffffc
mov ebx, dword [esp]
lea ebp, [edi + ebx*4]
add ebp, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm2, xmmword [ebp + ebx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + ebx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + ebx*4 - 0x50]
movdqu xmm3, xmmword [ebp + ebx*4 - 0x40]
movdqu xmm4, xmmword [ebp + ebx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + ebx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + ebx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + ebx*4]
por xmm1, xmm2
add ebx, 0x20
add eax, 0xfffffffc
jne 0x4c9220
test edx, edx
mov ebp, dword [esp + 0xc]
je 0x4c92aa
add ebx, dword [esp]
lea eax, [edi + ebx*4]
add eax, 0x10
shl edx, 5
xor ebx, ebx
nop
movdqu xmm2, xmmword [eax + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp edx, ebx
jne 0x4c9290
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [esp + 0x14], esi
jne 0x4c92d0
mov ebx, dword [esp + 4]
jmp 0x4c92ea
add esi, dword [esp]
mov ebx, dword [esp + 4]
nop word [eax + eax]
or eax, dword [edi + esi*4]
add esi, 1
cmp ecx, esi
jne 0x4c92e0
mov edx, dword [esp]
cmp ecx, edx
jge 0x4c941a
mov esi, dword [ebp]
mov edi, dword [esp + 8]
cmp edi, 8
jae 0x4c9310
mov edi, ecx
jmp 0x4c940d
and edi, 0xfffffff8
movd xmm0, eax
lea edx, [edi - 8]
mov ebx, edx
shr ebx, 3
add ebx, 1
mov eax, ebx
and eax, 3
cmp edx, 0x18
jae 0x4c9334
pxor xmm1, xmm1
xor edx, edx
jmp 0x4c93a8
and ebx, 0xfffffffc
lea ebp, [esi + ecx*4]
add ebp, 0x70
pxor xmm1, xmm1
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [ebp + edx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + edx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + edx*4 - 0x50]
movdqu xmm3, xmmword [ebp + edx*4 - 0x40]
movdqu xmm4, xmmword [ebp + edx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + edx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + edx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + edx*4]
por xmm1, xmm2
add edx, 0x20
add ebx, 0xfffffffc
jne 0x4c9350
test eax, eax
je 0x4c93da
add edx, ecx
lea edx, [esi + edx*4]
add edx, 0x10
shl eax, 5
xor ebx, ebx
nop dword [eax]
movdqu xmm2, xmmword [edx + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edx + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp eax, ebx
jne 0x4c93c0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [esp + 8], edi
mov ebp, dword [esp + 0xc]
jne 0x4c9407
mov edx, dword [esp]
mov ebx, dword [esp + 4]
jmp 0x4c941a
add edi, ecx
mov ebx, dword [esp + 4]
mov edx, dword [esp]
or eax, dword [esi + edi*4]
add edi, 1
cmp edx, edi
jne 0x4c9410
cmp edx, ecx
cmovl ecx, edx
test ecx, ecx
jle 0x4c951f
mov esi, dword [ebp]
mov edi, dword [ebx]
xor ebx, ebx
cmp ecx, 4
jb 0x4c9510
mov dword [esp + 8], ecx
mov ebx, ecx
and ebx, 0xfffffffc
movd xmm0, eax
lea ebp, [ebx - 4]
mov eax, ebp
shr eax, 2
add eax, 1
mov ecx, eax
and ecx, 3
xor edx, edx
cmp ebp, 0xc
jb 0x4c94b6
and eax, 0xfffffffc
xor edx, edx
movdqu xmm1, xmmword [esi + edx*4]
movdqu xmm2, xmmword [esi + edx*4 + 0x10]
movdqu xmm3, xmmword [edi + edx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [edi + edx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [esi + edx*4 + 0x20]
movdqu xmm2, xmmword [edi + edx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [esi + edx*4 + 0x30]
movdqu xmm0, xmmword [edi + edx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add edx, 0x10
add eax, 0xfffffffc
jne 0x4c9460
test ecx, ecx
je 0x4c94e9
lea eax, [edi + edx*4]
lea edx, [esi + edx*4]
shl ecx, 4
xor ebp, ebp
nop word cs:[eax + eax]
nop
movdqu xmm1, xmmword [edx + ebp]
movdqu xmm2, xmmword [eax + ebp]
pxor xmm2, xmm1
por xmm0, xmm2
add ebp, 0x10
cmp ecx, ebp
jne 0x4c94d0
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
mov ecx, dword [esp + 8]
cmp ecx, ebx
mov ebp, dword [esp + 0xc]
je 0x4c951f
nop dword [eax + eax]
mov edx, dword [edi + ebx*4]
xor edx, dword [esi + ebx*4]
or eax, edx
add ebx, 1
cmp ecx, ebx
jne 0x4c9510
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 8], edx
xor ecx, edx
or ecx, eax
mov eax, dword [esp + 0x10]
mov ecx, 0xffffffff
cmove eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov edi, dword [eax + 8]
mov ebx, dword [edi + 4]
xor edx, edx
mov ecx, dword [esp]
mov eax, ecx
sub eax, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 4], edi
jge 0x4c968a
mov esi, dword [edi]
mov ebp, ebx
sub ebp, ecx
xor edx, edx
mov eax, ecx
cmp ebp, 8
jb 0x4c967c
mov eax, ebp
and eax, 0xfffffff8
lea edi, [eax - 8]
mov edx, edi
shr edx, 3
add edx, 1
mov ecx, edx
and ecx, 3
cmp edi, 0x18
mov dword [esp + 0x1c], ebp
jae 0x4c959f
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x4c9618
and edx, 0xfffffffc
mov edi, dword [esp]
lea ebp, [esi + edi*4]
add ebp, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop
movdqu xmm2, xmmword [ebp + edi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + edi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + edi*4 - 0x50]
movdqu xmm3, xmmword [ebp + edi*4 - 0x40]
movdqu xmm4, xmmword [ebp + edi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + edi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + edi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + edi*4]
por xmm1, xmm2
add edi, 0x20
add edx, 0xfffffffc
jne 0x4c95c0
test ecx, ecx
mov ebp, dword [esp + 0xc]
je 0x4c964a
add edi, dword [esp]
lea edx, [esi + edi*4]
add edx, 0x10
shl ecx, 5
xor edi, edi
nop
movdqu xmm2, xmmword [edx + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edx + edi]
por xmm1, xmm2
add edi, 0x20
cmp ecx, edi
jne 0x4c9630
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
cmp dword [esp + 0x1c], eax
jne 0x4c9673
mov ecx, dword [esp]
mov edi, dword [esp + 4]
jmp 0x4c968a
mov ecx, dword [esp]
add eax, ecx
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0xc]
or edx, dword [esi + eax*4]
add eax, 1
cmp ebx, eax
jne 0x4c9680
cmp ebx, ecx
jge 0x4c97ba
mov esi, dword [ebp]
mov eax, dword [esp + 0x14]
cmp eax, 8
jae 0x4c96b0
mov eax, ebx
jmp 0x4c97b0
and eax, 0xfffffff8
movd xmm0, edx
lea edx, [eax - 8]
mov edi, edx
shr edi, 3
add edi, 1
mov ecx, edi
and ecx, 3
cmp edx, 0x18
jae 0x4c96d4
pxor xmm1, xmm1
xor edx, edx
jmp 0x4c9748
and edi, 0xfffffffc
lea ebp, [esi + ebx*4]
add ebp, 0x70
pxor xmm1, xmm1
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [ebp + edx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + edx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebp + edx*4 - 0x50]
movdqu xmm3, xmmword [ebp + edx*4 - 0x40]
movdqu xmm4, xmmword [ebp + edx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebp + edx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebp + edx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebp + edx*4]
por xmm1, xmm2
add edx, 0x20
add edi, 0xfffffffc
jne 0x4c96f0
test ecx, ecx
je 0x4c977a
add edx, ebx
lea edx, [esi + edx*4]
add edx, 0x10
shl ecx, 5
xor edi, edi
nop dword [eax]
movdqu xmm2, xmmword [edx + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edx + edi]
por xmm1, xmm2
add edi, 0x20
cmp ecx, edi
jne 0x4c9760
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
cmp dword [esp + 0x14], eax
mov ebp, dword [esp + 0xc]
jne 0x4c97a7
mov ecx, dword [esp]
mov edi, dword [esp + 4]
jmp 0x4c97ba
add eax, ebx
mov ecx, dword [esp]
mov edi, dword [esp + 4]
or edx, dword [esi + eax*4]
add eax, 1
cmp ecx, eax
jne 0x4c97b0
cmp ecx, ebx
cmovl ebx, ecx
test ebx, ebx
jle 0x4c98bf
mov eax, dword [ebp]
mov esi, dword [edi]
xor edi, edi
cmp ebx, 4
jb 0x4c98b0
mov dword [esp], ebx
mov edi, ebx
and edi, 0xfffffffc
movd xmm0, edx
lea ecx, [edi - 4]
mov ebp, ecx
shr ebp, 2
add ebp, 1
mov ebx, ebp
and ebx, 3
xor edx, edx
cmp ecx, 0xc
jb 0x4c9856
and ebp, 0xfffffffc
xor edx, edx
nop
movdqu xmm1, xmmword [eax + edx*4]
movdqu xmm2, xmmword [eax + edx*4 + 0x10]
movdqu xmm3, xmmword [esi + edx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [esi + edx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [eax + edx*4 + 0x20]
movdqu xmm2, xmmword [esi + edx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [eax + edx*4 + 0x30]
movdqu xmm0, xmmword [esi + edx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add edx, 0x10
add ebp, 0xfffffffc
jne 0x4c9800
test ebx, ebx
je 0x4c988a
lea ebp, [esi + edx*4]
lea edx, [eax + edx*4]
shl ebx, 4
xor ecx, ecx
nop word cs:[eax + eax]
nop
movdqu xmm1, xmmword [edx + ecx]
movdqu xmm2, xmmword [ebp + ecx]
pxor xmm2, xmm1
por xmm0, xmm2
add ecx, 0x10
cmp ebx, ecx
jne 0x4c9870
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
mov ebx, dword [esp]
cmp ebx, edi
mov ebp, dword [esp + 0xc]
je 0x4c98bf
nop dword [eax + eax]
mov ecx, dword [esi + edi*4]
xor ecx, dword [eax + edi*4]
or edx, ecx
add edi, 1
cmp ebx, edi
jne 0x4c98b0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 4]
xor ecx, dword [eax + 0xc]
xor eax, eax
or ecx, edx
sete al
mov ecx, dword [esp + 0x10]
not ecx
test eax, ecx
jne 0x4c98f5
mov edi, dword [esp + 0x18]
add edi, 1
mov esi, dword [esp + 0x34]
cmp edi, dword [esi + 0x10]
mov ebx, dword [esp + 0x44]
jl 0x4c9170
jmp 0x4c98f9
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
and ecx, 1
mov dword [eax], ecx
mov edi, 1
cmp byte [ebx + 0x14], 0
jne 0x4c9924
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
lea edx, [ecx - 1]
mov dword [ebx + 8], edx
mov eax, dword [eax + ecx*4 - 4]
mov dword [ebx + 0x10], eax
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
cmp byte [ebx + 0x14], 0
jne 0x4c9924
jmp 0x4c9911