Function at 0x4bf100
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov dword [eax], 0
cmp dword [edx + 0xc], 0
jne 0x4bf448
mov esi, dword [esp + 0x8c]
mov ecx, dword [edx]
mov ebx, dword [edx + 4]
mov edi, dword [esi]
mov edx, dword [esi + 4]
cmp ebx, edx
mov dword [esp], edx
mov esi, edx
mov eax, ebx
mov dword [esp + 0x1c], ebx
cmovb esi, ebx
test esi, esi
mov dword [esp + 4], esi
je 0x4bf194
xor ebp, ebp
xor edx, edx
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, dword [ecx + edx*4]
mov eax, ebp
mov ebp, ecx
mov ecx, edi
mov edi, dword [edi + edx*4]
mov esi, ebx
sub esi, edi
xor edi, ebx
xor esi, ebx
or esi, edi
xor esi, ebx
sar esi, 0x1f
or esi, 1
test edi, edi
mov edi, ecx
mov ecx, ebp
mov ebp, eax
cmovne ebp, esi
add edx, 1
cmp dword [esp + 4], edx
jne 0x4bf160
jmp 0x4bf196
xor ebp, ebp
mov eax, dword [esp + 0x1c]
mov edx, eax
mov ebx, dword [esp]
sub edx, ebx
jae 0x4bf1e3
sub ebx, eax
xor esi, esi
mov edx, eax
cmp ebx, 8
jb 0x4bf319
mov dword [esp + 8], edi
mov dword [esp + 0x20], ebx
mov edx, ebx
and edx, 0xfffffff8
lea edi, [edx - 8]
mov esi, edi
shr esi, 3
add esi, 1
mov eax, esi
and eax, 3
cmp edi, 0x18
jae 0x4bf22f
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x4bf2a7
jbe 0x4bf43d
xor esi, esi
mov dword [esp + 0x20], edx
mov edx, ebx
cmp dword [esp + 0x20], 8
jb 0x4bf420
mov dword [esp + 8], edi
mov edx, dword [esp + 0x20]
and edx, 0xfffffff8
lea esi, [edx - 8]
mov eax, esi
shr eax, 3
add eax, 1
mov edi, eax
and edi, 3
cmp esi, 0x18
jae 0x4bf33f
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x4bf3b7
and esi, 0xfffffffc
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
lea edi, [ebx + edi*4]
add edi, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop word [eax + eax]
movdqu xmm2, xmmword [edi + ebx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edi + ebx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edi + ebx*4 - 0x50]
movdqu xmm3, xmmword [edi + ebx*4 - 0x40]
movdqu xmm4, xmmword [edi + ebx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edi + ebx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edi + ebx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edi + ebx*4]
por xmm1, xmm2
add ebx, 0x20
add esi, 0xfffffffc
jne 0x4bf250
test eax, eax
je 0x4bf2da
add ebx, dword [esp + 0x1c]
mov esi, dword [esp + 8]
lea esi, [esi + ebx*4]
add esi, 0x10
shl eax, 5
xor edi, edi
nop
movdqu xmm2, xmmword [esi + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi]
por xmm1, xmm2
add edi, 0x20
cmp eax, edi
jne 0x4bf2c0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
cmp dword [esp + 0x20], edx
jne 0x4bf307
mov ebx, dword [esp]
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
jmp 0x4bf32a
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], ebp
add edx, eax
mov edi, dword [esp + 8]
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp]
nop dword [eax]
or esi, dword [edi + edx*4]
add edx, 1
cmp ebx, edx
jne 0x4bf320
mov edx, esi
not edx
add esi, 0xffffffff
and esi, edx
sar esi, 0x1f
not esi
or ebp, esi
jmp 0x4bf43d
and eax, 0xfffffffc
lea ebx, [ecx + ebx*4]
add ebx, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm2, xmmword [ebx + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebx + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebx + esi*4 - 0x50]
movdqu xmm3, xmmword [ebx + esi*4 - 0x40]
movdqu xmm4, xmmword [ebx + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebx + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebx + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebx + esi*4]
por xmm1, xmm2
add esi, 0x20
add eax, 0xfffffffc
jne 0x4bf360
test edi, edi
mov ebx, dword [esp]
je 0x4bf3ea
mov eax, edi
add esi, ebx
lea esi, [ecx + esi*4]
add esi, 0x10
shl eax, 5
xor edi, edi
nop dword [eax]
movdqu xmm2, xmmword [esi + edi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [esi + edi]
por xmm1, xmm2
add edi, 0x20
cmp eax, edi
jne 0x4bf3d0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
cmp dword [esp + 0x20], edx
jne 0x4bf414
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
jmp 0x4bf42a
add edx, ebx
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
nop
or esi, dword [ecx + edx*4]
add edx, 1
cmp eax, edx
jne 0x4bf420
mov edx, esi
not edx
add esi, 0xffffffff
and esi, edx
sar esi, 0x1f
and ebp, esi
add ebp, esi
add ebp, 1
test ebp, ebp
mov ebp, dword [esp + 0x84]
js 0x4bf46c
push 0xae
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x6b
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ecx, ecx
mov eax, ecx
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret
test eax, eax
je 0x4bf5b5
xor edx, edx
mov esi, 0
cmp eax, 8
jb 0x4bf580
mov dword [esp + 8], edi
mov edx, eax
and edx, 0xfffffff8
lea ebx, [edx - 8]
mov edi, ebx
shr edi, 3
add edi, 1
mov esi, edi
and esi, 3
cmp ebx, 0x18
jae 0x4bf4ae
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x4bf517
and edi, 0xfffffffc
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
nop dword [eax + eax]
movdqu xmm2, xmmword [ecx + ebx*4]
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + ebx*4 + 0x10]
por xmm0, xmm1
movdqu xmm1, xmmword [ecx + ebx*4 + 0x20]
movdqu xmm3, xmmword [ecx + ebx*4 + 0x30]
movdqu xmm4, xmmword [ecx + ebx*4 + 0x40]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ecx + ebx*4 + 0x50]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + ebx*4 + 0x60]
por xmm0, xmm4
movdqu xmm1, xmmword [ecx + ebx*4 + 0x70]
por xmm1, xmm2
add ebx, 0x20
add edi, 0xfffffffc
jne 0x4bf4c0
test esi, esi
je 0x4bf54a
lea edi, [ecx + ebx*4]
add edi, 0x10
shl esi, 5
xor ebx, ebx
nop word cs:[eax + eax]
movdqu xmm2, xmmword [edi + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edi + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp esi, ebx
jne 0x4bf530
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov eax, dword [esp + 0x1c]
cmp eax, edx
mov ebx, dword [esp]
mov edi, dword [esp + 8]
je 0x4bf58a
nop word cs:[eax + eax]
nop dword [eax]
or esi, dword [ecx + edx*4]
add edx, 1
cmp eax, edx
jne 0x4bf580
test esi, esi
je 0x4bf5b5
test eax, eax
jle 0x4bf59b
test byte [ecx], 1
jne 0x4bf622
test ebx, ebx
jle 0x4bf5a4
test byte [edi], 1
jne 0x4bf622
mov dword [ebp], 1
push 0xc7
jmp 0x4bf76a
mov ecx, dword [esp + 0x8c]
cmp dword [ecx + 0xc], 0
jne 0x4bf75e
test ebx, ebx
je 0x4bf75e
mov esi, dword [edi]
xor esi, 1
cmp ebx, 2
jl 0x4bf75a
lea edx, [ebx - 1]
mov ecx, 1
cmp edx, 8
jb 0x4bf750
mov dword [esp + 8], edi
mov ecx, edx
and ecx, 0xfffffff8
movd xmm0, esi
lea edi, [ecx - 8]
mov ebx, edi
shr ebx, 3
add ebx, 1
mov esi, ebx
and esi, 3
cmp edi, 0x18
jae 0x4bf696
pxor xmm1, xmm1
xor edi, edi
mov eax, dword [esp + 8]
jmp 0x4bf6fb
mov ebp, dword [esp + 0x90]
cmp byte [ebp + 0x14], 0
jne 0x4bf79b
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
cmp ecx, dword [ebp + 0xc]
jne 0x4bf687
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov edi, 0x20
cmovne edi, eax
cmp edi, ecx
jbe 0x4bf795
cmp edi, 0x3fffffff
ja 0x4bf795
lea eax, [edi*4]
push eax
push dword [ebp + 4]
call sym.fastboot.exe_OPENSSL_realloc
add esp, 8
test eax, eax
je 0x4bf795
mov dword [ebp + 4], eax
mov dword [ebp + 0xc], edi
mov ecx, dword [ebp + 8]
jmp 0x4bf68a
mov eax, dword [ebp + 4]
mov dword [eax + ecx*4], esi
add dword [ebp + 8], 1
jmp 0x4bf79b
and ebx, 0xfffffffc
pxor xmm1, xmm1
xor edi, edi
mov eax, dword [esp + 8]
movdqu xmm2, xmmword [eax + edi*4 + 4]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 + 0x14]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + edi*4 + 0x24]
movdqu xmm3, xmmword [eax + edi*4 + 0x34]
movdqu xmm4, xmmword [eax + edi*4 + 0x44]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + edi*4 + 0x54]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + edi*4 + 0x64]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + edi*4 + 0x74]
por xmm1, xmm2
add edi, 0x20
add ebx, 0xfffffffc
jne 0x4bf6a3
test esi, esi
je 0x4bf725
nop
lea ebx, [edi*4]
or ebx, 4
movdqu xmm2, xmmword [eax + ebx]
por xmm0, xmm2
movdqu xmm2, xmmword [eax + ebx + 0x10]
por xmm1, xmm2
add edi, 8
add esi, 0xffffffff
jne 0x4bf700
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
cmp edx, ecx
je 0x4bf75a
or ecx, 1
mov ebx, dword [esp]
mov edi, dword [esp + 8]
nop dword [eax]
or esi, dword [edi + ecx*4]
add ecx, 1
cmp ebx, ecx
jne 0x4bf750
test esi, esi
je 0x4bf776
mov dword [ebp], 1
push 0xb7
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
jmp 0x4bf454
mov eax, dword [esp + 0x80]
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov ecx, 1
jmp 0x4bf462
mov word [ebp + 0x14], 0x101
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x1c], eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 8], eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x20], eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x48], eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov edi, eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov esi, eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0xc], eax
push ebp
call sym.fastboot.exe_BN_CTX_get
add esp, 4
movd xmm0, dword [esp + 0x1c]
movd xmm1, dword [esp + 8]
punpckldq xmm0, xmm1
movd xmm1, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
movd xmm2, ecx
punpckldq xmm1, xmm2
punpcklqdq xmm0, xmm1
mov dword [esp + 0x4c], edi
movd xmm1, edi
movd xmm2, esi
mov ecx, dword [esp + 0xc]
punpckldq xmm1, xmm2
movd xmm2, ecx
movd xmm3, eax
punpckldq xmm2, xmm3
punpcklqdq xmm1, xmm2
pxor xmm2, xmm2
pcmpeqd xmm0, xmm2
pcmpeqd xmm1, xmm2
packssdw xmm0, xmm1
pmovmskb edx, xmm0
xor ecx, ecx
test edx, edx
je 0x4bf875
mov ebp, dword [esp + 0x90]
cmp byte [ebp + 0x14], 0
jne 0x4bf462
jmp 0x4bfa26
mov edi, esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 0x1c]
cmp edi, esi
je 0x4bf8d2
push dword [esi + 4]
push edi
call fcn.004b36f0
add esp, 8
test eax, eax
mov ebp, dword [esp + 0x90]
je 0x4bfa1a
mov eax, dword [esi + 4]
lea ecx, [eax*4]
test ecx, ecx
je 0x4bf8c7
push ecx
push dword [esi]
push dword [edi]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0xc], eax
jmp 0x4bf8e1
test esi, esi
mov ebp, dword [esp + 0x90]
je 0x4bfa1a
push dword [esp + 0x8c]
push dword [esp + 0xc]
call sym.fastboot.exe_BN_copy
add esp, 8
test eax, eax
je 0x4bfa1a
push 1
mov esi, dword [esp + 0x24]
push esi
call fcn.004b36f0
add esp, 8
test eax, eax
je 0x4bfa1a
mov dword [esi + 0xc], 0
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
push 1
mov edi, dword [esp + 0x48]
push edi
call fcn.004b36f0
add esp, 8
test eax, eax
je 0x4bfa1a
mov dword [edi + 0xc], 0
mov eax, dword [edi]
mov dword [eax], 1
mov dword [edi + 4], 1
push ebx
mov eax, dword [esp + 0x20]
push eax
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
push ebx
push dword [esp + 0xc]
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
push ebx
push esi
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
push ebx
push dword [esp + 0x50]
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
mov esi, dword [esp + 4]
push esi
push dword [esp + 0x4c]
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
push esi
push dword [esp + 0x48]
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
push ebx
push dword [esp + 0x10]
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4bfa1a
push ebx
push dword [esp + 0x64]
call sym.fastboot.exe_bn_resize_words
add esp, 8
test eax, eax
je 0x4c0a41
mov edx, dword [esp + 4]
mov eax, edx
shl eax, 5
mov ecx, dword [esp]
add ecx, edx
shl ecx, 5
mov dword [esp + 0x64], ecx
cmp ecx, eax
jae 0x4bfa42
push 0xf6
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x66
jmp 0x4c0a35
xor ecx, ecx
cmp byte [ebp + 0x14], 0
jne 0x4bf462
mov eax, dword [ebp + 4]
mov esi, ecx
mov ecx, dword [ebp + 8]
lea edx, [ecx - 1]
mov dword [ebp + 8], edx
mov eax, dword [eax + ecx*4 - 4]
mov ecx, esi
mov dword [ebp + 0x10], eax
jmp 0x4bf462
cmp dword [esp + 0x64], 0
mov edi, dword [esp + 0xc]
je 0x4c09ed
mov ebx, dword [esp]
lea eax, [ebx - 8]
mov dword [esp + 0x40], eax
mov ecx, eax
shr ecx, 3
add ecx, 1
mov eax, dword [esp + 4]
lea edx, [eax - 8]
mov dword [esp + 0x5c], edx
shr edx, 3
add edx, 1
and ebx, 0xfffffff8
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ecx
and ecx, 0xfffffffe
mov dword [esp + 0x34], ecx
and eax, 0xfffffff8
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
and edx, 0xfffffffe
mov dword [esp + 0x50], edx
mov dword [esp + 0x68], 0
jmp 0x4bfc34
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov edx, dword [esp + 8]
mov edi, dword [esp]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov esi, dword [ecx]
and esi, 1
add esi, 0xffffffff
mov edx, dword [edx]
mov edx, dword [edx]
and edx, 1
add edx, 0xffffffff
mov dword [esp + 0x24], edx
mov edx, esi
push edi
push eax
call fcn.004c27f0
add esp, 8
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ecx]
and eax, 1
neg eax
mov ebp, dword [esp + 0x48]
mov edx, dword [ebp]
mov ebx, dword [edx]
and ebx, 1
neg ebx
or ebx, eax
and ebx, esi
mov edx, ebx
push edi
mov eax, dword [esp + 0x10]
push dword [eax]
mov edi, dword [esp + 0x94]
push dword [edi]
call fcn.004c2ad0
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [ebp]
mov edx, ebx
mov eax, dword [esp + 4]
push eax
mov edi, eax
mov eax, dword [esp + 0x10]
push dword [eax]
mov eax, dword [esp + 0x90]
push dword [eax]
call fcn.004c2ad0
add esp, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp]
push ebx
mov eax, dword [esp + 0x10]
push dword [eax]
push esi
call fcn.004c2e50
add esp, 0xc
mov ecx, dword [ebp]
mov edx, dword [esp + 0x14]
push edi
mov eax, dword [esp + 0x10]
push dword [eax]
push esi
call fcn.004c2e50
add esp, 0xc
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov esi, dword [esp + 0x24]
mov edx, esi
push ebx
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.004c27f0
add esp, 8
mov ebp, dword [esp + 0x4c]
mov ecx, dword [ebp]
mov eax, dword [ecx]
and eax, 1
neg eax
mov edi, dword [esp + 0x44]
mov edx, dword [edi]
mov edx, dword [edx]
and edx, 1
neg edx
or edx, eax
and edx, esi
mov esi, edx
push ebx
mov eax, dword [esp + 0x10]
push dword [eax]
mov eax, dword [esp + 0x94]
push dword [eax]
call fcn.004c2ad0
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [edi]
mov edx, esi
mov esi, dword [esp + 4]
push esi
mov eax, dword [esp + 0x10]
push dword [eax]
mov eax, dword [esp + 0x90]
push dword [eax]
call fcn.004c2ad0
add esp, 0xc
mov dword [esp + 0x14], eax
mov ecx, dword [ebp]
mov edx, dword [esp + 0x18]
push ebx
mov eax, dword [esp + 0x10]
push dword [eax]
mov ebx, dword [esp + 0x2c]
push ebx
call fcn.004c2e50
add esp, 0xc
mov ecx, dword [edi]
mov edx, dword [esp + 0x14]
push esi
mov edi, dword [esp + 0x10]
push dword [edi]
push ebx
call fcn.004c2e50
add esp, 0xc
mov eax, dword [esp + 0x68]
add eax, 1
mov dword [esp + 0x68], eax
cmp eax, dword [esp + 0x64]
je 0x4c09ed
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [eax]
and ecx, 1
neg ecx
mov esi, dword [esp + 8]
mov edx, dword [esi]
mov ebx, dword [edx]
and ebx, 1
neg ebx
and ebx, ecx
push dword [esp]
push eax
push edx
push dword [edi]
call fcn.004b4840
add esp, 0x10
mov ecx, eax
neg ecx
mov dword [esp + 0x14], ecx
add eax, 0xffffffff
mov dword [esp + 0x18], ebx
and eax, ebx
mov ecx, dword [esi]
mov ebp, dword [edi]
mov dword [esp + 0x28], eax
not eax
mov dword [esp + 0x24], eax
cmp dword [esp], 0
mov ebx, dword [esp + 0x1c]
je 0x4bfe26
xor edx, edx
mov ebx, dword [esp]
cmp ebx, 8
mov dword [esp + 0x10], ebp
jb 0x4bfdb4
lea esi, [ebx*4]
add esi, ebp
cmp ecx, esi
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jae 0x4bfcc1
mov esi, dword [esp]
lea esi, [ecx + esi*4]
cmp ebp, esi
jb 0x4bfdb4
xor edx, edx
movd xmm0, eax
pshufd xmm1, xmm0, 0
movd xmm0, edi
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x40], 8
jb 0x4bfd65
mov eax, ebp
xor edx, edx
mov esi, dword [esp + 0x34]
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [ecx + edx*4], xmm4
movdqu xmmword [ecx + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [eax + edx*4 + 0x20]
movdqu xmm3, xmmword [eax + edx*4 + 0x30]
movdqu xmm4, xmmword [ecx + edx*4 + 0x20]
movdqu xmm5, xmmword [ecx + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [ecx + edx*4 + 0x20], xmm4
movdqu xmmword [ecx + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4bfce8
test byte [esp + 0x3c], 1
je 0x4bfda9
mov eax, dword [esp + 0x10]
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [ecx + edx*4], xmm4
movdqu xmmword [ecx + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x38]
mov edx, esi
cmp dword [esp], esi
je 0x4bfe16
mov esi, edx
or esi, 1
mov eax, dword [esp]
test al, 1
je 0x4bfddc
mov eax, dword [esp + 0x10]
mov edi, dword [eax + edx*4]
and edi, dword [esp + 0x28]
mov ebx, dword [ecx + edx*4]
and ebx, dword [esp + 0x24]
or ebx, edi
mov dword [ecx + edx*4], ebx
mov eax, dword [esp]
mov edx, esi
cmp eax, esi
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x10]
je 0x4bfe16
mov esi, dword [ebp + edx*4]
and esi, eax
mov edi, dword [ecx + edx*4]
and edi, ebx
or edi, esi
mov dword [ecx + edx*4], edi
mov esi, dword [ebp + edx*4 + 4]
and esi, eax
mov edi, dword [ecx + edx*4 + 4]
and edi, ebx
or edi, esi
mov dword [ecx + edx*4 + 4], edi
add edx, 2
cmp dword [esp], edx
jne 0x4bfdec
mov edi, dword [esp + 0xc]
mov ebp, dword [edi]
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp]
push esi
push ecx
push dword [ebx]
push ebp
call fcn.004b4840
add esp, 0x10
mov ecx, dword [esp + 0x18]
and ecx, dword [esp + 0x14]
mov eax, dword [edi]
mov dword [esp + 0x18], ecx
not ecx
mov dword [esp + 0x14], ecx
test esi, esi
je 0x4bffe7
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
xor edx, edx
cmp esi, 8
jb 0x4bff7f
mov ecx, esi
mov ebp, dword [esp + 0x10]
lea esi, [esi*4]
add esi, ebp
cmp eax, esi
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jae 0x4bfe8c
mov ecx, dword [esp]
lea esi, [eax + ecx*4]
cmp ebp, esi
jb 0x4bff7f
xor edx, edx
movd xmm0, edi
pshufd xmm1, xmm0, 0
movd xmm0, ebx
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x40], 8
jb 0x4bff30
mov ecx, ebp
xor edx, edx
mov esi, dword [esp + 0x34]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [ecx + edx*4 + 0x20]
movdqu xmm3, xmmword [ecx + edx*4 + 0x30]
movdqu xmm4, xmmword [eax + edx*4 + 0x20]
movdqu xmm5, xmmword [eax + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4 + 0x20], xmm4
movdqu xmmword [eax + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4bfeb3
test byte [esp + 0x3c], 1
je 0x4bff74
mov ecx, dword [esp + 0x10]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x38]
mov edx, esi
cmp dword [esp], esi
je 0x4bffe1
mov esi, edx
or esi, 1
mov ecx, dword [esp]
test cl, 1
je 0x4bffa8
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + edx*4]
and edi, dword [esp + 0x18]
mov ebx, dword [eax + edx*4]
and ebx, dword [esp + 0x14]
or ebx, edi
mov dword [eax + edx*4], ebx
mov ecx, dword [esp]
mov edx, esi
cmp ecx, esi
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
je 0x4bffe1
mov esi, dword [ecx + edx*4]
and esi, ebx
mov edi, dword [eax + edx*4]
and edi, ebp
or edi, esi
mov dword [eax + edx*4], edi
mov esi, dword [ecx + edx*4 + 4]
and esi, ebx
mov edi, dword [eax + edx*4 + 4]
and edi, ebp
or edi, esi
mov dword [eax + edx*4 + 4], edi
add edx, 2
cmp dword [esp], edx
jne 0x4bffb8
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov ebp, dword [esp]
push ebp
mov ecx, dword [esp + 0x50]
push dword [ecx]
mov ecx, dword [esp + 0x28]
push dword [ecx]
push eax
call fcn.004b37a0
add esp, 0x10
mov esi, eax
push ebp
mov eax, dword [esp + 0x90]
push dword [eax]
push dword [edi]
mov ebx, dword [esp + 0x6c]
push dword [ebx]
call fcn.004b4840
add esp, 0x10
sub esi, eax
mov eax, dword [edi]
mov dword [esp + 0x30], esi
not esi
mov dword [esp + 0x10], esi
test ebp, ebp
je 0x4c0040
mov ecx, dword [ebx]
xor edx, edx
cmp ebp, 8
jae 0x4c0047
mov ebp, dword [esp + 0x30]
jmp 0x4c0157
mov ebx, edi
jmp 0x4c04cd
mov ebx, ebp
lea esi, [ecx + ebp*4]
cmp eax, esi
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
jae 0x4c0066
mov esi, dword [esp]
lea esi, [eax + esi*4]
cmp ecx, esi
jb 0x4c0157
xor edx, edx
movd xmm0, ebp
pshufd xmm1, xmm0, 0
movd xmm0, edi
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x40], 8
jb 0x4c0108
xor edx, edx
mov esi, dword [esp + 0x34]
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [eax + edx*4 + 0x20]
movdqu xmm3, xmmword [eax + edx*4 + 0x30]
movdqu xmm4, xmmword [ecx + edx*4 + 0x20]
movdqu xmm5, xmmword [ecx + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4 + 0x20], xmm4
movdqu xmmword [eax + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4c008b
test byte [esp + 0x3c], 1
je 0x4c0148
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x38]
mov edx, esi
cmp dword [esp], esi
mov ebp, dword [esp + 0x30]
je 0x4c01af
mov esi, edx
or esi, 1
mov ebx, dword [esp]
test bl, 1
jne 0x4c0168
mov edi, ebx
jmp 0x4c017e
mov edi, dword [eax + edx*4]
and edi, ebp
mov ebx, dword [ecx + edx*4]
and ebx, dword [esp + 0x10]
or ebx, edi
mov dword [eax + edx*4], ebx
mov edi, dword [esp]
mov edx, esi
cmp edi, esi
mov ebx, dword [esp + 0x10]
je 0x4c01af
mov esi, dword [eax + edx*4]
and esi, ebp
mov edi, dword [ecx + edx*4]
and edi, ebx
or edi, esi
mov dword [eax + edx*4], edi
mov esi, dword [eax + edx*4 + 4]
and esi, ebp
mov edi, dword [ecx + edx*4 + 4]
and edi, ebx
or edi, esi
mov dword [eax + edx*4 + 4], edi
add edx, 2
cmp dword [esp], edx
jne 0x4c0186
xor edx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
mov ebx, dword [esp]
cmp ebx, 8
jb 0x4c02d5
mov esi, ebx
lea esi, [ecx + ebx*4]
cmp eax, esi
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
jae 0x4c01e8
mov esi, dword [esp]
lea esi, [eax + esi*4]
cmp ecx, esi
jb 0x4c02d5
xor edx, edx
movd xmm0, edi
pshufd xmm1, xmm0, 0
movd xmm0, ebx
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x40], 8
jb 0x4c028a
xor edx, edx
mov esi, dword [esp + 0x34]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [ecx + edx*4 + 0x20]
movdqu xmm3, xmmword [ecx + edx*4 + 0x30]
movdqu xmm4, xmmword [eax + edx*4 + 0x20]
movdqu xmm5, xmmword [eax + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4 + 0x20], xmm4
movdqu xmmword [eax + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4c020d
test byte [esp + 0x3c], 1
je 0x4c02ca
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x38]
mov edx, esi
cmp dword [esp], esi
je 0x4c0333
mov esi, edx
or esi, 1
mov ebx, dword [esp]
test bl, 1
jne 0x4c02e6
mov edi, ebx
jmp 0x4c02fe
mov edi, dword [ecx + edx*4]
and edi, dword [esp + 0x18]
mov ebx, dword [eax + edx*4]
and ebx, dword [esp + 0x14]
or ebx, edi
mov dword [eax + edx*4], ebx
mov edi, dword [esp]
mov edx, esi
cmp edi, esi
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
je 0x4c0333
mov esi, dword [ecx + edx*4]
and esi, ebx
mov edi, dword [eax + edx*4]
and edi, ebp
or edi, esi
mov dword [eax + edx*4], edi
mov esi, dword [ecx + edx*4 + 4]
and esi, ebx
mov edi, dword [eax + edx*4 + 4]
and edi, ebp
or edi, esi
mov dword [eax + edx*4 + 4], edi
add edx, 2
cmp dword [esp], edx
jne 0x4c030a
xor edx, edx
mov eax, dword [esp + 0x4c]
mov edi, dword [eax]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [esp]
cmp ecx, 8
mov dword [esp + 0x2c], eax
jae 0x4c0356
mov ebp, dword [esp + 0x28]
jmp 0x4c0468
lea esi, [eax + ecx*4]
cmp edi, esi
mov ebp, dword [esp + 0x28]
jae 0x4c036f
mov ecx, dword [esp]
lea esi, [edi + ecx*4]
cmp eax, esi
jb 0x4c0468
xor edx, edx
movd xmm0, ebp
pshufd xmm1, xmm0, 0
movd xmm0, dword [esp + 0x24]
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x40], 8
jb 0x4c0415
mov ecx, eax
xor edx, edx
mov esi, dword [esp + 0x34]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [edi + edx*4]
movdqu xmm5, xmmword [edi + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [edi + edx*4], xmm4
movdqu xmmword [edi + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [ecx + edx*4 + 0x20]
movdqu xmm3, xmmword [ecx + edx*4 + 0x30]
movdqu xmm4, xmmword [edi + edx*4 + 0x20]
movdqu xmm5, xmmword [edi + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [edi + edx*4 + 0x20], xmm4
movdqu xmmword [edi + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4c0398
test byte [esp + 0x3c], 1
je 0x4c0459
mov eax, dword [esp + 0x2c]
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [edi + edx*4]
movdqu xmm5, xmmword [edi + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [edi + edx*4], xmm4
movdqu xmmword [edi + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x38]
mov edx, esi
cmp dword [esp], esi
mov ebp, dword [esp + 0x28]
je 0x4c04c7
mov esi, edx
or esi, 1
mov eax, dword [esp]
test al, 1
mov ecx, edi
je 0x4c0492
mov eax, dword [esp + 0x2c]
mov edi, dword [eax + edx*4]
and edi, ebp
mov ebx, dword [ecx + edx*4]
and ebx, dword [esp + 0x24]
or ebx, edi
mov eax, ecx
mov dword [ecx + edx*4], ebx
mov eax, dword [esp]
mov edx, esi
cmp eax, esi
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
je 0x4c04c7
mov esi, dword [eax + edx*4]
and esi, ebp
mov edi, dword [ecx + edx*4]
and edi, ebx
or edi, esi
mov dword [ecx + edx*4], edi
mov esi, dword [eax + edx*4 + 4]
and esi, ebp
mov edi, dword [ecx + edx*4 + 4]
and edi, ebx
or edi, esi
mov dword [ecx + edx*4 + 4], edi
add edx, 2
cmp dword [esp], edx
jne 0x4c049e
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov esi, dword [esp + 0x88]
mov edi, dword [esp + 4]
push edi
mov ecx, dword [esp + 0x48]
push dword [ecx]
mov ecx, dword [esp + 0x50]
push dword [ecx]
push eax
call fcn.004b37a0
add esp, 0x10
push edi
push dword [esi]
push dword [ebx]
mov ebp, dword [esp + 0x6c]
push dword [ebp]
call fcn.004b4840
add esp, 0x10
mov eax, dword [ebx]
test edi, edi
je 0x4c051f
mov ecx, dword [ebp]
xor edx, edx
cmp edi, 8
mov dword [esp + 0x2c], ecx
jae 0x4c052b
mov ebp, dword [esp + 0x30]
jmp 0x4c0647
mov edi, dword [esp]
mov edx, dword [esp + 8]
jmp 0x4bfab2
mov esi, dword [esp + 4]
lea esi, [ecx + esi*4]
cmp eax, esi
mov ebp, dword [esp + 0x30]
mov edi, ecx
mov ecx, dword [esp + 0x10]
jae 0x4c054f
mov esi, dword [esp + 4]
lea esi, [eax + esi*4]
cmp edi, esi
jb 0x4c0647
xor edx, edx
movd xmm0, ebp
pshufd xmm1, xmm0, 0
movd xmm0, ecx
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x5c], 8
jb 0x4c05f3
mov ecx, edi
xor edx, edx
mov esi, dword [esp + 0x50]
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [eax + edx*4 + 0x20]
movdqu xmm3, xmmword [eax + edx*4 + 0x30]
movdqu xmm4, xmmword [ecx + edx*4 + 0x20]
movdqu xmm5, xmmword [ecx + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4 + 0x20], xmm4
movdqu xmmword [eax + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4c0576
test byte [esp + 0x58], 1
je 0x4c0637
movdqu xmm2, xmmword [eax + edx*4]
movdqu xmm3, xmmword [eax + edx*4 + 0x10]
mov ecx, dword [esp + 0x2c]
movdqu xmm4, xmmword [ecx + edx*4]
movdqu xmm5, xmmword [ecx + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x54]
mov edx, esi
cmp dword [esp + 4], esi
mov ebp, dword [esp + 0x30]
je 0x4c06a2
mov esi, edx
or esi, 1
test byte [esp + 4], 1
je 0x4c066a
mov edi, dword [eax + edx*4]
and edi, ebp
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ecx + edx*4]
and ebx, dword [esp + 0x10]
or ebx, edi
mov dword [eax + edx*4], ebx
mov edx, esi
cmp dword [esp + 4], esi
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
je 0x4c06a2
mov esi, dword [eax + edx*4]
and esi, ebp
mov edi, dword [ebx + edx*4]
and edi, ecx
or edi, esi
mov dword [eax + edx*4], edi
mov esi, dword [eax + edx*4 + 4]
and esi, ebp
mov edi, dword [ebx + edx*4 + 4]
and edi, ecx
or edi, esi
mov dword [eax + edx*4 + 4], edi
add edx, 2
cmp dword [esp + 4], edx
jne 0x4c0678
xor edx, edx
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov ebx, dword [ecx]
cmp dword [esp + 4], 8
mov dword [esp + 0x10], ebx
jae 0x4c06c4
mov ecx, dword [esp + 0x18]
jmp 0x4c07de
mov ecx, dword [esp + 4]
lea esi, [ebx + ecx*4]
cmp eax, esi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jae 0x4c06e6
mov esi, dword [esp + 4]
lea esi, [eax + esi*4]
cmp ebx, esi
jb 0x4c07de
xor edx, edx
movd xmm0, ecx
pshufd xmm1, xmm0, 0
movd xmm0, edi
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x5c], 8
jb 0x4c078a
mov ecx, ebx
xor edx, edx
mov esi, dword [esp + 0x50]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [ecx + edx*4 + 0x20]
movdqu xmm3, xmmword [ecx + edx*4 + 0x30]
movdqu xmm4, xmmword [eax + edx*4 + 0x20]
movdqu xmm5, xmmword [eax + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4 + 0x20], xmm4
movdqu xmmword [eax + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4c070d
test byte [esp + 0x58], 1
je 0x4c07ce
mov ecx, dword [esp + 0x10]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x54]
mov edx, esi
cmp dword [esp + 4], esi
mov ecx, dword [esp + 0x18]
je 0x4c0839
mov esi, edx
or esi, 1
test byte [esp + 4], 1
je 0x4c0801
mov edi, dword [esp + 0x10]
mov edi, dword [edi + edx*4]
and edi, ecx
mov ebx, dword [eax + edx*4]
and ebx, dword [esp + 0x14]
or ebx, edi
mov dword [eax + edx*4], ebx
mov edx, esi
cmp dword [esp + 4], esi
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
je 0x4c0839
mov esi, dword [ebx + edx*4]
and esi, ecx
mov edi, dword [eax + edx*4]
and edi, ebp
or edi, esi
mov dword [eax + edx*4], edi
mov esi, dword [ebx + edx*4 + 4]
and esi, ecx
mov edi, dword [eax + edx*4 + 4]
and edi, ebp
or edi, esi
mov dword [eax + edx*4 + 4], edi
add edx, 2
cmp dword [esp + 4], edx
jne 0x4c080f
xor ebp, ebp
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx]
cmp dword [esp + 4], 8
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
jae 0x4c0863
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x28]
jmp 0x4c097f
mov ebx, dword [esp + 4]
lea esi, [edi + ebx*4]
cmp eax, esi
mov ecx, dword [esp + 0x28]
jae 0x4c087d
lea esi, [eax + ebx*4]
cmp edi, esi
jb 0x4c097f
xor edx, edx
movd xmm0, ecx
pshufd xmm1, xmm0, 0
movd xmm0, dword [esp + 0x24]
pshufd xmm0, xmm0, 0
cmp dword [esp + 0x5c], 8
jb 0x4c0921
xor edx, edx
mov esi, dword [esp + 0x50]
movdqu xmm2, xmmword [edi + edx*4]
movdqu xmm3, xmmword [edi + edx*4 + 0x10]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
movdqu xmm2, xmmword [edi + edx*4 + 0x20]
movdqu xmm3, xmmword [edi + edx*4 + 0x30]
movdqu xmm4, xmmword [eax + edx*4 + 0x20]
movdqu xmm5, xmmword [eax + edx*4 + 0x30]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4 + 0x20], xmm4
movdqu xmmword [eax + edx*4 + 0x30], xmm5
add edx, 0x10
add esi, 0xfffffffe
jne 0x4c08a4
test byte [esp + 0x58], 1
je 0x4c0969
mov ecx, dword [esp + 0x18]
movdqu xmm2, xmmword [ecx + edx*4]
movdqu xmm3, xmmword [ecx + edx*4 + 0x10]
mov eax, dword [esp + 0x14]
movdqu xmm4, xmmword [eax + edx*4]
movdqu xmm5, xmmword [eax + edx*4 + 0x10]
pand xmm2, xmm1
pand xmm3, xmm1
pand xmm4, xmm0
por xmm4, xmm2
pand xmm5, xmm0
por xmm5, xmm3
movdqu xmmword [eax + edx*4], xmm4
movdqu xmmword [eax + edx*4 + 0x10], xmm5
mov esi, dword [esp + 0x54]
mov ebp, esi
mov ebx, dword [esp + 4]
cmp ebx, esi
mov ecx, dword [esp + 0x28]
je 0x4bfaa5
mov esi, ebp
or esi, 1
test bl, 1
je 0x4c09a4
mov edi, dword [esp + 0x18]
mov edi, dword [edi + ebp*4]
and edi, ecx
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + ebp*4]
and ebx, dword [esp + 0x24]
or ebx, edi
mov dword [eax + ebp*4], ebx
mov ebp, esi
mov eax, dword [esp + 4]
cmp eax, esi
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
je 0x4bfaa5
mov esi, dword [ebx + ebp*4]
and esi, ecx
mov edi, dword [edx + ebp*4]
mov eax, dword [esp + 0x24]
and edi, eax
or edi, esi
mov dword [edx + ebp*4], edi
mov esi, dword [ebx + ebp*4 + 4]
and esi, ecx
mov edi, dword [edx + ebp*4 + 4]
and edi, eax
or edi, esi
mov dword [edx + ebp*4 + 4], edi
mov eax, dword [esp + 4]
add ebp, 2
cmp eax, ebp
jne 0x4c09b8
jmp 0x4bfaa5
push dword [esp + 0x1c]
call sym.fastboot.exe_BN_is_one
add esp, 4
test eax, eax
je 0x4c0a1c
push dword [esp + 0x20]
push dword [esp + 0x84]
call sym.fastboot.exe_BN_copy
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp 0x4bf85f
mov eax, dword [esp + 0x84]
mov dword [eax], 1
push 0x13d
push str.external_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
push 0x70
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
mov ebp, dword [esp + 0x90]
xor ecx, ecx
cmp byte [ebp + 0x14], 0
jne 0x4bf462
jmp 0x4bfa26