Function at 0x4bac90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xe0
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0xc], 0
je 0x4baccc
push 0x239
push str.external_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
push 0x6d
push 0
push 3
call sym.fastboot.exe_ERR_put_error
add esp, 0x14
xor ebx, ebx
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
cmp dword [ecx + 0xc], 0
jne 0x4bb01b
mov ebx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [edx]
mov dword [esp + 4], ecx
mov esi, dword [edx + 4]
cmp eax, esi
mov dword [esp + 0x10], esi
mov ecx, esi
mov dword [esp + 8], eax
cmovb ecx, eax
test ecx, ecx
mov dword [esp + 0x14], ebx
je 0x4bad42
xor esi, esi
xor edi, edi
nop dword [eax + eax]
mov eax, ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + edi*4]
mov edx, dword [esp + 4]
mov edx, dword [edx + edi*4]
mov ebx, ecx
sub ebx, edx
xor edx, ecx
xor ebx, ecx
or ebx, edx
xor ebx, ecx
mov ecx, eax
sar ebx, 0x1f
or ebx, 1
test edx, edx
cmovne esi, ebx
add edi, 1
cmp eax, edi
jne 0x4bad10
jmp 0x4bad44
xor esi, esi
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 8]
mov eax, ecx
mov ebx, dword [esp + 0x10]
sub eax, ebx
jae 0x4bad70
mov eax, ebx
sub eax, ecx
xor esi, esi
cmp eax, 8
jae 0x4badb3
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 4]
jmp 0x4baee0
jbe 0x4baded
xor esi, esi
cmp eax, 8
mov edx, dword [ebp + 0x14]
jb 0x4bafe5
mov dword [esp + 4], eax
and eax, 0xfffffff8
mov dword [esp + 0x18], eax
lea ecx, [eax - 8]
mov edi, ecx
shr edi, 3
add edi, 1
mov eax, edi
and eax, 3
cmp ecx, 0x18
jae 0x4baf03
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
jmp 0x4baf77
mov dword [esp + 0x14], eax
and eax, 0xfffffff8
mov dword [esp + 0x18], eax
lea edx, [eax - 8]
mov ebx, edx
shr ebx, 3
add ebx, 1
mov eax, ebx
and eax, 3
mov dword [esp + 0x1c], eax
cmp edx, 0x18
mov eax, dword [esp + 4]
jae 0x4badff
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
mov edx, dword [ebp + 0x14]
jmp 0x4bae77
mov edi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
jmp 0x4bb014
and ebx, 0xfffffffc
lea edi, [eax + ecx*4]
add edi, 0x70
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
mov edx, dword [ebp + 0x14]
nop word cs:[eax + eax]
nop
movdqu xmm2, xmmword [edi + esi*4 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [edi + esi*4 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [edi + esi*4 - 0x50]
movdqu xmm3, xmmword [edi + esi*4 - 0x40]
movdqu xmm4, xmmword [edi + esi*4 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [edi + esi*4 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [edi + esi*4 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [edi + esi*4]
por xmm1, xmm2
add esi, 0x20
add ebx, 0xfffffffc
jne 0x4bae20
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x4baeaa
add esi, ecx
lea esi, [eax + esi*4]
add esi, 0x10
shl ebx, 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 ebx, edi
jne 0x4bae90
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov edi, dword [esp + 0x18]
cmp dword [esp + 0x14], edi
mov ebx, dword [esp + 0x10]
jne 0x4baed7
mov edi, dword [ebp + 0x18]
jmp 0x4baeea
add ecx, edi
mov edi, dword [ebp + 0x18]
nop dword [eax]
or esi, dword [eax + ecx*4]
add ecx, 1
cmp ebx, ecx
jne 0x4baee0
mov ecx, esi
not ecx
add esi, 0xffffffff
and esi, ecx
sar esi, 0x1f
not esi
mov eax, dword [esp + 0xc]
or eax, esi
jmp 0x4bb011
and edi, 0xfffffffc
mov ecx, eax
mov eax, dword [esp + 0x14]
lea ebx, [eax + ebx*4]
add ebx, 0x70
mov eax, ecx
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
nop
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 edi, 0xfffffffc
jne 0x4baf20
test eax, eax
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0x10]
je 0x4bafba
add esi, ebx
mov edi, eax
mov eax, dword [esp + 0x14]
lea esi, [eax + esi*4]
add esi, 0x10
mov eax, edi
shl eax, 5
xor edi, edi
nop dword [eax + 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 0x4bafa0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
mov eax, dword [esp + 0x18]
cmp dword [esp + 4], eax
jne 0x4bafe3
mov edi, dword [ebp + 0x18]
jmp 0x4baffa
add ebx, eax
mov edi, dword [ebp + 0x18]
mov eax, dword [esp + 0x14]
nop dword [eax]
or esi, dword [eax + ebx*4]
add ebx, 1
cmp ecx, ebx
jne 0x4baff0
mov ecx, esi
not ecx
add esi, 0xffffffff
and esi, ecx
sar esi, 0x1f
mov eax, dword [esp + 0xc]
and eax, esi
add eax, esi
add eax, 1
mov ecx, dword [ebp + 0xc]
test eax, eax
mov esi, dword [ebp + 8]
js 0x4bb064
push edi
push edx
push ecx
push esi
push 0
call sym.fastboot.exe_BN_div
add esp, 0x14
xor ebx, ebx
test eax, eax
je 0x4bacc2
cmp dword [esi + 0xc], 0
mov ecx, esi
mov edx, dword [ebp + 0x14]
je 0x4bb064
cmp dword [edx + 0xc], 0
mov eax, sym.fastboot.exe_BN_add
mov ecx, sym.fastboot.exe_BN_sub
cmove ecx, eax
push edx
push esi
push esi
call ecx
mov edx, dword [ebp + 0x14]
add esp, 0xc
mov ecx, esi
test eax, eax
je 0x4bacc2
mov ebx, dword [ebp + 0x10]
cmp dword [edx + 4], 0
jle 0x4bb078
mov eax, dword [edx]
test byte [eax], 1
jne 0x4bb23b
mov dword [esp + 8], ecx
pxor xmm0, xmm0
movdqu xmmword [esp + 0xcc], xmm0
movdqu xmmword [esp + 0xc0], xmm0
movdqu xmmword [esp + 0xb0], xmm0
movdqu xmmword [esp + 0xa0], xmm0
movdqu xmmword [esp + 0x90], xmm0
movdqu xmmword [esp + 0x80], xmm0
movdqu xmmword [esp + 0x70], xmm0
movdqu xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
mov dword [esp + 0x50], 0
mov edx, dword [ebx + 4]
xor ecx, ecx
test edx, edx
cmovs ecx, edx
mov eax, edx
nop dword [eax + eax]
test eax, eax
jle 0x4bb103
mov esi, dword [ebx]
mov esi, dword [esi + eax*4 - 4]
add eax, 0xffffffff
test esi, esi
je 0x4bb0f0
jmp 0x4bb116
test edx, edx
jns 0x4bb205
mov eax, dword [ebx]
mov esi, dword [eax + ecx*4 - 4]
add ecx, 0xffffffff
mov eax, ecx
shl eax, 5
xor ebx, ebx
test esi, esi
setne bl
mov edi, esi
shr edi, 0x10
xor ecx, ecx
cmp esi, 0x10000
setae cl
cmovb edi, esi
shl ecx, 4
mov dword [esp + 4], ecx
mov edx, edi
shr edx, 8
xor ecx, ecx
cmp edi, 0x100
cmovb edx, edi
setae cl
mov dword [esp + 0x14], ecx
mov esi, edx
shr esi, 4
xor ecx, ecx
cmp edx, 0x10
cmovb esi, edx
setae cl
mov dword [esp + 0x10], ecx
mov edi, esi
shr edi, 2
xor edx, edx
cmp esi, 4
cmovb edi, esi
setae dl
xor ecx, ecx
cmp edi, 2
mov edi, dword [ebp + 0x18]
setae cl
or ebx, eax
add ebx, dword [esp + 4]
mov eax, dword [esp + 0x14]
lea eax, [ebx + eax*8]
mov esi, dword [esp + 0x10]
lea eax, [eax + esi*4]
lea eax, [eax + edx*2]
add eax, ecx
je 0x4bb205
mov dword [esp + 0x14], eax
cmp byte [edi + 0x14], 0
jne 0x4bb264
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0x10]
cmp ecx, dword [edi + 0xc]
jne 0x4bb24f
lea eax, [ecx + ecx*2]
shr eax, 1
test ecx, ecx
mov edi, 0x20
cmovne edi, eax
cmp edi, ecx
jbe 0x4bb25b
cmp edi, 0x3fffffff
ja 0x4bb25b
lea eax, [edi*4]
push eax
mov eax, dword [ebp + 0x18]
push dword [eax + 4]
call sym.fastboot.exe_OPENSSL_realloc
add esp, 8
test eax, eax
je 0x4bb25b
mov ecx, dword [ebp + 0x18]
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], edi
mov edi, ecx
mov ecx, dword [ecx + 8]
jmp 0x4bb252
push 1
mov esi, dword [ebp + 8]
push esi
call fcn.004b36f0
add esp, 8
test eax, eax
je 0x4bacc0
mov dword [esi + 0xc], 0
mov eax, dword [esi]
mov dword [eax], 1
mov dword [esi + 4], 1
mov ebx, 1
jmp 0x4bacc2
push 0
push edi
push edx
push ebx
push ecx
push esi
call sym.fastboot.exe_BN_mod_exp_mont
add esp, 0x18
jmp 0x4bacc4
mov eax, dword [edi + 4]
mov dword [eax + ecx*4], esi
add dword [edi + 8], 1
jmp 0x4bb264
mov edi, dword [ebp + 0x18]
mov word [edi + 0x14], 0x101
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov esi, eax
push edi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + 0x5c], eax
xor ebx, ebx
test esi, esi
je 0x4bb84f
test eax, eax
je 0x4bb84f
mov dword [esp + 4], eax
pxor xmm0, xmm0
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
mov dword [esp + 0x50], 0
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0xc], 0
je 0x4bb316
cmp esi, edx
je 0x4bb307
push dword [edx + 4]
mov dword [esp + 0x14], esi
push esi
mov esi, edx
call fcn.004b36f0
add esp, 8
test eax, eax
je 0x4bb84f
mov eax, dword [esi + 4]
lea ecx, [eax*4]
test ecx, ecx
mov edx, esi
mov esi, dword [esp + 0x10]
je 0x4bb2fe
push ecx
push dword [edx]
push dword [esi]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov edx, dword [ebp + 0x14]
add esp, 0xc
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 0xc]
mov dword [esi + 0xc], eax
mov dword [esi + 0xc], 0
lea ecx, [esp + 0x20]
mov edx, esi
jmp 0x4bb31a
lea ecx, [esp + 0x20]
call fcn.004fa660
test eax, eax
jle 0x4bb84f
push edi
push dword [ebp + 0x14]
push dword [esp + 0x10]
mov edi, dword [esp + 0x10]
push edi
push 0
call sym.fastboot.exe_BN_div
add esp, 0x14
test eax, eax
je 0x4bb84f
cmp dword [edi + 0xc], 0
mov ecx, edi
je 0x4bb37c
mov edx, dword [ebp + 0x14]
cmp dword [edx + 0xc], 0
mov eax, sym.fastboot.exe_BN_add
mov ecx, sym.fastboot.exe_BN_sub
cmove ecx, eax
push edx
push dword [esp + 8]
push dword [esp + 0xc]
call ecx
mov ecx, dword [esp + 0x10]
add esp, 0xc
test eax, eax
je 0x4bb84f
mov dword [esp + 0x10], esi
mov eax, dword [ecx + 4]
test eax, eax
je 0x4bb839
mov ecx, dword [ecx]
xor edx, edx
mov esi, 0
cmp eax, 8
jb 0x4bb46c
mov edx, eax
and edx, 0xfffffff8
lea edi, [edx - 8]
mov ebx, edi
shr ebx, 3
add ebx, 1
mov esi, ebx
and esi, 3
cmp edi, 0x18
jae 0x4bb3c3
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x4bb427
and ebx, 0xfffffffc
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
movdqu xmm2, xmmword [ecx + edi*4]
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + edi*4 + 0x10]
por xmm0, xmm1
movdqu xmm1, xmmword [ecx + edi*4 + 0x20]
movdqu xmm3, xmmword [ecx + edi*4 + 0x30]
movdqu xmm4, xmmword [ecx + edi*4 + 0x40]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [ecx + edi*4 + 0x50]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [ecx + edi*4 + 0x60]
por xmm0, xmm4
movdqu xmm1, xmmword [ecx + edi*4 + 0x70]
por xmm1, xmm2
add edi, 0x20
add ebx, 0xfffffffc
jne 0x4bb3d0
test esi, esi
je 0x4bb450
lea edi, [ecx + edi*4]
add edi, 0x10
shl esi, 5
xor ebx, ebx
movdqu xmm2, xmmword [edi + ebx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [edi + ebx]
por xmm1, xmm2
add ebx, 0x20
cmp esi, ebx
jne 0x4bb436
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movd esi, xmm0
jmp 0x4bb472
or esi, dword [ecx + edx*4]
add edx, 1
cmp eax, edx
jne 0x4bb46c
test esi, esi
mov edx, dword [esp + 4]
je 0x4bb839
mov ecx, 6
mov eax, dword [esp + 0x14]
cmp eax, 0x29f
jg 0x4bb4bb
mov ecx, 5
cmp eax, 0xef
jg 0x4bb4bb
mov ecx, 4
cmp eax, 0x4f
jg 0x4bb4bb
mov esi, 1
mov ecx, 3
cmp eax, 0x18
jl 0x4bb53c
mov dword [esp + 8], ecx
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x10]
push dword [ebp + 0x18]
push eax
push edx
call fcn.004fa790
add esp, 0xc
xor ebx, ebx
test eax, eax
je 0x4bb84f
mov eax, dword [esp + 8]
mov ecx, eax
add cl, 0xff
mov edi, 1
mov eax, 1
shl eax, cl
mov dword [esp + 4], eax
mov esi, dword [ebp + 0x18]
push esi
call sym.fastboot.exe_BN_CTX_get
add esp, 4
mov dword [esp + edi*4 + 0x5c], eax
test eax, eax
je 0x4bb84f
mov edx, dword [esp + edi*4 + 0x58]
mov ecx, eax
push esi
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x18]
call fcn.004fa790
add esp, 0xc
test eax, eax
je 0x4bb84f
add edi, 1
cmp dword [esp + 4], edi
jne 0x4bb4f7
mov esi, dword [esp + 8]
push 1
mov edi, dword [ebp + 8]
push edi
call fcn.004b36f0
add esp, 8
test eax, eax
je 0x4bb8d0
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x14]
add ecx, 0xffffffff
mov dword [edi + 0xc], 0
mov eax, dword [edi]
mov dword [eax], 1
mov dword [edi + 4], 1
mov al, 1
mov dword [esp + 0x14], eax
mov dword [esp + 4], 0
lea edi, [esp + 0x20]
mov esi, ecx
add esi, 0xfffffffb
jmp 0x4bb5a1
mov eax, esi
add eax, 0xffffffff
mov ebx, 1
mov esi, eax
cmp eax, 0xfffffffa
je 0x4bb84f
mov ecx, esi
add ecx, 5
js 0x4bb5c4
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov ebx, ecx
shr ebx, 5
cmp ebx, eax
jae 0x4bb5c4
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
mov ebx, dword [edx + ebx*4]
bt ebx, ecx
jb 0x4bb5e6
test byte [esp + 4], 1
je 0x4bb58c
mov ecx, dword [ebp + 8]
mov edx, ecx
push dword [ebp + 0x18]
push edi
push ecx
call fcn.004fa790
add esp, 0xc
test eax, eax
jne 0x4bb58c
jmp 0x4bb8d0
mov dword [esp + 4], 0
mov dword [esp + 8], 1
cmp dword [esp + 0x10], 2
jl 0x4bb7c2
mov ecx, esi
cmp esi, 0xfffffffb
je 0x4bb7c2
mov ecx, esi
lea ecx, [esi + 4]
mov ebx, ecx
shr ebx, 5
mov dword [esp + 4], 0
cmp ebx, eax
jae 0x4bb62e
mov ebx, dword [edx + ebx*4]
shr ebx, cl
and ebx, 1
mov dword [esp + 4], ebx
mov ecx, dword [esp + 4]
add ecx, ecx
add ecx, 1
mov dword [esp + 8], ecx
mov ecx, esi
cmp esi, 0xfffffffc
je 0x4bb7c2
mov ecx, esi
lea ecx, [esi + 3]
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0xc], 0
cmp ebx, eax
jae 0x4bb668
mov ebx, dword [edx + ebx*4]
shr ebx, cl
and ebx, 1
mov dword [esp + 0xc], ebx
cmp dword [esp + 4], 1
mov cl, 1
adc cl, 0
mov ebx, dword [esp + 8]
shl ebx, cl
or ebx, 1
cmp dword [esp + 0xc], 0
mov ecx, dword [esp + 8]
cmovne ecx, ebx
mov dword [esp + 8], ecx
mov ecx, 2
mov ebx, dword [esp + 4]
cmovne ebx, ecx
mov dword [esp + 4], ebx
cmp dword [esp + 0x10], 3
je 0x4bb7c2
mov ecx, esi
cmp esi, 0xfffffffd
je 0x4bb7c2
mov ecx, esi
lea ecx, [esi + 2]
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0xc], 0
cmp ebx, eax
jae 0x4bb6d3
mov ebx, dword [edx + ebx*4]
shr ebx, cl
and ebx, 1
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 4]
xor cl, 3
mov ebx, dword [esp + 8]
shl ebx, cl
or ebx, 1
cmp dword [esp + 0xc], 0
mov ecx, dword [esp + 8]
cmovne ecx, ebx
mov dword [esp + 8], ecx
mov ecx, 3
mov ebx, dword [esp + 4]
cmovne ebx, ecx
mov dword [esp + 4], ebx
cmp dword [esp + 0x10], 4
je 0x4bb7c2
mov ecx, esi
cmp esi, 0xfffffffe
je 0x4bb7c2
mov ecx, esi
lea ecx, [esi + 1]
mov ebx, ecx
shr ebx, 5
mov dword [esp + 0xc], 0
cmp ebx, eax
jae 0x4bb73b
mov ebx, dword [edx + ebx*4]
shr ebx, cl
and ebx, 1
mov dword [esp + 0xc], ebx
mov cl, 4
sub cl, byte [esp + 4]
mov ebx, dword [esp + 8]
shl ebx, cl
or ebx, 1
cmp dword [esp + 0xc], 0
mov ecx, dword [esp + 8]
cmovne ecx, ebx
mov dword [esp + 8], ecx
mov ecx, 4
mov ebx, dword [esp + 4]
cmovne ebx, ecx
mov dword [esp + 4], ebx
cmp dword [esp + 0x10], 5
je 0x4bb7c2
mov ecx, esi
cmp esi, 0xffffffff
je 0x4bb7c2
mov ecx, esi
shr ecx, 5
mov dword [esp + 0xc], 0
cmp ecx, eax
jae 0x4bb797
mov eax, dword [edx + ecx*4]
mov ecx, esi
shr eax, cl
and eax, 1
mov dword [esp + 0xc], eax
mov cl, 5
mov edx, dword [esp + 4]
sub cl, dl
mov ebx, dword [esp + 8]
mov eax, ebx
shl eax, cl
or eax, 1
cmp dword [esp + 0xc], 0
cmovne ebx, eax
mov dword [esp + 8], ebx
mov eax, 5
cmovne edx, eax
mov dword [esp + 4], edx
test byte [esp + 0x14], 1
jne 0x4bb7ef
mov eax, dword [esp + 4]
lea ebx, [eax + 1]
mov ecx, dword [ebp + 8]
mov edx, ecx
push dword [ebp + 0x18]
push edi
push ecx
call fcn.004fa790
add esp, 0xc
test eax, eax
je 0x4bb8d0
add ebx, 0xffffffff
jne 0x4bb7d0
mov eax, dword [esp + 8]
and eax, 0xfffffffe
mov ecx, dword [ebp + 8]
mov edx, ecx
push dword [ebp + 0x18]
push edi
push dword [esp + eax*2 + 0x64]
call fcn.004fa790
add esp, 0xc
test eax, eax
je 0x4bb8d0
mov ecx, dword [esp + 4]
not ecx
add ecx, esi
mov dword [esp + 0x14], 0
add ecx, 5
mov al, 1
mov dword [esp + 4], eax
mov ebx, 1
jns 0x4bb585
jmp 0x4bb84f
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 0
mov dword [eax + 4], 0
mov ebx, 1
mov esi, dword [ebp + 0x18]
cmp byte [esi + 0x14], 0
jne 0x4bb86b
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
mov eax, dword [esp + 0x30]
test al, 2
jne 0x4bb883
push dword [esp + 0x20]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esp + 0x30]
test al, 1
jne 0x4bb891
mov dword [esp + 0x20], 0
jmp 0x4bb89e
lea eax, [esp + 0x20]
push eax
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esp + 0x44]
test al, 2
jne 0x4bb8b6
push dword [esp + 0x34]
call sym.fastboot.exe_OPENSSL_free
add esp, 4
mov eax, dword [esp + 0x44]
test al, 1
je 0x4bacc2
lea eax, [esp + 0x34]
push eax
call sym.fastboot.exe_OPENSSL_free
add esp, 4
jmp 0x4bacc2
xor ebx, ebx
jmp 0x4bb84f