Function at 0x5097c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov esi, dword [ebp + 8]
cmp dword [esi + 4], 0
je 0x50982b
cmp dword [esi + 0xc], 0
je 0x50982b
push 0x18
call fcn.005166d0
add esp, 4
test eax, eax
je 0x509852
mov edi, eax
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
mov dword [eax + 0x12], 0
mov dword [eax + 0xe], 0
push 0x80
push 0
call fcn.00516810
add esp, 8
test eax, eax
je 0x509861
mov dword [edi + 4], eax
mov dword [edi + 0xc], 0x20
mov ecx, dword [edi + 8]
mov dword [eax + ecx*4], 0
add dword [edi + 8], 1
jmp 0x509867
push 0x2b1
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x90
push 0
push 4
call fcn.004d86c0
add esp, 0x14
xor ebx, ebx
mov eax, ebx
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x6f
push str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_ctx.c
push 0x41
push 0
push 3
jmp 0x50983e
mov word [edi + 0x14], 0x101
push edi
call fcn.004dfca0
add esp, 4
mov ebx, eax
mov dword [ebp - 0x20], edi
push edi
call fcn.004dfca0
mov edi, ebx
add esp, 4
test ebx, ebx
je 0x5098c8
mov ebx, eax
test eax, eax
je 0x5098c8
push edi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.004df430
add esp, 0xc
test eax, eax
je 0x5098e0
mov eax, dword [esi + 4]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
push dword [eax + 4]
push dword [eax]
call fcn.004df8a0
add esp, 8
test eax, eax
js 0x50997a
push 0x2ce
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x73
jmp 0x5098d4
push 0x2c4
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x41
push 0
push 4
call fcn.004d86c0
add esp, 0x14
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0
mov edi, dword [ebp - 0x20]
cmp byte [edi + 0x14], 0
jne 0x50990c
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
lea edx, [ecx - 1]
mov dword [edi + 8], edx
mov eax, dword [eax + ecx*4 - 4]
mov dword [edi + 0x10], eax
push fcn.004df1b0
push 0x50cb20
push dword [edi]
call fcn.005170f0
add esp, 0xc
push dword [edi + 4]
call fcn.00516700
add esp, 4
push edi
call fcn.00516700
add esp, 4
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x509848
mov eax, dword [ebp - 0x3c]
cmp eax, 0x400
jne 0x509951
push ecx
call fcn.004f1810
jmp 0x509972
mov dword [ebp - 0x3c], eax
mov edi, esi
add esi, 0x30
push esi
call fcn.0057fb80
add esp, 4
mov eax, dword [edi + 0x58]
mov ecx, dword [ebp - 0x3c]
mov byte [eax + ecx], 0
push esi
call fcn.0057fba0
add esp, 4
jmp 0x509848
mov dword [ebp - 0x30], edi
mov ecx, esi
mov edi, dword [ebp - 0x20]
mov edx, edi
call fcn.0050ad70
test eax, eax
je 0x5099ae
mov ecx, dword [esi + 0x2c]
cmp dword [esi + 8], 0
jne 0x5099db
mov eax, ecx
and eax, 8
jne 0x5099db
push 0x2de
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x82
jmp 0x5099ba
push 0x2d3
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
push 0
push 4
call fcn.004d86c0
add esp, 0x14
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0
jmp 0x5098f3
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x50], ecx
test cl, 8
mov dword [ebp - 0x18], ebx
jne 0x509bc1
lea eax, [esi + 0x30]
mov dword [ebp - 0x1c], eax
push eax
call fcn.0057fb80
add esp, 4
mov ebx, dword [esi + 0x50]
mov eax, dword [esi + 0x60]
or eax, dword [esi + 0x64]
je 0x509a41
test ebx, ebx
je 0x509a31
xor eax, eax
mov ecx, dword [esi + 0x54]
mov ecx, dword [ecx + eax*4]
mov dword [ecx + 8], 0x1f
add eax, 1
mov ebx, dword [esi + 0x50]
cmp eax, ebx
jb 0x509a18
jmp 0x509a33
xor ebx, ebx
mov dword [esi + 0x64], 0
mov dword [esi + 0x60], 0
test ebx, ebx
je 0x509a86
push ebx
push 0
push dword [esi + 0x58]
call fcn.00644310
add esp, 0xc
test eax, eax
je 0x509a6b
mov byte [eax], 1
sub eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x54]
mov dword [ebp - 0x3c], eax
mov ebx, dword [ecx + eax*4]
jmp 0x509b8d
cmp ebx, 0x400
jb 0x509a86
mov dword [ebp - 0x3c], 0x400
call fcn.005056e0
mov ebx, eax
jmp 0x509b8d
lea eax, [ebx + ebx]
test ebx, ebx
mov ecx, 1
cmovne ecx, eax
cmp ecx, 0x400
mov esi, 0x400
cmovb esi, ecx
lea eax, [esi*4]
push eax
call fcn.005166d0
add esp, 4
mov ebx, eax
mov dword [ebp - 0x14], esi
push esi
call fcn.005166d0
mov edx, ebx
add esp, 4
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x509c8a
cmp dword [ebp - 0x10], 0
je 0x509c8a
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x50]
lea ecx, [eax*4]
test ecx, ecx
mov ebx, edx
je 0x509af9
push ecx
push dword [esi + 0x54]
push ebx
call fcn.006452d0
add esp, 0xc
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x34], ebx
test eax, eax
je 0x509b14
push eax
push dword [esi + 0x58]
push dword [ebp - 0x10]
call fcn.006452d0
add esp, 0xc
mov ebx, dword [esi + 0x50]
jmp 0x509b16
xor ebx, ebx
cmp ebx, dword [ebp - 0x14]
jae 0x509b39
call fcn.005056e0
mov ecx, dword [ebp - 0x34]
mov dword [ecx + ebx*4], eax
test eax, eax
je 0x509c6b
add ebx, 1
cmp dword [ebp - 0x14], ebx
jne 0x509b1b
mov ebx, dword [esi + 0x50]
mov eax, dword [ebp - 0x10]
add eax, ebx
mov ecx, dword [ebp - 0x14]
sub ecx, ebx
push ecx
push 0
push eax
call fcn.00645dd0
add esp, 0xc
mov eax, dword [esi + 0x50]
mov ecx, dword [ebp - 0x10]
mov byte [ecx + eax], 1
mov eax, dword [esi + 0x50]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ecx + eax*4]
push dword [esi + 0x54]
call fcn.00516700
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x54], eax
push dword [esi + 0x58]
call fcn.00516700
add esp, 4
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x58], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x50], eax
push dword [ebp - 0x1c]
call fcn.0057fba0
add esp, 4
test ebx, ebx
je 0x509cb5
push edi
push dword [esi + 0x34]
push dword [esi + 8]
mov dword [ebp - 0x34], ebx
push ebx
push dword [ebp - 0x30]
call fcn.005057b0
add esp, 0x14
test eax, eax
je 0x50a1c5
mov ebx, dword [ebp - 0x18]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x509dc8
mov edx, dword [esi + 0x14]
test edx, edx
je 0x509dc8
cmp dword [esi + 8], 0
je 0x509dc8
cmp dword [esi + 0x18], 0
je 0x509dc8
cmp dword [esi + 0x1c], 0
je 0x509dc8
cmp dword [esi + 0x20], 0
je 0x509dc8
cmp dword [edx + 0xc], 0
jne 0x509dc8
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [edx + 4]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
jbe 0x509dbe
mov esi, dword [edx]
xor edx, edx
cmp dword [ebp - 0x24], 8
jb 0x509d9e
mov edx, dword [ebp - 0x24]
and edx, 0xfffffff8
mov dword [ebp - 0x28], edx
add edx, 0xfffffff8
mov ebx, edx
shr ebx, 3
add ebx, 1
mov edi, ebx
and ebx, 3
mov dword [ebp - 0x2c], ebx
cmp edx, 0x18
jae 0x509cdb
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
jmp 0x509d4a
mov esi, dword [esi + 0x50]
cmp esi, ebx
mov edx, dword [ebp - 0x34]
jae 0x509c8a
push dword [edx + esi*4]
call fcn.004f1810
mov edx, dword [ebp - 0x34]
add esp, 4
add esi, 1
cmp ebx, esi
jne 0x509c75
push dword [ebp - 0x10]
mov esi, edx
call fcn.00516700
add esp, 4
push esi
call fcn.00516700
add esp, 4
push dword [ebp - 0x1c]
call fcn.0057fba0
add esp, 4
mov dword [ebp - 0x3c], 0
mov esi, dword [ebp + 8]
push 0x2e5
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
push 0
push 4
call fcn.004d86c0
add esp, 0x14
xor ebx, ebx
mov dword [ebp - 0x34], 0
jmp 0x5098f3
mov eax, dword [ebp - 0x14]
lea ebx, [esi + eax*4]
add ebx, 0x70
and edi, 0xfffffffc
neg edi
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
movdqu xmm2, xmmword [ebx + edx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ebx + edx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ebx + edx*4 - 0x50]
movdqu xmm3, xmmword [ebx + edx*4 - 0x40]
movdqu xmm4, xmmword [ebx + edx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ebx + edx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ebx + edx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ebx + edx*4]
por xmm1, xmm2
add edx, 0x20
add edi, 4
jne 0x509cf3
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x509d73
add edx, dword [ebp - 0x14]
lea edx, [esi + edx*4]
add edx, 0x10
neg ebx
movdqu xmm2, xmmword [edx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edx]
por xmm1, xmm2
add edx, 0x20
inc ebx
jne 0x509d5c
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd edx, xmm0
mov edi, dword [ebp - 0x24]
cmp edi, dword [ebp - 0x28]
je 0x509dae
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x28]
mov dword [ebp - 0x14], eax
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
or edx, dword [esi + ecx*4]
add ecx, 1
cmp edi, ecx
jne 0x509da4
test edx, edx
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
jne 0x509dc8
cmp dword [eax + 0xc], 0
je 0x50a4c8
push dword [esi + 0x34]
push edi
push dword [esi + 4]
push dword [esi + 0x40]
push dword [ebp - 0x30]
push ebx
call fcn.004e3720
add esp, 0x18
test eax, eax
je 0x50a1c5
cmp dword [esi + 8], 0
je 0x50a1cc
push edi
call fcn.004dfca0
add esp, 4
test eax, eax
je 0x50a1ad
mov ebx, eax
push dword [esi + 0x34]
push edi
push dword [esi + 4]
push dword [esi + 8]
push dword [ebp - 0x18]
push eax
call fcn.004e24c0
add esp, 0x18
test eax, eax
je 0x50a1ad
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebx + 4]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
xor ebx, ebx
mov dword [ebp - 0x14], ecx
sub ecx, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], eax
jge 0x509f60
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx]
mov dword [ebp - 0x10], ecx
mov edx, eax
mov ecx, dword [ebp - 0x14]
sub edx, ecx
xor ebx, ebx
cmp edx, 7
jbe 0x509f53
mov dword [ebp - 0x38], edx
mov ecx, edx
and ecx, 0xfffffff8
lea eax, [ecx - 8]
mov ebx, eax
shr ebx, 3
add ebx, 1
mov edx, ebx
and edx, 3
mov dword [ebp - 0x2c], edx
cmp eax, 0x18
jae 0x509e86
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
jmp 0x509ef8
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
lea edx, [eax + edx*4]
add edx, 0x70
and ebx, 0xfffffffc
neg ebx
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
movdqu xmm2, xmmword [edx + eax*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edx + eax*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edx + eax*4 - 0x50]
movdqu xmm3, xmmword [edx + eax*4 - 0x40]
movdqu xmm4, xmmword [edx + eax*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edx + eax*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edx + eax*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edx + eax*4]
por xmm1, xmm2
add eax, 0x20
add ebx, 4
jne 0x509ea1
cmp dword [ebp - 0x2c], 0
mov ebx, dword [ebp - 0x14]
je 0x509f28
add eax, ebx
mov edx, dword [ebp - 0x10]
lea eax, [edx + eax*4]
add eax, 0x10
mov edx, dword [ebp - 0x2c]
neg edx
movdqu xmm2, xmmword [eax - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax]
por xmm1, xmm2
add eax, 0x20
inc edx
jne 0x509f11
mov eax, ebx
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ebx, xmm0
cmp dword [ebp - 0x38], ecx
jne 0x509f4e
mov eax, dword [ebp - 0x24]
jmp 0x509f60
add ecx, eax
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x10]
or ebx, dword [edx + ecx*4]
add ecx, 1
cmp eax, ecx
jne 0x509f56
cmp eax, dword [ebp - 0x14]
jge 0x50a061
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
cmp ecx, 7
mov dword [ebp - 0x10], eax
ja 0x509f81
mov ecx, dword [ebp - 0x24]
jmp 0x50a06b
and ecx, 0xfffffff8
movd xmm0, ebx
lea edx, [ecx - 8]
mov eax, edx
shr eax, 3
add eax, 1
mov ebx, eax
and ebx, 3
mov dword [ebp - 0x2c], ebx
cmp edx, 0x18
jae 0x509fa8
pxor xmm1, xmm1
xor ebx, ebx
jmp 0x50a016
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x10]
lea edx, [ebx + edx*4]
add edx, 0x70
and eax, 0xfffffffc
neg eax
pxor xmm1, xmm1
xor ebx, ebx
movdqu xmm2, xmmword [edx + ebx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edx + ebx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edx + ebx*4 - 0x50]
movdqu xmm3, xmmword [edx + ebx*4 - 0x40]
movdqu xmm4, xmmword [edx + ebx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edx + ebx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edx + ebx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edx + ebx*4]
por xmm1, xmm2
add ebx, 0x20
add eax, 4
jne 0x509fbf
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x50a042
add ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
lea eax, [eax + ebx*4]
add eax, 0x10
neg edx
movdqu xmm2, xmmword [eax - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax]
por xmm1, xmm2
add eax, 0x20
inc edx
jne 0x50a02b
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ebx, xmm0
cmp dword [ebp - 0x1c], ecx
jne 0x50a066
mov edx, dword [ebp - 0x14]
jmp 0x50a07b
mov eax, dword [ebp - 0x24]
add ecx, eax
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
or ebx, dword [eax + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x50a071
mov eax, dword [ebp - 0x24]
cmp edx, eax
cmovl eax, edx
test eax, eax
jle 0x50a19a
mov edx, eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
xor eax, eax
cmp edx, 3
mov dword [ebp - 0x1c], ecx
jbe 0x50a181
mov dword [ebp - 0x24], edx
and edx, 0xfffffffc
movd xmm0, ebx
mov eax, edx
lea ecx, [edx - 4]
mov edx, ecx
shr edx, 2
add edx, 1
mov ebx, edx
and edx, 3
mov dword [ebp - 0x2c], edx
cmp ecx, 0xc
jae 0x50a0d0
xor ecx, ecx
jmp 0x50a137
and ebx, 0xfffffffc
neg ebx
mov dword [ebp - 0x10], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
movdqu xmm1, xmmword [ebx + ecx*4]
movdqu xmm2, xmmword [ebx + ecx*4 + 0x10]
movdqu xmm3, xmmword [edx + ecx*4]
pxor xmm3, xmm1
por xmm3, xmm0
movdqu xmm0, xmmword [edx + ecx*4 + 0x10]
pxor xmm0, xmm2
movdqu xmm1, xmmword [ebx + ecx*4 + 0x20]
movdqu xmm2, xmmword [edx + ecx*4 + 0x20]
pxor xmm2, xmm1
por xmm2, xmm0
por xmm2, xmm3
movdqu xmm1, xmmword [ebx + ecx*4 + 0x30]
movdqu xmm0, xmmword [edx + ecx*4 + 0x30]
pxor xmm0, xmm1
por xmm0, xmm2
add ecx, 0x10
add dword [ebp - 0x10], 4
jne 0x50a0e0
mov edx, dword [ebp - 0x2c]
test edx, edx
mov ebx, dword [ebp - 0x14]
je 0x50a164
shl ecx, 2
neg edx
movdqu xmm1, xmmword [ebx + ecx]
mov ebx, dword [ebp - 0x1c]
movdqu xmm2, xmmword [ebx + ecx]
mov ebx, dword [ebp - 0x14]
pxor xmm2, xmm1
por xmm0, xmm2
add ecx, 0x10
inc edx
jne 0x50a146
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ebx, xmm0
mov edx, dword [ebp - 0x24]
cmp edx, eax
je 0x50a19a
mov ecx, dword [ebp - 0x1c]
mov edi, eax
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebp - 0x14]
xor ecx, dword [eax + edi*4]
or ebx, ecx
add edi, 1
mov eax, edi
cmp edx, edi
jne 0x50a181
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x28]
xor eax, dword [ecx + 0xc]
or eax, ebx
mov edi, dword [ebp - 0x20]
je 0x50a1cc
push 0x30b
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
push 0
push 4
call fcn.004d86c0
add esp, 0x14
xor ebx, ebx
jmp 0x5098f3
test byte [ebp - 0x50], 8
mov ebx, dword [ebp - 0x18]
jne 0x50a1ed
push edi
push dword [esi + 0x34]
mov eax, dword [ebp - 0x34]
push dword [eax + 4]
push ebx
push ebx
call fcn.004e2d80
add esp, 0x14
test eax, eax
je 0x50a1c5
mov edx, dword [ebx]
mov eax, dword [ebx + 4]
lea ecx, [eax*4]
mov ebx, dword [ebp + 0x14]
cmp ecx, ebx
jbe 0x50a331
mov dword [ebp - 0x30], edx
shl eax, 2
mov dword [ebp - 0x14], eax
mov ecx, eax
sub ecx, ebx
xor eax, eax
mov edx, ebx
cmp ecx, 8
jb 0x50a30a
mov dword [ebp - 0x1c], ecx
mov edx, ecx
and edx, 0xfffffff8
lea eax, [edx - 8]
mov ebx, eax
shr ebx, 3
add ebx, 1
test eax, eax
mov dword [ebp - 0x18], ebx
je 0x50a2a9
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 0x14]
add ecx, eax
add ecx, 0xc
mov eax, ebx
and eax, 0xfffffffe
neg eax
pxor xmm2, xmm2
xor ebx, ebx
pxor xmm0, xmm0
pxor xmm1, xmm1
movd xmm3, dword [ecx + ebx - 0xc]
movd xmm4, dword [ecx + ebx - 8]
punpcklbw xmm3, xmm2
punpcklwd xmm3, xmm2
por xmm3, xmm0
punpcklbw xmm4, xmm2
punpcklwd xmm4, xmm2
por xmm4, xmm1
movd xmm0, dword [ecx + ebx - 4]
movd xmm1, dword [ecx + ebx]
punpcklbw xmm0, xmm2
punpcklwd xmm0, xmm2
por xmm0, xmm3
punpcklbw xmm1, xmm2
punpcklwd xmm1, xmm2
por xmm1, xmm4
add ebx, 0x10
add eax, 2
jne 0x50a258
jmp 0x50a2b3
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
test byte [ebp - 0x18], 1
je 0x50a2e6
add ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0x30]
movd xmm2, dword [eax + ebx + 4]
pxor xmm3, xmm3
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
por xmm1, xmm2
movd xmm2, dword [eax + ebx]
punpcklbw xmm2, xmm3
punpcklwd xmm2, xmm3
por xmm0, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [ebp - 0x1c], edx
je 0x50a31d
mov ebx, dword [ebp + 0x14]
add edx, ebx
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x30]
movzx ecx, byte [ecx + edx]
or eax, ecx
add edx, 1
cmp ebx, edx
jne 0x50a30d
mov ecx, dword [ebp + 0x14]
test eax, eax
mov edx, dword [ebp - 0x30]
je 0x50a331
push 0x31d
jmp 0x50a1b2
test ecx, ecx
je 0x50a4a5
xor ebx, ebx
cmp ecx, 0x1f
mov dword [ebp - 0x18], ecx
jbe 0x50a41a
mov eax, dword [ebp + 0x14]
sub eax, ecx
add eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
add ecx, edx
cmp eax, ecx
mov ecx, dword [ebp - 0x18]
jae 0x50a36e
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
add eax, ecx
mov ecx, dword [ebp - 0x18]
cmp edx, eax
jb 0x50a41a
mov ebx, ecx
and ebx, 0xffffffe0
mov dword [ebp - 0x30], edx
lea eax, [edx + 0x10]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
add ecx, edx
add ecx, 0xfffffff0
mov edx, ebx
neg edx
mov dword [ebp - 0x14], edx
xor edx, edx
pxor xmm0, xmm0
movdqu xmm1, xmmword [eax - 0x10]
movdqu xmm2, xmmword [eax]
movdqa xmm3, xmm1
punpcklbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqu xmmword [ecx + edx], xmm1
movdqa xmm1, xmm2
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpckhbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm1
movdqu xmmword [ecx + edx - 0x10], xmm2
add eax, 0x20
add edx, 0xffffffe0
cmp dword [ebp - 0x14], edx
jne 0x50a391
mov ecx, dword [ebp - 0x18]
cmp ecx, ebx
mov edx, dword [ebp - 0x30]
je 0x50a4a5
mov eax, ebx
not eax
add eax, ecx
and ecx, 3
je 0x50a465
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
add eax, esi
add eax, 0xffffffff
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x30], edx
lea eax, [edx + ebx]
mov dword [ebp - 0x1c], eax
neg ebx
xor esi, esi
mov eax, dword [ebp - 0x1c]
movzx edx, byte [eax + esi]
mov eax, dword [ebp - 0x14]
mov byte [eax + ebx], dl
add ebx, 0xffffffff
add esi, 1
cmp ecx, esi
jne 0x50a443
neg ebx
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x50]
cmp eax, 3
mov ecx, dword [ebp - 0x18]
jb 0x50a4a5
mov eax, dword [ebp + 0x14]
sub eax, ebx
mov ecx, dword [ebp + 0xc]
add eax, ecx
add eax, 0xffffffff
movzx ecx, byte [edx + ebx]
mov byte [eax], cl
movzx ecx, byte [edx + ebx + 1]
mov byte [eax - 1], cl
movzx ecx, byte [edx + ebx + 2]
mov byte [eax - 2], cl
movzx ecx, byte [edx + ebx + 3]
mov byte [eax - 3], cl
mov ecx, dword [ebp - 0x18]
add ebx, 4
add eax, 0xfffffffc
cmp ecx, ebx
jne 0x50a47a
mov ebx, 1
mov eax, dword [ebp + 0x14]
sub eax, ecx
je 0x5098f3
push eax
push 0
push dword [ebp + 0xc]
call fcn.00645dd0
add esp, 0xc
jmp 0x5098f3
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + 0x18]
mov edx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
sub edx, ecx
mov dword [ebp - 0x14], edx
jbe 0x50a5eb
mov edi, dword [eax]
xor eax, eax
cmp dword [ebp - 0x14], 8
jb 0x50a5cd
mov eax, dword [ebp - 0x14]
and eax, 0xfffffff8
mov dword [ebp - 0x10], eax
add eax, 0xfffffff8
mov ebx, eax
shr ebx, 3
add ebx, 1
mov esi, ebx
and esi, 3
cmp eax, 0x18
jae 0x50a517
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
jmp 0x50a583
lea edx, [edi + ecx*4]
add edx, 0x70
and ebx, 0xfffffffc
neg ebx
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
movdqu xmm2, xmmword [edx + eax*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edx + eax*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edx + eax*4 - 0x50]
movdqu xmm3, xmmword [edx + eax*4 - 0x40]
movdqu xmm4, xmmword [edx + eax*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edx + eax*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edx + eax*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edx + eax*4]
por xmm1, xmm2
add eax, 0x20
add ebx, 4
jne 0x50a52c
test esi, esi
je 0x50a5a8
add eax, ecx
lea eax, [edi + eax*4]
add eax, 0x10
neg esi
movdqu xmm2, xmmword [eax - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax]
por xmm1, xmm2
add eax, 0x20
inc esi
jne 0x50a591
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x14], edx
je 0x50a5da
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
or eax, dword [edi + ecx*4]
add ecx, 1
cmp edx, ecx
jne 0x50a5d0
test eax, eax
mov esi, dword [ebp + 8]
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x20]
jne 0x509dc8
cmp byte [edi + 0x14], 0
jne 0x50a65d
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0x10]
cmp ecx, dword [eax + 0xc]
jne 0x50a642
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov ebx, 0x20
cmovne ebx, eax
cmp ebx, ecx
jbe 0x50a654
cmp ebx, 0x3fffffff
ja 0x50a654
lea eax, [ebx*4]
push eax
mov eax, dword [ebp - 0x20]
push dword [eax + 4]
call fcn.00516810
add esp, 8
test eax, eax
je 0x50a654
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], ebx
mov ecx, dword [ecx + 8]
jmp 0x50a648
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
mov dword [eax + ecx*4], esi
mov eax, dword [ebp - 0x20]
add dword [eax + 8], 1
jmp 0x50a65d
mov eax, dword [ebp - 0x20]
mov word [eax + 0x14], 0x101
mov esi, dword [ebp - 0x20]
push esi
call fcn.004dfca0
add esp, 4
mov ebx, eax
push esi
call fcn.004dfca0
add esp, 4
mov dword [ebp - 0x1c], eax
mov al, 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x50a731
cmp dword [ebp - 0x1c], 0
je 0x50a731
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
call fcn.0050ad70
test eax, eax
je 0x50a731
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x44]
mov dword [ebp - 0x38], ecx
mov edi, dword [eax + 0x48]
mov ecx, dword [eax + 0x38]
mov dword [ebp - 0x28], ecx
mov esi, dword [eax + 0x3c]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x50a706
test edx, edx
je 0x50a706
mov ebx, dword [edx + 0xc]
cmp ebx, dword [eax + 0xc]
jne 0x50a7cd
mov ecx, dword [edx]
mov edx, dword [edx + 4]
push dword [eax + 4]
push dword [eax]
call fcn.004df8a0
add esp, 8
mov ecx, eax
neg ecx
test ebx, ebx
cmove ecx, eax
test ecx, ecx
js 0x50a70a
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], esi
jmp 0x50a710
test edx, edx
je 0x50a6f2
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp - 0x2c]
cmp dword [eax + 0x20], 0
je 0x50a767
push 0x338
push str..._.._third_party_boringssl_src_crypto_fipsmodule_rsa_rsa_impl.c
push 0x44
push 0
push 4
call fcn.004d86c0
add esp, 0x14
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x14], 0
jne 0x50a750
mov esi, dword [ebp - 0x20]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
lea edx, [ecx - 1]
mov dword [esi + 8], edx
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x10], eax
xor ebx, ebx
cmp byte [ebp - 0x14], 0
mov esi, dword [ebp + 8]
mov edi, dword [ebp - 0x20]
jne 0x5098f3
jmp 0x509de6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x2c]
lea eax, [ecx + 0x14]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x18]
mov ecx, dword [ecx + 0x18]
mov esi, ecx
sub ecx, eax
mov dword [ebp - 0x40], ecx
jbe 0x50a8ab
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
cmp dword [ebp - 0x40], 8
jb 0x50a896
mov ecx, dword [ebp - 0x40]
and ecx, 0xfffffff8
mov dword [ebp - 0x44], ecx
add ecx, 0xfffffff8
mov ebx, ecx
shr ebx, 3
add ebx, 1
mov edi, ebx
and edi, 3
cmp ecx, 0x18
jae 0x50a7da
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
jmp 0x50a849
test ebx, ebx
jne 0x50a70a
jmp 0x50a6f2
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx + eax*4]
add ecx, 0x70
and ebx, 0xfffffffc
neg ebx
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
movdqu xmm2, xmmword [ecx + edx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + edx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ecx + edx*4 - 0x50]
movdqu xmm3, xmmword [ecx + edx*4 - 0x40]
movdqu xmm4, xmmword [ecx + edx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ecx + edx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + edx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ecx + edx*4]
por xmm1, xmm2
add edx, 0x20
add ebx, 4
jne 0x50a7f2
test edi, edi
je 0x50a871
add edx, eax
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx + edx*4]
add ecx, 0x10
neg edi
movdqu xmm2, xmmword [ecx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [ecx]
por xmm1, xmm2
add ecx, 0x20
inc edi
jne 0x50a85a
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
mov edx, dword [ebp - 0x44]
cmp dword [ebp - 0x40], edx
je 0x50a8a3
add eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x10]
or ecx, dword [edx + eax*4]
add eax, 1
cmp esi, eax
jne 0x50a899
test ecx, ecx
jne 0x50a719
push dword [ebp - 0x20]
push dword [ebp - 0x28]
push dword [ebp - 0x30]
push dword [ebp - 0x24]
call fcn.004e2f40
add esp, 0x10
test eax, eax
je 0x50a731
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
push eax
push eax
mov eax, dword [ebp - 0x24]
push eax
push eax
call fcn.004e2d80
add esp, 0x14
test eax, eax
je 0x50a731
mov eax, dword [ebp - 0x28]
lea ecx, [eax + 0x14]
push eax
push dword [ebp - 0x20]
mov dword [ebp - 0x40], ecx
push ecx
push dword [ebp - 0x38]
push dword [ebp - 0x24]
push dword [ebp - 0x1c]
call fcn.004e3720
add esp, 0x18
test eax, eax
je 0x50a731
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x20], 0
jne 0x50a719
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x28]
mov esi, dword [ecx + 0x18]
mov ecx, esi
sub ecx, eax
mov dword [ebp - 0x38], ecx
jbe 0x50aa40
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
mov dword [ebp - 0x10], ecx
xor ecx, ecx
cmp dword [ebp - 0x38], 8
jb 0x50aa2b
mov ecx, dword [ebp - 0x38]
and ecx, 0xfffffff8
mov dword [ebp - 0x44], ecx
add ecx, 0xfffffff8
mov ebx, ecx
shr ebx, 3
add ebx, 1
mov edi, ebx
and edi, 3
cmp ecx, 0x18
jae 0x50a96f
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
jmp 0x50a9de
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx + eax*4]
add ecx, 0x70
and ebx, 0xfffffffc
neg ebx
pxor xmm0, xmm0
xor edx, edx
pxor xmm1, xmm1
movdqu xmm2, xmmword [ecx + edx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + edx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [ecx + edx*4 - 0x50]
movdqu xmm3, xmmword [ecx + edx*4 - 0x40]
movdqu xmm4, xmmword [ecx + edx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ecx + edx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + edx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [ecx + edx*4]
por xmm1, xmm2
add edx, 0x20
add ebx, 4
jne 0x50a987
test edi, edi
je 0x50aa06
add edx, eax
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx + edx*4]
add ecx, 0x10
neg edi
movdqu xmm2, xmmword [ecx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [ecx]
por xmm1, xmm2
add ecx, 0x20
inc edi
jne 0x50a9ef
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd ecx, xmm0
mov edx, dword [ebp - 0x44]
cmp dword [ebp - 0x38], edx
je 0x50aa38
add eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x10]
or ecx, dword [edx + eax*4]
add eax, 1
cmp esi, eax
jne 0x50aa2e
test ecx, ecx
jne 0x50a719
push dword [ebp - 0x20]
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push dword [ebp - 0x24]
call fcn.004e2f40
add esp, 0x10
test eax, eax
je 0x50a731
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
push eax
push eax
mov eax, dword [ebp - 0x24]
push eax
push eax
call fcn.004e2d80
add esp, 0x14
test eax, eax
je 0x50a731
push dword [ebp - 0x2c]
push dword [ebp - 0x20]
push dword [ebp - 0x4c]
push dword [ebp - 0x48]
push dword [ebp - 0x24]
push dword [ebp - 0x18]
call fcn.004e3720
add esp, 0x18
test eax, eax
je 0x50a731
push dword [ebp - 0x20]
push dword [ebp - 0x4c]
push dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
push eax
push eax
call fcn.004e19f0
add esp, 0x14
test eax, eax
je 0x50a731
push dword [ebp - 0x20]
push dword [ebp - 0x2c]
mov eax, dword [ebp + 8]
push dword [eax + 0x4c]
mov eax, dword [ebp - 0x18]
push eax
push eax
call fcn.004e2d80
add esp, 0x14
test eax, eax
je 0x50a731
mov eax, dword [ebp - 0x18]
cmp dword [eax + 0xc], 0
jne 0x50aaec
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0x20], 0
je 0x50ab01
push 0x211
push str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_mul.c
push 0x6d
push 0
push 3
jmp 0x50a729
mov ecx, dword [ebp - 0x18]
mov edx, ecx
push dword [ebp - 0x20]
push dword [ebp - 0x40]
call fcn.004ebf80
add esp, 8
test eax, eax
je 0x50a731
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov edx, dword [ebp - 0x1c]
cmp eax, dword [edx + 4]
mov eax, ecx
cmovl eax, edx
cmovl edx, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], edx
mov ebx, dword [edx + 4]
mov edi, eax
lea esi, [eax + 1]
push esi
push ecx
call fcn.004de700
add esp, 8
test eax, eax
je 0x50a731
mov eax, dword [ebp - 0x18]
mov dword [eax + 4], esi
push ebx
mov ecx, dword [ebp - 0x1c]
push dword [ecx]
mov ecx, dword [ebp - 0x10]
push dword [ecx]
push dword [eax]
call fcn.00585d50
add esp, 0x10
mov ecx, edi
sub ecx, ebx
jle 0x50ab7e
lea edx, [ebx + 1]
test cl, 1
jne 0x50ab82
jmp 0x50ab9b
mov ecx, eax
jmp 0x50abcd
mov ecx, dword [ebp - 0x10]
mov esi, dword [ecx]
xor ecx, ecx
add eax, dword [esi + ebx*4]
mov esi, dword [ebp - 0x18]
mov esi, dword [esi]
mov dword [esi + ebx*4], eax
setb cl
mov ebx, edx
mov eax, ecx
cmp edi, edx
je 0x50abcd
mov ecx, eax
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [esi]
add ecx, dword [eax + ebx*4]
mov eax, dword [edx]
mov dword [eax + ebx*4], ecx
mov eax, dword [esi]
mov eax, dword [eax + ebx*4 + 4]
adc eax, 0
mov ecx, dword [edx]
mov dword [ecx + ebx*4 + 4], eax
setb al
movzx ecx, al
add ebx, 2
cmp edi, ebx
jne 0x50aba7
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov dword [eax + edi*4], ecx
mov eax, dword [ebp - 0x54]
mov esi, dword [eax + 0x18]
mov edi, dword [edx + 4]
mov eax, edi
mov ecx, esi
mov dword [ebp - 0x10], esi
sub eax, esi
mov dword [ebp - 0x24], eax
jbe 0x50ac2d
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov edx, dword [ebp - 0x10]
cmp dword [ebp - 0x24], 8
jb 0x50ad2f
mov edx, dword [ebp - 0x24]
and edx, 0xfffffff8
lea eax, [edx - 8]
mov ebx, eax
shr ebx, 3
add ebx, 1
mov esi, ebx
and esi, 3
cmp eax, 0x18
jae 0x50ac72
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
jmp 0x50ace4
push dword [ebp - 0x10]
push dword [ebp - 0x18]
call fcn.004de700
add esp, 8
test eax, eax
je 0x50a731
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x10]
sub ecx, eax
shl ecx, 2
test ecx, ecx
je 0x50ad51
shl eax, 2
mov edx, dword [ebp - 0x18]
add eax, dword [edx]
push ecx
push 0
push eax
call fcn.00645dd0
add esp, 0xc
jmp 0x50ad51
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
lea eax, [eax + ecx*4]
add eax, 0x70
and ebx, 0xfffffffc
neg ebx
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
movdqu xmm2, xmmword [eax + ecx*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [eax + ecx*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [eax + ecx*4 - 0x50]
movdqu xmm3, xmmword [eax + ecx*4 - 0x40]
movdqu xmm4, xmmword [eax + ecx*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [eax + ecx*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [eax + ecx*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [eax + ecx*4]
por xmm1, xmm2
add ecx, 0x20
add ebx, 4
jne 0x50ac8d
test esi, esi
je 0x50ad0d
add ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
lea eax, [eax + ecx*4]
add eax, 0x10
neg esi
movdqu xmm2, xmmword [eax - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [eax]
por xmm1, xmm2
add eax, 0x20
inc esi
jne 0x50acf6
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd eax, xmm0
cmp dword [ebp - 0x24], edx
je 0x50ad3c
add edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x1c]
or eax, dword [ecx + edx*4]
add edx, 1
cmp edi, edx
jne 0x50ad32
test eax, eax
je 0x50ad51
push 0x1a0
push str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_bn.c
push 0x66
jmp 0x50aaf8
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 4], ecx
mov dword [ebp - 0x14], 0
jmp 0x50a731