Function at 0x140028c80
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x90], rax
movsxd rax, dword [r9 + 8]
test rax, rax
je 0x140028db6
mov r12, rcx
mov rcx, qword [r9]
cmp eax, 4
jae 0x140028cc5
xor r10d, r10d
xor r11d, r11d
jmp 0x140028d20
mov r10, rax
and r10, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r11d, r11d
pxor xmm1, xmm1
nop word [rax + rax]
movdqu xmm2, xmmword [rcx + r11*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r11*8 + 0x10]
por xmm1, xmm2
add r11, 4
cmp r10, r11
jne 0x140028ce0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r11, xmm0
cmp r10, rax
je 0x140028d2c
nop word cs:[rax + rax]
or r11, qword [rcx + r10*8]
inc r10
cmp rax, r10
jne 0x140028d20
test r11, r11
je 0x140028db6
mov r15, qword [rsp + 0x100]
cmp byte [r15 + 0x28], 0
mov qword [rsp + 0x58], rdx
jne 0x140028e0c
mov rcx, qword [r15 + 0x10]
mov rsi, qword [r15 + 0x20]
cmp rcx, qword [r15 + 0x18]
jne 0x140028df7
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
setbe al
mov rcx, rdi
shr rcx, 0x3d
setne cl
or cl, al
jne 0x140028e05
lea rdx, [rdi*8]
mov rcx, qword [r15 + 8]
mov rbx, r8
mov r14, r9
call fcn.1400987b0
mov r9, r14
mov r8, rbx
test rax, rax
je 0x140028e05
mov qword [r15 + 8], rax
mov qword [r15 + 0x18], rdi
mov rcx, qword [r15 + 0x10]
jmp 0x140028dfb
mov dword [rsp + 0x20], 0xbd
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c.inc
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
call fcn.1400885a0
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x140028ea6
call fcn.14029fd30
int3
mov rax, qword [r15 + 8]
mov qword [rax + rcx*8], rsi
inc qword [r15 + 0x10]
jmp 0x140028e0c
mov word [r15 + 0x28], 0x101
mov rsi, r9
mov r13, r8
mov rcx, r15
call fcn.140028b10
mov r14, rax
mov rcx, r15
call fcn.140028b10
mov rbx, rax
mov rcx, r15
call fcn.140028b10
mov rbp, rax
test r12, r12
jne 0x140028e43
mov rcx, r15
call fcn.140028b10
mov r12, rax
movq xmm0, rbx
movq xmm1, r14
punpcklqdq xmm1, xmm0
movq xmm0, r12
movq xmm2, rbp
punpcklqdq xmm2, xmm0
pxor xmm0, xmm0
pcmpeqd xmm2, xmm0
pcmpeqd xmm1, xmm0
movdqa xmm0, xmm1
shufps xmm0, xmm2, 0xdd
shufps xmm1, xmm2, 0x88
andps xmm1, xmm0
movmskps eax, xmm1
test eax, eax
je 0x140028ebc
xor edi, edi
cmp byte [r15 + 0x28], 0
je 0x140029666
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x140028df1
mov eax, edi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rsi
mov ecx, dword [rsi + 8]
test ecx, ecx
jle 0x140028eec
mov rax, qword [rdx]
nop dword [rax]
mov r8d, ecx
cmp qword [rax + r8*8 - 8], 0
jne 0x140028ef5
lea r8d, [rcx - 1]
cmp ecx, 1
mov ecx, r8d
jg 0x140028ed0
jmp 0x140028fac
je 0x140028fac
mov rax, qword [rdx]
movsxd r8, ecx
shl ecx, 6
mov r8, qword [rax + r8*8 - 8]
xor eax, eax
test r8, r8
setne al
or eax, ecx
xor ecx, ecx
mov r9, r8
shr r9, 0x20
cmove r9, r8
setne cl
shl ecx, 5
mov r10, r9
shr r10, 0x10
xor r8d, r8d
cmp r9, 0x10000
cmovb r10, r9
setae r8b
shl r8d, 4
mov r11, r10
shr r11, 8
xor r9d, r9d
cmp r10, 0x100
cmovb r11, r10
setae r9b
mov rsi, r11
shr rsi, 4
xor r10d, r10d
cmp r11, 0x10
setae r10b
cmovb rsi, r11
mov r11, rsi
shr r11, 2
xor edi, edi
cmp rsi, 4
setae dil
cmovb r11, rsi
add edi, edi
xor esi, esi
cmp r11, 2
setae sil
or ecx, eax
or ecx, r8d
lea eax, [rcx + r9*8]
lea eax, [rax + r10*4]
or eax, edi
add eax, esi
add eax, 0xffffffc0
and eax, 0x3f
mov r8d, 0x40
sub r8d, eax
jmp 0x140028fb2
mov r8d, 0x40
mov rcx, rbp
mov dword [rsp + 0x3c], r8d
call fcn.140029730
test eax, eax
je 0x140028e81
mov rcx, rbx
mov rdx, r13
mov r8d, dword [rsp + 0x3c]
call fcn.140029730
test eax, eax
je 0x140028e81
mov eax, dword [rbp + 8]
test eax, eax
jle 0x14002900d
mov rcx, qword [rbp]
nop word [rax + rax]
mov edx, eax
cmp qword [rcx + rdx*8 - 8], 0
jne 0x14002903d
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x140028ff0
mov dword [rbp + 8], 0
jmp 0x14002900f
jne 0x140029016
mov dword [rbp + 0x10], 0
mov esi, dword [rbx + 8]
test esi, esi
jle 0x140029047
mov rax, qword [rbx]
mov ecx, esi
cmp qword [rax + rcx*8 - 8], 0
jne 0x140029065
lea ecx, [rsi - 1]
cmp esi, 1
mov esi, ecx
jg 0x140029020
mov dword [rbx + 8], 0
jmp 0x140029049
mov dword [rbp + 8], eax
mov esi, dword [rbx + 8]
test esi, esi
jg 0x14002901d
jne 0x140029052
mov dword [rbx + 0x10], 0
xor esi, esi
movsxd rdi, dword [rbp + 8]
mov rax, qword [rbp]
cmp rdi, 1
jne 0x140029076
xor r13d, r13d
jmp 0x14002907b
mov dword [rbx + 8], esi
movsxd rdi, dword [rbp + 8]
mov rax, qword [rbp]
cmp rdi, 1
je 0x140029060
mov r13, qword [rax + rdi*8 - 0x10]
mov rax, qword [rax + rdi*8 - 8]
mov qword [rsp + 0x68], rax
cmp esi, edi
cmovle esi, edi
inc esi
movsxd rdx, esi
mov rcx, rbx
call fcn.140027bc0
test eax, eax
je 0x140028e81
mov eax, dword [rbp + 0x10]
xor eax, dword [rbx + 0x10]
sub esi, edi
mov dword [r12 + 0x10], eax
cmp esi, dword [r12 + 0xc]
jbe 0x140029115
cmp esi, 0x800000
jae 0x14002912c
test byte [r12 + 0x14], 2
jne 0x140029638
movsxd rcx, esi
mov edx, 8
call fcn.1400986c0
test rax, rax
je 0x140028e81
movsxd r8, dword [r12 + 8]
test r8, r8
mov qword [rsp + 0x30], rax
je 0x1400290fe
shl r8, 3
mov rdx, qword [r12]
mov rcx, qword [rsp + 0x30]
call fcn.1402a44e0
mov rcx, qword [r12]
call fcn.140098760
mov rax, qword [rsp + 0x30]
mov qword [r12], rax
mov dword [r12 + 0xc], esi
lea rcx, [rdi + 1]
cmp ecx, dword [r14 + 0xc]
mov qword [rsp + 0x48], rcx
jbe 0x14002919a
cmp ecx, 0x800000
jb 0x14002914d
mov dword [rsp + 0x20], 0x163
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_bn.c.inc
mov ecx, 3
xor edx, edx
mov r8d, 0x66
jmp 0x140029654
test byte [r14 + 0x14], 2
jne 0x140029638
mov edx, 8
call fcn.1400986c0
test rax, rax
je 0x140028e81
movsxd r8, dword [r14 + 8]
test r8, r8
mov r15, rax
je 0x140029186
shl r8, 3
mov rdx, qword [r14]
mov rcx, r15
call fcn.1402a44e0
mov rcx, qword [r14]
call fcn.140098760
mov qword [r14], r15
mov rax, qword [rsp + 0x48]
mov dword [r14 + 0xc], eax
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x30], r14
mov dword [r12 + 8], esi
test esi, esi
jle 0x1400295f9
mov r14d, esi
lea rbp, [r14*8 - 8]
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x50], rbx
jmp 0x1400291fd
xor edx, edx
mov r11, qword [rsp + 0x40]
add qword [r11 + rdi*8], rdx
lea rax, [r14 - 1]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [r12]
mov qword [rdx + rax*8], rcx
add rbp, 0xfffffffffffffff8
cmp r14, 1
mov r14, rax
jle 0x1400295f9
mov qword [rsp + 0x80], 0
mov r15, qword [rbx]
lea r10, [r15 + r14*8]
add r10, 0xfffffffffffffff8
mov r8, qword [r10 + rdi*8]
mov rcx, 0xffffffffffffffff
mov rsi, qword [rsp + 0x68]
cmp r8, rsi
mov qword [rsp + 0x40], r10
je 0x140029310
mov rbx, r13
mov r9, qword [r10 + rdi*8 - 8]
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x80]
mov r13, r10
call fcn.140029a90
mov rcx, qword [rsp + 0x88]
cmp edi, 2
jl 0x1400292cc
mov rax, rcx
mul rbx
mov r9, qword [r13 + rdi*8 - 0x10]
mov r8, qword [rsp + 0x80]
cmp r9, rax
mov r10, r8
sbb r10, rdx
jae 0x1400292fb
add r8, rsi
dec rcx
mov r10, rcx
mov r11, r8
mov r13, rbx
nop word cs:[rax + rax]
mov r8, r11
mov rcx, r10
cmp r11, rsi
jb 0x1400292fe
sub rax, r13
sbb rdx, 0
lea r11, [r8 + rsi]
lea r10, [rcx - 1]
cmp r9, rax
mov rsi, r8
sbb rsi, rdx
mov rsi, qword [rsp + 0x68]
jb 0x1400292a0
jmp 0x1400292fe
mov r10, r13
mov r13, rbx
mov rbx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
mov rsi, qword [rax]
test edi, edi
jne 0x140029324
mov qword [rsi + rdi*8], 0
mov rax, qword [rax]
mov edx, 1
mov rcx, r10
jmp 0x140029477
mov r13, rbx
mov qword [rsp + 0x80], r8
mov r10, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x88], rcx
mov rax, qword [rsp + 0x30]
mov rsi, qword [rax]
test edi, edi
je 0x1400292e3
mov rax, qword [rsp + 0x60]
mov r12, qword [rax]
mov rbx, rdi
xor r8d, r8d
cmp edi, 4
jb 0x1400293bb
nop dword [rax + rax]
mov rax, rcx
mul qword [r12]
mov r9, rdx
mov r10, rax
add rax, r8
mov qword [rsi], rax
mov rax, rcx
mul qword [r12 + 8]
mov r11, rdx
add r10, r8
adc rax, r9
setb r9b
mov qword [rsi + 8], rax
mov rax, rcx
mul qword [r12 + 0x10]
mov r8, rdx
add r9b, 0xff
adc rax, r11
setb r9b
mov qword [rsi + 0x10], rax
mov rax, rcx
mul qword [r12 + 0x18]
add r9b, 0xff
adc rax, r8
mov r8, rdx
adc r8, 0
mov qword [rsi + 0x18], rax
add r12, 0x20
add rsi, 0x20
add rbx, 0xfffffffffffffffc
cmp rbx, 4
jae 0x140029340
test rbx, rbx
je 0x14002943a
test bl, 1
jne 0x1400293ce
mov r13, rbx
mov r9, r8
cmp rbx, 1
jne 0x1400293f7
jmp 0x14002943a
mov rax, rcx
mul qword [r12]
mov r9, rdx
add rax, r8
adc r9, 0
mov qword [rsi], rax
add r12, 8
add rsi, 8
lea r13, [rbx - 1]
mov r8, r9
cmp rbx, 1
je 0x14002943a
xor ebx, ebx
nop dword [rax]
mov rax, rcx
mul qword [r12 + rbx*8]
mov r10, rdx
mov r11, rax
add rax, r9
mov qword [rsi + rbx*8], rax
mov rax, rcx
mul qword [r12 + rbx*8 + 8]
mov r8, rdx
add r11, r9
adc rax, r10
adc r8, 0
mov qword [rsi + rbx*8 + 8], rax
add rbx, 2
mov r9, r8
cmp r13, rbx
jne 0x140029400
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov qword [rax + rdi*8], r8
cmp dword [rsp + 0x48], 0
mov r12, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x50]
mov r13, qword [rsp + 0x70]
je 0x1400291d8
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rdx, qword [rsp + 0x48]
cmp edx, 4
jae 0x1400294e2
mov rcx, qword [rsp + 0x40]
xor r8d, r8d
xor r9d, r9d
nop dword [rax]
mov r10, qword [rcx + r9*8]
sub r10, qword [rax + r9*8]
setb r11b
sub r10, r8
setb r8b
or r8b, r11b
movzx r8d, r8b
mov qword [rcx + r9*8], r10
inc r9
cmp rdx, r9
jne 0x140029480
test r8, r8
je 0x1400291d8
dec qword [rsp + 0x88]
test edi, edi
je 0x1400291cd
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
cmp edi, 4
mov r11, qword [rsp + 0x40]
jae 0x140029556
mov r15, r11
mov rcx, rdi
xor edx, edx
jmp 0x1400295cd
lea rcx, [r15 + rbp]
xor r9d, r9d
xor r8d, r8d
nop dword [rax]
mov r10, qword [rcx + r9]
sub r10, qword [rax + r9]
setb r11b
sub r10, r8
setb r8b
or r8b, r11b
mov qword [rcx + r9], r10
mov r10, qword [rax + r9 + 8]
add r8b, 0xff
sbb qword [rcx + r9 + 8], r10
mov r8, qword [rax + r9 + 0x10]
sbb qword [rcx + r9 + 0x10], r8
mov r8, qword [rax + r9 + 0x18]
sbb qword [rcx + r9 + 0x18], r8
setb r8b
movzx r8d, r8b
add rdx, 0xfffffffffffffffc
add r9, 0x20
cmp rdx, 4
jae 0x1400294f0
test rdx, rdx
je 0x1400294a6
add rcx, r9
add rax, r9
jmp 0x14002947a
add r15, rbp
xor r8d, r8d
mov rcx, rdi
xor edx, edx
nop word cs:[rax + rax]
mov r9, qword [r15 + r8]
add r9, qword [rax + r8]
setb r10b
add r9, rdx
setb dl
or dl, r10b
mov qword [r15 + r8], r9
mov r9, qword [rax + r8 + 8]
add dl, 0xff
adc qword [r15 + r8 + 8], r9
mov rdx, qword [rax + r8 + 0x10]
adc qword [r15 + r8 + 0x10], rdx
mov rdx, qword [rax + r8 + 0x18]
adc qword [r15 + r8 + 0x18], rdx
setb dl
movzx edx, dl
add rcx, 0xfffffffffffffffc
add r8, 0x20
cmp rcx, 4
jae 0x140029570
test rcx, rcx
je 0x1400291d4
add r15, r8
add rax, r8
xor r8d, r8d
mov r9, qword [r15 + r8*8]
add r9, qword [rax + r8*8]
setb r10b
add r9, rdx
setb dl
or dl, r10b
movzx edx, dl
mov qword [r15 + r8*8], r9
inc r8
cmp rcx, r8
jne 0x1400295d0
jmp 0x1400291d4
mov ecx, dword [rbx + 8]
test ecx, ecx
jle 0x14002969c
mov rdx, qword [rbx]
mov rax, qword [rsp + 0x58]
mov r15, qword [rsp + 0x100]
mov r8d, ecx
cmp qword [rdx + r8*8 - 8], 0
jne 0x1400296b4
lea r8d, [rcx - 1]
cmp ecx, 1
mov ecx, r8d
jg 0x140029614
mov dword [rbx + 8], 0
jmp 0x1400296ab
mov dword [rsp + 0x20], 0x168
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_bn.c.inc
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.1400885a0
xor edi, edi
cmp byte [r15 + 0x28], 0
jne 0x140028e8e
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
lea rdx, [rcx - 1]
mov qword [r15 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r15 + 0x20], rax
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
je 0x140028ea6
jmp 0x140028df1
mov rax, qword [rsp + 0x58]
mov r15, qword [rsp + 0x100]
jne 0x1400296b7
mov dword [rbx + 0x10], 0
jmp 0x1400296b7
mov dword [rbx + 8], ecx
mov ecx, dword [r12 + 8]
test ecx, ecx
jle 0x1400296e6
mov rdx, qword [r12]
mov r8d, ecx
cmp qword [rdx + r8*8 - 8], 0
jne 0x1400296f3
lea r8d, [rcx - 1]
cmp ecx, 1
mov ecx, r8d
jg 0x1400296c4
mov dword [r12 + 8], 0
jmp 0x1400296e8
jne 0x1400296f8
mov dword [r12 + 0x10], 0
jmp 0x1400296f8
mov dword [r12 + 8], ecx
test rax, rax
je 0x140029717
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
mov r8d, dword [rsp + 0x3c]
call fcn.140029d80
test eax, eax
je 0x140028e81
mov edi, 1
cmp byte [r15 + 0x28], 0
jne 0x140028e8e
jmp 0x140029666