Function at 0x589980
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
xor eax, eax
lea rdi, [rcx + 8]
mov qword [rsp + 0x70], r8
mov rbx, rcx
mov rbp, rdx
and rdi, 0xfffffffffffffff8
mov qword [rcx], 0
mov r8d, 0x9e
mov rsi, r9
mov qword [rcx + 0xa8], 0
sub rcx, rdi
lea rdx, str.crypto_modes_ocb128.c
add ecx, 0xb0
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [rbx + 0x30], 5
mov ecx, 0x50
call fcn.00580440
mov qword [rbx + 0x58], rax
test rax, rax
je 0x58a14b
movq xmm0, rsi
mov rax, qword [rsp + 0x88]
lea rcx, [rbx + 0x38]
mov r8, rbp
movhps xmm0, qword [rsp + 0x80]
mov rdx, rcx
movups xmmword [rbx], xmm0
movq xmm0, rbp
movhps xmm0, qword [rsp + 0x70]
mov qword [rbx + 0x20], rax
movups xmmword [rbx + 0x10], xmm0
call rsi
movzx ecx, byte [rbx + 0x47]
movzx edx, byte [rbx + 0x46]
movzx eax, byte [rbx + 0x38]
lea r9d, [rcx + rcx]
lea r8d, [rdx + rdx]
sar ecx, 7
sar edx, 7
or ecx, r8d
mov byte [rbx + 0x56], cl
movzx ecx, byte [rbx + 0x45]
lea r8d, [rcx + rcx]
sar ecx, 7
or edx, r8d
mov byte [rbx + 0x55], dl
movzx edx, byte [rbx + 0x44]
lea r8d, [rdx + rdx]
sar edx, 7
or ecx, r8d
mov byte [rbx + 0x54], cl
movzx ecx, byte [rbx + 0x43]
lea r8d, [rcx + rcx]
sar ecx, 7
or edx, r8d
mov byte [rbx + 0x53], dl
movzx edx, byte [rbx + 0x42]
lea r8d, [rdx + rdx]
sar edx, 7
or ecx, r8d
mov byte [rbx + 0x52], cl
movzx ecx, byte [rbx + 0x41]
lea r8d, [rcx + rcx]
sar ecx, 7
or edx, r8d
mov byte [rbx + 0x51], dl
movzx edx, byte [rbx + 0x40]
lea r8d, [rdx + rdx]
sar edx, 7
or ecx, r8d
mov byte [rbx + 0x50], cl
movzx ecx, byte [rbx + 0x3f]
lea r8d, [rcx + rcx]
sar ecx, 7
or edx, r8d
mov byte [rbx + 0x4f], dl
movzx edx, byte [rbx + 0x3e]
lea r8d, [rdx + rdx]
sar edx, 7
or ecx, r8d
movzx r8d, byte [rbx + 0x3d]
mov byte [rbx + 0x4e], cl
lea ecx, [r8 + r8]
sar r8d, 7
or edx, ecx
movzx ecx, byte [rbx + 0x3c]
mov byte [rbx + 0x4d], dl
lea edx, [rcx + rcx]
sar ecx, 7
or r8d, edx
mov byte [rbx + 0x4c], r8b
movzx r8d, byte [rbx + 0x3b]
lea edx, [r8 + r8]
sar r8d, 7
or ecx, edx
mov byte [rbx + 0x4b], cl
movzx ecx, byte [rbx + 0x3a]
lea edx, [rcx + rcx]
sar ecx, 7
or r8d, edx
mov byte [rbx + 0x4a], r8b
movzx r8d, byte [rbx + 0x39]
lea edx, [r8 + r8]
sar r8d, 7
or ecx, edx
mov byte [rbx + 0x49], cl
lea ecx, [rax + rax]
sar al, 7
mov edx, eax
or ecx, r8d
and edx, 0xffffff87
mov byte [rbx + 0x48], cl
xor edx, r9d
mov byte [rbx + 0x57], dl
mov rax, qword [rbx + 0x58]
movzx edx, dl
lea r10d, [rdx + rdx]
sar edx, 7
mov byte [rax + 0xf], r10b
movzx r9d, byte [rbx + 0x56]
lea r8d, [r9 + r9]
sar r9d, 7
or edx, r8d
mov byte [rax + 0xe], dl
movzx r8d, byte [rbx + 0x55]
lea edx, [r8 + r8]
sar r8d, 7
or r9d, edx
mov byte [rax + 0xd], r9b
movzx edx, byte [rbx + 0x54]
lea r9d, [rdx + rdx]
sar edx, 7
or r8d, r9d
mov byte [rax + 0xc], r8b
movzx r8d, byte [rbx + 0x53]
lea r9d, [r8 + r8]
sar r8d, 7
or edx, r9d
mov byte [rax + 0xb], dl
movzx edx, byte [rbx + 0x52]
lea r9d, [rdx + rdx]
sar edx, 7
or r8d, r9d
mov byte [rax + 0xa], r8b
movzx r8d, byte [rbx + 0x51]
lea r9d, [r8 + r8]
sar r8d, 7
or edx, r9d
mov byte [rax + 9], dl
movzx edx, byte [rbx + 0x50]
lea r9d, [rdx + rdx]
sar edx, 7
or r8d, r9d
mov byte [rax + 8], r8b
movzx r8d, byte [rbx + 0x4f]
lea r9d, [r8 + r8]
sar r8d, 7
or edx, r9d
mov byte [rax + 7], dl
movzx edx, byte [rbx + 0x4e]
lea r9d, [rdx + rdx]
sar edx, 7
or r8d, r9d
mov byte [rax + 6], r8b
movzx r8d, byte [rbx + 0x4d]
lea r9d, [r8 + r8]
sar r8d, 7
or edx, r9d
mov byte [rax + 5], dl
movzx edx, byte [rbx + 0x4c]
lea r9d, [rdx + rdx]
sar edx, 7
or r8d, r9d
mov byte [rax + 4], r8b
movzx r8d, byte [rbx + 0x4b]
lea r9d, [r8 + r8]
sar r8d, 7
or edx, r9d
mov byte [rax + 3], dl
movzx edx, byte [rbx + 0x4a]
lea r9d, [rdx + rdx]
sar edx, 7
or r8d, r9d
mov byte [rax + 2], r8b
movzx r9d, byte [rbx + 0x49]
lea r8d, [r9 + r9]
sar r9d, 7
or edx, r8d
mov byte [rax + 1], dl
movzx r8d, byte [rbx + 0x48]
lea edx, [r8 + r8]
or edx, r9d
sar cl, 7
and ecx, 0xffffff87
mov byte [rax], dl
xor ecx, r10d
mov byte [rax + 0xf], cl
mov rax, qword [rbx + 0x58]
movzx r8d, byte [rax + 0xf]
movzx ecx, byte [rax + 0xe]
movzx edx, byte [rax]
lea r10d, [r8 + r8]
lea r9d, [rcx + rcx]
sar r8d, 7
sar ecx, 7
or r8d, r9d
sar dl, 7
mov byte [rax + 0x1e], r8b
movzx r8d, byte [rax + 0xd]
and edx, 0xffffff87
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x1d], cl
movzx ecx, byte [rax + 0xc]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x1c], r8b
movzx r8d, byte [rax + 0xb]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x1b], cl
movzx ecx, byte [rax + 0xa]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x1a], r8b
movzx r8d, byte [rax + 9]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x19], cl
movzx ecx, byte [rax + 8]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x18], r8b
movzx r8d, byte [rax + 7]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x17], cl
movzx ecx, byte [rax + 6]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x16], r8b
movzx r8d, byte [rax + 5]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x15], cl
movzx ecx, byte [rax + 4]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x14], r8b
movzx r8d, byte [rax + 3]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x13], cl
movzx ecx, byte [rax + 2]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
movzx r9d, byte [rax + 1]
mov byte [rax + 0x12], r8b
lea r8d, [r9 + r9]
or ecx, r8d
movzx r8d, byte [rax]
sar r9d, 7
xor edx, r10d
mov byte [rax + 0x11], cl
lea ecx, [r8 + r8]
or ecx, r9d
mov byte [rax + 0x10], cl
mov byte [rax + 0x1f], dl
mov rax, qword [rbx + 0x58]
movzx r8d, byte [rax + 0x1f]
movzx ecx, byte [rax + 0x1e]
movzx edx, byte [rax + 0x10]
lea r10d, [r8 + r8]
lea r9d, [rcx + rcx]
sar r8d, 7
sar ecx, 7
or r8d, r9d
sar dl, 7
mov byte [rax + 0x2e], r8b
movzx r8d, byte [rax + 0x1d]
and edx, 0xffffff87
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x2d], cl
movzx ecx, byte [rax + 0x1c]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x2c], r8b
movzx r8d, byte [rax + 0x1b]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x2b], cl
movzx ecx, byte [rax + 0x1a]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x2a], r8b
movzx r8d, byte [rax + 0x19]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x29], cl
movzx ecx, byte [rax + 0x18]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x28], r8b
movzx r8d, byte [rax + 0x17]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x27], cl
movzx ecx, byte [rax + 0x16]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x26], r8b
movzx r8d, byte [rax + 0x15]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x25], cl
movzx ecx, byte [rax + 0x14]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x24], r8b
movzx r8d, byte [rax + 0x13]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x23], cl
movzx ecx, byte [rax + 0x12]
lea r9d, [rcx + rcx]
or r8d, r9d
movzx r9d, byte [rax + 0x11]
sar ecx, 7
xor edx, r10d
mov byte [rax + 0x22], r8b
lea r8d, [r9 + r9]
sar r9d, 7
or ecx, r8d
mov byte [rax + 0x21], cl
movzx r8d, byte [rax + 0x10]
mov byte [rax + 0x2f], dl
lea ecx, [r8 + r8]
or ecx, r9d
mov byte [rax + 0x20], cl
mov rax, qword [rbx + 0x58]
movzx r8d, byte [rax + 0x2f]
movzx ecx, byte [rax + 0x2e]
movzx edx, byte [rax + 0x20]
lea r10d, [r8 + r8]
lea r9d, [rcx + rcx]
sar r8d, 7
sar ecx, 7
or r8d, r9d
sar dl, 7
mov byte [rax + 0x3e], r8b
movzx r8d, byte [rax + 0x2d]
and edx, 0xffffff87
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x3d], cl
movzx ecx, byte [rax + 0x2c]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x3c], r8b
movzx r8d, byte [rax + 0x2b]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x3b], cl
movzx ecx, byte [rax + 0x2a]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x3a], r8b
movzx r8d, byte [rax + 0x29]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x39], cl
movzx ecx, byte [rax + 0x28]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x38], r8b
movzx r8d, byte [rax + 0x27]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x37], cl
movzx ecx, byte [rax + 0x26]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x36], r8b
movzx r8d, byte [rax + 0x25]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x35], cl
movzx ecx, byte [rax + 0x24]
lea r9d, [rcx + rcx]
sar ecx, 7
or r8d, r9d
mov byte [rax + 0x34], r8b
movzx r8d, byte [rax + 0x23]
lea r9d, [r8 + r8]
sar r8d, 7
or ecx, r9d
mov byte [rax + 0x33], cl
movzx ecx, byte [rax + 0x22]
lea r9d, [rcx + rcx]
or r8d, r9d
sar ecx, 7
xor edx, r10d
mov byte [rax + 0x32], r8b
movzx r9d, byte [rax + 0x21]
mov byte [rax + 0x3f], dl
lea r8d, [r9 + r9]
sar r9d, 7
or ecx, r8d
movzx r8d, byte [rax + 0x20]
mov byte [rax + 0x31], cl
lea ecx, [r8 + r8]
or ecx, r9d
mov byte [rax + 0x30], cl
mov rax, qword [rbx + 0x58]
movzx r8d, byte [rax + 0x3f]
movzx ecx, byte [rax + 0x3e]
movzx edx, byte [rax + 0x30]
lea r10d, [rcx + rcx]
lea r9d, [r8 + r8]
sar r8d, 7
sar ecx, 7
or r8d, r10d
sar dl, 7
mov byte [rax + 0x4e], r8b
movzx r8d, byte [rax + 0x3d]
and edx, 0xffffff87
lea r10d, [r8 + r8]
sar r8d, 7
or ecx, r10d
mov byte [rax + 0x4d], cl
movzx ecx, byte [rax + 0x3c]
lea r10d, [rcx + rcx]
sar ecx, 7
or r8d, r10d
mov byte [rax + 0x4c], r8b
movzx r8d, byte [rax + 0x3b]
lea r10d, [r8 + r8]
sar r8d, 7
or ecx, r10d
mov byte [rax + 0x4b], cl
movzx ecx, byte [rax + 0x3a]
lea r10d, [rcx + rcx]
sar ecx, 7
or r8d, r10d
mov byte [rax + 0x4a], r8b
movzx r8d, byte [rax + 0x39]
lea r10d, [r8 + r8]
sar r8d, 7
or ecx, r10d
mov byte [rax + 0x49], cl
movzx ecx, byte [rax + 0x38]
lea r10d, [rcx + rcx]
sar ecx, 7
or r8d, r10d
mov byte [rax + 0x48], r8b
movzx r8d, byte [rax + 0x37]
lea r10d, [r8 + r8]
sar r8d, 7
or ecx, r10d
mov byte [rax + 0x47], cl
movzx ecx, byte [rax + 0x36]
lea r10d, [rcx + rcx]
sar ecx, 7
or r8d, r10d
mov byte [rax + 0x46], r8b
movzx r8d, byte [rax + 0x35]
lea r10d, [r8 + r8]
sar r8d, 7
or ecx, r10d
mov byte [rax + 0x45], cl
movzx ecx, byte [rax + 0x34]
lea r10d, [rcx + rcx]
sar ecx, 7
or r8d, r10d
mov byte [rax + 0x44], r8b
movzx r8d, byte [rax + 0x33]
lea r10d, [r8 + r8]
or ecx, r10d
sar r8d, 7
xor edx, r9d
mov byte [rax + 0x43], cl
movzx ecx, byte [rax + 0x32]
mov byte [rax + 0x4f], dl
lea r10d, [rcx + rcx]
sar ecx, 7
or r8d, r10d
movzx r10d, byte [rax + 0x31]
mov byte [rax + 0x42], r8b
lea r8d, [r10 + r10]
sar r10d, 7
or ecx, r8d
movzx r8d, byte [rax + 0x30]
mov byte [rax + 0x41], cl
lea ecx, [r8 + r8]
or ecx, r10d
mov byte [rax + 0x40], cl
mov eax, 1
mov qword [rbx + 0x28], 4
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov r8d, 0x41
mov edx, 0x7a
mov ecx, 0xf
mov dword [rsp + 0x20], 0x9f
lea r9, str.crypto_modes_ocb128.c
call fcn.0055dd20
xor eax, eax
jmp 0x58a142