Function at 0x58cba0
Capabilities:
Enumerate pe sections
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, 0xc8
mov r8, rcx
mov r11, qword [r8 + 0x28]
mov rbx, qword [r8]
mov edi, dword [r8 + 8]
add edi, 0xfffffffb
add rdi, rbx
mov r13, qword [r8 + 0x10]
mov r10d, dword [r8 + 0x18]
sub edx, r10d
mov rax, r13
sub rax, rdx
mov qword [rsp + 0x60], rax
add r10d, 0xfffffeff
add r10, r13
mov esi, dword [r11 + 0x3c]
mov rdx, qword [r11 + 0x40]
mov cl, byte [r11 + 0x70]
mov eax, 1
mov ebp, 1
shl ebp, cl
dec ebp
mov dword [rsp + 0x84], ebp
mov cl, byte [r11 + 0x74]
shl eax, cl
dec eax
mov dword [rsp + 0x80], eax
mov eax, esi
not eax
mov dword [rsp + 0x74], eax
lea eax, [rsi - 1]
mov ecx, esi
and ecx, 0x1f
mov qword [rsp + 0xa0], rcx
neg rcx
lea rcx, [rax + rcx + 1]
lea rbp, [rdx + rax + 1]
mov qword [rsp + 0xa8], rbp
lea rbp, [rax + 2]
mov qword [rsp + 0xb8], rbp
inc rax
mov qword [rsp + 0xb0], rax
mov eax, esi
sub eax, ecx
mov dword [rsp + 0x70], eax
mov eax, dword [r11 + 0x34]
mov ebp, dword [r11 + 0x38]
mov dword [rsp + 0x7c], ebp
mov r14d, dword [r11 + 0x48]
mov r9d, dword [r11 + 0x4c]
mov r15, qword [r11 + 0x60]
mov r12, qword [r11 + 0x68]
mov qword [rsp + 0xc0], rax
lea eax, [rsi + rax]
mov dword [rsp + 0x78], eax
lea rax, [rdx + 1]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x98], rcx
lea rax, [rdx + rcx]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x40], rdx
lea rax, [rdx + 0x10]
mov qword [rsp + 0x58], rax
jmp 0x58d540
movzx eax, al
movzx ebp, dx
and eax, 0xf
je 0x58ccf8
cmp r9d, eax
jae 0x58cce2
movzx edx, byte [rbx]
inc rbx
mov ecx, r9d
shl edx, cl
add r14d, edx
add r9d, 8
mov edx, 1
mov ecx, eax
shl edx, cl
dec edx
and edx, r14d
add ebp, edx
shr r14d, cl
sub r9d, eax
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x38], r11
cmp r9d, 0xe
mov dword [rsp], ebp
ja 0x58cd32
movzx eax, byte [rbx]
mov ecx, r9d
shl eax, cl
add eax, r14d
lea ecx, [r9 + 8]
movzx r14d, byte [rbx + 1]
add rbx, 2
mov r11, rbx
shl r14d, cl
add r14d, eax
add r9d, 0x10
jmp 0x58cd35
mov r11, rbx
mov eax, r14d
and eax, dword [rsp + 0x80]
movzx ecx, byte [r12 + rax*4 + 1]
movzx ebx, word [r12 + rax*4 + 2]
shr r14d, cl
sub r9d, ecx
movzx eax, byte [r12 + rax*4]
test al, 0x10
mov ebp, r14d
mov edx, r9d
jne 0x58cd93
test al, 0x40
jne 0x58d5f9
movzx ebx, bx
mov esi, 1
mov ecx, eax
shl esi, cl
dec esi
and esi, ebp
add esi, ebx
movzx ecx, byte [r12 + rsi*4 + 1]
movzx ebx, word [r12 + rsi*4 + 2]
shr ebp, cl
sub edx, ecx
movzx eax, byte [r12 + rsi*4]
test al, 0x10
je 0x58cd60
movzx ecx, bx
mov qword [rsp + 0x48], rcx
and eax, 0xf
cmp edx, eax
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x28], rdi
jae 0x58cddc
mov rbx, r11
movzx r14d, byte [rbx]
mov ecx, edx
shl r14d, cl
add r14d, ebp
lea r9d, [rdx + 8]
cmp r9d, eax
jae 0x58cde7
movzx ebp, byte [rbx + 1]
add rbx, 2
mov ecx, r9d
shl ebp, cl
add r14d, ebp
add edx, 0x10
mov r9d, edx
jmp 0x58cdea
mov r9d, edx
mov r14d, ebp
mov rbx, r11
jmp 0x58cdea
inc rbx
mov rsi, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x48]
mov edi, 1
mov ecx, eax
shl edi, cl
dec edi
and edi, r14d
lea edx, [rdi + rdx]
shr r14d, cl
sub r9d, eax
mov ebp, r13d
sub ebp, dword [rsp + 0x60]
mov r10d, edx
sub r10d, ebp
jbe 0x58d04d
mov qword [rsp + 0x18], rdi
cmp r10d, dword [rsp + 0x7c]
mov r11, qword [rsp + 0x38]
jbe 0x58ce3d
cmp dword [r11 + 0x1be0], 0
jne 0x58d671
test esi, esi
mov qword [rsp + 8], r8
je 0x58d0d3
mov r8d, esi
sub r8d, r10d
jae 0x58d1d9
mov eax, dword [rsp + 0x78]
mov ebp, eax
sub ebp, r10d
mov rax, qword [rsp + 0x40]
lea rax, [rax + rbp]
sub r10d, esi
mov edi, dword [rsp]
mov ecx, edi
sub ecx, r10d
jbe 0x58d2fe
mov dword [rsp], ecx
mov rdi, qword [rsp + 0x18]
add edi, dword [rsp + 0x74]
add edi, dword [rsp + 0x48]
mov ecx, r13d
sub ecx, dword [rsp + 0x60]
sub edi, ecx
lea rsi, [rdi + 1]
cmp rsi, 0x20
mov dword [rsp + 0x14], edx
mov qword [rsp + 0x18], rdi
jb 0x58cec6
lea rcx, [rbp + rdi]
add rcx, qword [rsp + 0x68]
cmp r13, rcx
jae 0x58d425
lea rcx, [r13 + rdi + 1]
cmp rax, rcx
jae 0x58d425
mov rcx, r13
mov r8, qword [rsp + 8]
mov edi, dword [rsp]
lea ebp, [r10 - 1]
mov esi, r10d
and esi, 7
je 0x58cef2
neg esi
nop
movzx edx, byte [rax]
inc rax
mov byte [rcx], dl
inc rcx
dec r10d
inc esi
jne 0x58cee0
cmp ebp, 7
jb 0x58cf44
nop word [rax + rax]
movzx edx, byte [rax]
mov byte [rcx], dl
movzx edx, byte [rax + 1]
mov byte [rcx + 1], dl
movzx edx, byte [rax + 2]
mov byte [rcx + 2], dl
movzx edx, byte [rax + 3]
mov byte [rcx + 3], dl
movzx edx, byte [rax + 4]
mov byte [rcx + 4], dl
movzx edx, byte [rax + 5]
mov byte [rcx + 5], dl
movzx edx, byte [rax + 6]
mov byte [rcx + 6], dl
movzx edx, byte [rax + 7]
mov byte [rcx + 7], dl
add rax, 8
add rcx, 8
add r10d, 0xfffffff8
jne 0x58cf00
mov rax, qword [rsp + 0x18]
lea rax, [r13 + rax + 1]
mov ecx, edi
mov rsi, qword [rsp + 0x20]
sub ecx, esi
jbe 0x58d3b4
mov rdx, qword [rsp + 0xb8]
lea r8, [r13 + rdx]
cmp qword [rsp + 0xb0], 0x20
mov rdi, qword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
mov qword [rsp + 0x50], rbx
jb 0x58cfa6
cmp rax, qword [rsp + 0xa8]
jae 0x58d4e5
mov rdx, qword [rsp + 0x18]
lea rdx, [r8 + rdx]
cmp qword [rsp + 0x40], rdx
jae 0x58d4e5
mov ebp, esi
mov rdx, qword [rsp + 0x40]
mov r13, r8
lea r8d, [rbp - 1]
mov esi, ebp
and esi, 7
je 0x58cfd1
neg esi
nop dword [rax]
movzx ebx, byte [rdx]
inc rdx
mov byte [rax], bl
inc rax
dec ebp
inc esi
jne 0x58cfc0
cmp r8d, 7
mov rsi, qword [rsp + 0x20]
mov r8, r13
jb 0x58d023
nop
movzx ebx, byte [rdx]
mov byte [rax], bl
movzx ebx, byte [rdx + 1]
mov byte [rax + 1], bl
movzx ebx, byte [rdx + 2]
mov byte [rax + 2], bl
movzx ebx, byte [rdx + 3]
mov byte [rax + 3], bl
movzx ebx, byte [rdx + 4]
mov byte [rax + 4], bl
movzx ebx, byte [rdx + 5]
mov byte [rax + 5], bl
movzx ebx, byte [rdx + 6]
mov byte [rax + 6], bl
movzx ebx, byte [rdx + 7]
mov byte [rax + 7], bl
add rdx, 8
add rax, 8
add ebp, 0xfffffff8
jne 0x58cfe0
add r8, qword [rsp + 0x18]
mov edx, dword [rsp + 0x14]
mov rax, r8
sub rax, rdx
mov r13, r8
mov r8, qword [rsp + 8]
mov rbx, qword [rsp + 0x50]
cmp ecx, 3
jae 0x58d350
jmp 0x58d377
mov r11, rbx
mov esi, edx
mov edx, dword [rsp]
mov rbp, r13
sub rbp, rsi
neg rsi
add rbp, 2
xor ebx, ebx
xor ecx, ecx
mov rdi, qword [rsp + 0x28]
nop dword [rax + rax]
movzx eax, byte [rbp + rcx - 2]
mov byte [r13 + rcx], al
movzx eax, byte [rbp + rcx - 1]
mov byte [r13 + rcx + 1], al
movzx eax, byte [rbp + rcx]
mov byte [r13 + rcx + 2], al
add rcx, 3
add rbx, 0xfffffffffffffffd
lea eax, [rbx + rdx]
cmp eax, 2
ja 0x58d070
cmp dword [rsp], ecx
mov r10, qword [rsp + 0x30]
jne 0x58d0b0
add r13, rcx
jmp 0x58d313
dec rdx
lea rax, [r13 + rsi + 2]
mov al, byte [rax + rcx - 2]
mov byte [r13 + rcx], al
cmp edx, ecx
jne 0x58d302
lea r13, [r13 + rcx + 1]
jmp 0x58d313
mov dword [rsp + 0x14], edx
mov r8, qword [rsp + 0xc0]
sub r8d, r10d
mov rax, qword [rsp + 0x40]
lea rax, [rax + r8]
mov edx, dword [rsp]
mov ecx, edx
sub ecx, r10d
jbe 0x58d32e
mov qword [rsp + 0x50], rbx
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x18]
lea edx, [rdx + rsi - 1]
mov ebx, r13d
sub ebx, dword [rsp + 0x60]
mov edi, edx
sub edi, ebx
sub edx, ebp
mov qword [rsp], rdx
lea r11, [rdx + 1]
cmp r11, 0x20
jb 0x58d152
mov rdx, qword [rsp + 0x18]
lea ebx, [rdx + rsi - 1]
sub ebx, ebp
lea rbp, [r8 + rbx]
add rbp, qword [rsp + 0x68]
cmp r13, rbp
jae 0x58d3c3
lea rbp, [r13 + rbx + 1]
cmp rax, rbp
jae 0x58d3c3
mov rbx, r13
mov r11, qword [rsp + 0x38]
mov r8, qword [rsp + 8]
lea ebp, [r10 - 1]
mov esi, r10d
and esi, 7
je 0x58d182
neg esi
nop dword [rax]
movzx edx, byte [rax]
inc rax
mov byte [rbx], dl
inc rbx
dec r10d
inc esi
jne 0x58d170
cmp ebp, 7
jb 0x58d2d4
nop dword [rax + rax]
movzx edx, byte [rax]
mov byte [rbx], dl
movzx edx, byte [rax + 1]
mov byte [rbx + 1], dl
movzx edx, byte [rax + 2]
mov byte [rbx + 2], dl
movzx edx, byte [rax + 3]
mov byte [rbx + 3], dl
movzx edx, byte [rax + 4]
mov byte [rbx + 4], dl
movzx edx, byte [rax + 5]
mov byte [rbx + 5], dl
movzx edx, byte [rax + 6]
mov byte [rbx + 6], dl
movzx edx, byte [rax + 7]
mov byte [rbx + 7], dl
add rax, 8
add rbx, 8
add r10d, 0xfffffff8
jne 0x58d190
jmp 0x58d2d4
mov rax, qword [rsp + 0x40]
lea rax, [rax + r8]
mov edi, dword [rsp]
mov ecx, edi
sub ecx, r10d
jbe 0x58d2fe
mov dword [rsp + 0x14], edx
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x18]
lea edi, [rdx + rbx - 1]
mov edx, r13d
sub edx, dword [rsp + 0x60]
mov esi, edi
sub esi, edx
mov qword [rsp], rsi
sub edi, ebp
mov qword [rsp + 0x88], rdi
lea rsi, [rdi + 1]
cmp rsi, 0x20
jb 0x58d255
mov rdx, qword [rsp + 0x18]
lea ebx, [rdx + rbx - 1]
sub ebx, ebp
lea rdx, [r8 + rbx]
add rdx, qword [rsp + 0x68]
cmp r13, rdx
jae 0x58d486
lea rdx, [r13 + rbx + 1]
cmp rax, rdx
jae 0x58d486
mov rbx, r13
mov r8, qword [rsp + 8]
mov rdi, qword [rsp]
lea ebp, [r10 - 1]
mov esi, r10d
and esi, 7
je 0x58d282
neg esi
nop
movzx edx, byte [rax]
inc rax
mov byte [rbx], dl
inc rbx
dec r10d
inc esi
jne 0x58d270
cmp ebp, 7
jb 0x58d2d4
nop word [rax + rax]
movzx edx, byte [rax]
mov byte [rbx], dl
movzx edx, byte [rax + 1]
mov byte [rbx + 1], dl
movzx edx, byte [rax + 2]
mov byte [rbx + 2], dl
movzx edx, byte [rax + 3]
mov byte [rbx + 3], dl
movzx edx, byte [rax + 4]
mov byte [rbx + 4], dl
movzx edx, byte [rax + 5]
mov byte [rbx + 5], dl
movzx edx, byte [rax + 6]
mov byte [rbx + 6], dl
movzx edx, byte [rax + 7]
mov byte [rbx + 7], dl
add rax, 8
add rbx, 8
add r10d, 0xfffffff8
jne 0x58d290
lea r13, [r13 + rdi + 1]
mov edx, dword [rsp + 0x14]
mov rax, r13
sub rax, rdx
mov rdi, qword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x20]
cmp ecx, 3
jae 0x58d350
jmp 0x58d377
mov ecx, edi
jmp 0x58d330
add rsi, r13
mov al, byte [rcx + rsi + 1]
mov byte [r13 + rcx + 1], al
lea r13, [r13 + rcx + 2]
mov rbx, r11
mov r11, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x20]
cmp r13, r10
jb 0x58d5dc
jmp 0x58d61b
mov ecx, edx
mov r8, qword [rsp + 8]
mov rdi, qword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
cmp ecx, 3
jb 0x58d377
nop word cs:[rax + rax]
movzx edx, byte [rax]
mov byte [r13], dl
movzx edx, byte [rax + 1]
mov byte [r13 + 1], dl
movzx edx, byte [rax + 2]
add rax, 3
mov byte [r13 + 2], dl
add r13, 3
add ecx, 0xfffffffd
cmp ecx, 2
ja 0x58d350
test ecx, ecx
je 0x58d5d7
mov dl, byte [rax]
mov byte [r13], dl
cmp ecx, 1
jne 0x58d39b
inc r13
cmp r13, r10
jb 0x58d5dc
jmp 0x58d61b
mov al, byte [rax + 1]
mov byte [r13 + 1], al
add r13, 2
cmp r13, r10
jb 0x58d5dc
jmp 0x58d61b
mov r13, rax
mov ecx, edi
mov rax, qword [rsp + 0x40]
jmp 0x58d335
mov rdx, qword [rsp]
inc edx
and edx, 0x1f
sub r11, rdx
lea rbx, [r13 + r11]
sub r10d, r11d
add rax, r11
add r8, qword [rsp + 0x58]
lea rsi, [r13 + 0x10]
nop word cs:[rax + rax]
movups xmm0, xmmword [r8 - 0x10]
movups xmm1, xmmword [r8]
movups xmmword [rsi - 0x10], xmm0
movups xmmword [rsi], xmm1
add r8, 0x20
add rsi, 0x20
add r11, 0xffffffffffffffe0
jne 0x58d3f0
test edx, edx
mov r11, qword [rsp + 0x38]
mov r8, qword [rsp + 8]
jne 0x58d15f
jmp 0x58d2d4
mov rdx, rbx
lea r8d, [rdi + 1]
and r8d, 0x1f
sub rsi, r8
lea rcx, [r13 + rsi]
sub r10d, esi
add rax, rsi
add rbp, qword [rsp + 0x58]
lea rbx, [r13 + 0x10]
nop word [rax + rax]
movups xmm0, xmmword [rbp - 0x10]
movups xmm1, xmmword [rbp]
movups xmmword [rbx - 0x10], xmm0
movups xmmword [rbx], xmm1
add rbp, 0x20
add rbx, 0x20
add rsi, 0xffffffffffffffe0
jne 0x58d450
test r8d, r8d
mov r8, qword [rsp + 8]
mov rbx, rdx
mov edi, dword [rsp]
jne 0x58ced1
jmp 0x58cf44
mov rdx, qword [rsp + 0x88]
inc edx
and edx, 0x1f
sub rsi, rdx
lea rbx, [r13 + rsi]
sub r10d, esi
add rax, rsi
add r8, qword [rsp + 0x58]
lea rbp, [r13 + 0x10]
nop word [rax + rax]
movups xmm0, xmmword [r8 - 0x10]
movups xmm1, xmmword [r8]
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm1
add r8, 0x20
add rbp, 0x20
add rsi, 0xffffffffffffffe0
jne 0x58d4b0
test edx, edx
mov r8, qword [rsp + 8]
mov rdi, qword [rsp]
jne 0x58d261
jmp 0x58d2d4
mov rbp, qword [rsp + 0x98]
add rax, rbp
mov rdx, qword [rsp + 0x18]
lea rdx, [r13 + rdx + 0x11]
mov rbx, qword [rsp + 0x58]
movups xmm0, xmmword [rbx - 0x10]
movups xmm1, xmmword [rbx]
movups xmmword [rdx - 0x10], xmm0
movups xmmword [rdx], xmm1
add rbx, 0x20
add rdx, 0x20
add rbp, 0xffffffffffffffe0
jne 0x58d4ff
cmp dword [rsp + 0xa0], 0
mov edx, dword [rsp + 0x70]
mov ebp, edx
mov rdx, qword [rsp + 0x90]
jne 0x58cfad
jmp 0x58d023
cmp r9d, 0xe
ja 0x58d568
movzx eax, byte [rbx]
mov ecx, r9d
shl eax, cl
add eax, r14d
lea ecx, [r9 + 8]
movzx r14d, byte [rbx + 1]
add rbx, 2
shl r14d, cl
add r14d, eax
add r9d, 0x10
mov edx, r14d
and edx, dword [rsp + 0x84]
mov al, byte [r15 + rdx*4]
movzx ecx, byte [r15 + rdx*4 + 1]
movzx edx, word [r15 + rdx*4 + 2]
jmp 0x58d5b4
movzx edx, dx
mov ebp, 1
mov ecx, eax
shl ebp, cl
dec ebp
and ebp, r14d
add ebp, edx
movzx eax, byte [r15 + rbp*4]
movzx ecx, byte [r15 + rbp*4 + 1]
movzx edx, word [r15 + rbp*4 + 2]
shr r14d, cl
sub r9d, ecx
test al, al
je 0x58d5d0
test al, 0x10
jne 0x58ccc0
test al, 0x40
je 0x58d590
jmp 0x58d5e7
mov byte [r13], dl
inc r13
cmp r13, r10
jae 0x58d61b
cmp rbx, rdi
jb 0x58d540
jmp 0x58d61b
mov ecx, 0x3f3f
test al, 0x20
jne 0x58d617
lea rax, [0x0083b950]
jmp 0x58d60e
mov r9d, edx
mov r14d, ebp
mov rbx, r11
mov r11, qword [rsp + 0x38]
lea rax, [0x0083b93a]
mov qword [r8 + 0x20], rax
mov ecx, 0x3f51
mov dword [r11 + 8], ecx
mov eax, r9d
shr eax, 3
sub rbx, rax
and r9d, 7
mov eax, 1
mov ecx, r9d
shl eax, cl
dec eax
and eax, r14d
mov qword [r8], rbx
mov qword [r8 + 0x10], r13
add edi, 5
sub edi, ebx
mov dword [r8 + 8], edi
add r10d, 0x101
sub r10d, r13d
mov dword [r8 + 0x18], r10d
mov dword [r11 + 0x48], eax
mov dword [r11 + 0x4c], r9d
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [0x0083b91c]
mov rdi, qword [rsp + 0x28]
mov r10, qword [rsp + 0x30]
jmp 0x58d60e