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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov r13d, dword [rcx + 0x24]
mov r15d, dword [rcx + 0x28]
mov ebp, dword [rcx + 0x2c]
mov edi, dword [rcx + 0x54]
mov eax, r13d
mov r14d, dword [rcx + 0x50]
mov r12, qword [rcx + 0x30]
and eax, 0x7fff
mov r10, qword [rcx + 0x38]
mov dword [rsp + 0x38], eax
mov rax, qword [rcx + 0xb8]
mov rbx, rcx
test rax, rax
je 0x180058ced
lea edx, [r13 + r15]
and edx, 0x7fff
mov r9d, edx
mov edx, 0x1000
sub edx, r15d
mov ecx, edx
mov r11, rcx
cmp rax, rcx
jae 0x180058d5c
add r15d, eax
mov edx, 0x8000
mov r11d, eax
sub edx, r15d
cmp r15d, 0xfff
mov dword [rsp + 0x30], edx
mov rdx, rax
setbe byte [rsp + 0x5f]
sub rdx, rax
mov qword [rbx + 0xb8], rdx
test r11d, r11d
je 0x18005877f
lea rax, [rbx + 0xc8]
mov qword [rsp + 0x40], r12
mov r12, rbx
mov rdx, qword [rbx + 0xb0]
mov dword [rsp + 0x50], ebp
mov ebx, r9d
mov ebp, r11d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x3c], r13d
mov qword [rsp + 0x48], r10
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x58], edi
jmp 0x1800586a2
lea r9d, [r13 + rbx]
add rdx, r14
mov ebx, r9d
mov qword [r12 + 0xb0], rdx
and ebx, 0x7fff
sub ebp, r13d
je 0x180058760
mov r13d, 0x8000
mov rax, qword [rsp + 0x28]
mov edi, ebx
sub r13d, ebx
cmp r13d, ebp
lea rcx, [rax + rdi]
cmova r13d, ebp
mov r14d, r13d
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rdx, qword [r12 + 0xb0]
cmp ebx, 0x100
ja 0x180058680
mov rax, qword [rsp + 0x28]
lea rcx, [rax + rdi + 0x8000]
mov eax, 0x101
sub eax, ebx
cmp eax, r13d
cmova eax, r13d
cmp eax, 8
jae 0x180058728
test al, 4
jne 0x180058e06
test eax, eax
je 0x180058680
movzx esi, byte [rdx]
mov byte [rcx], sil
test al, 2
jne 0x180058e39
mov rdx, qword [r12 + 0xb0]
jmp 0x180058680
mov rsi, qword [rdx]
mov qword [rcx], rsi
mov esi, eax
mov rdi, qword [rdx + rsi - 8]
mov qword [rcx + rsi - 8], rdi
lea rdi, [rcx + 8]
mov rsi, rdx
and rdi, 0xfffffffffffffff8
sub rcx, rdi
sub rsi, rcx
add ecx, eax
mov eax, ecx
shr eax, 3
mov ecx, eax
rep movsq qword [rdi], qword [rsi]
jmp 0x180058716
mov rbx, r12
mov r13d, dword [rsp + 0x3c]
mov r10, qword [rsp + 0x48]
mov ebp, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x54]
mov edi, dword [rsp + 0x58]
mov r12, qword [rsp + 0x40]
mov eax, dword [rsp + 0x30]
mov ecx, dword [rbx + 0xa8]
cmp ebp, eax
cmova ebp, eax
test ecx, ecx
sete al
and byte [rsp + 0x5f], al
jne 0x180058ccc
cmp r15d, 3
jbe 0x180058920
lea rax, [rbx + 0xc8]
mov esi, dword [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbx + 0x192a2]
mov qword [rsp + 0x30], rax
jmp 0x180058811
mov edx, 0x8000
add ebp, 1
add edi, 1
add r13d, 1
cmp ebp, edx
lea r12, [rax + 1]
mov r10, rax
mov r14d, 8
cmova ebp, edx
lea edx, [rsi + 1]
mov eax, 1
mov esi, edx
and esi, 0x7fff
sub r15d, eax
cmp qword [rsp + 0x30], r12
jb 0x1800588d7
cmp r15d, 3
jbe 0x18005891c
mov rax, qword [rsp + 0x28]
mov r9d, esi
mov r11d, r13d
add r9, rax
mov edx, dword [r9]
mov ecx, edx
and ecx, 0xffffff
mov r8d, ecx
shr r8d, 0x11
xor r8d, ecx
and r8d, 0xfff
add r8, 0x14950
movzx eax, word [rbx + r8*2 + 0xa]
mov word [rbx + r8*2 + 0xa], r13w
sub r11d, eax
mov word [rsp + 0x38], r11w
movzx r11d, r11w
cmp ebp, r11d
jb 0x180058880
mov r8, qword [rsp + 0x28]
and eax, 0x7fff
add rax, r8
mov r8d, dword [rax]
and r8d, 0xffffff
cmp ecx, r8d
je 0x180058ac0
movzx edx, dl
mov byte [r12], cl
lea rax, [r12 + 1]
shr byte [r10], 1
add word [rbx + rdx*2 + 0x81ca], 1
sub r14d, 1
je 0x1800587c8
mov edx, 0x8000
add ebp, 1
mov r12, rax
mov eax, 1
cmp ebp, edx
cmova ebp, edx
lea edx, [rsi + 1]
add r13d, 1
add edi, 1
mov esi, edx
sub r15d, eax
and esi, 0x7fff
cmp qword [rsp + 0x30], r12
jae 0x180058807
mov dword [rbx + 0x24], r13d
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x28], r15d
mov dword [rbx + 0x2c], ebp
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x38], r10
mov dword [rbx + 0x50], r14d
call sym.tdefl_flush_block
test eax, eax
jne 0x180058c9b
mov edi, dword [rbx + 0x54]
mov r12, qword [rbx + 0x30]
mov r10, qword [rbx + 0x38]
mov r14d, dword [rbx + 0x50]
cmp r15d, 3
ja 0x180058811
mov dword [rsp + 0x38], esi
test r15d, r15d
je 0x180058a6b
mov eax, dword [rsp + 0x38]
add edi, 1
movzx edx, byte [rbx + rax + 0xc8]
lea rax, [r12 + 1]
mov byte [r12], dl
shr byte [r10], 1
sub r14d, 1
jne 0x180058958
mov r10, rax
mov r14d, 8
lea rax, [r12 + 2]
add word [rbx + rdx*2 + 0x81ca], 1
add ebp, 1
lea r12d, [r13 + 1]
mov edx, 0x8000
cmp ebp, edx
lea r8, [rbx + 0x192a2]
lea esi, [r15 - 1]
cmova ebp, edx
mov edx, dword [rsp + 0x38]
add edx, 1
and edx, 0x7fff
mov dword [rsp + 0x38], edx
cmp r8, rax
jb 0x180058c6b
test esi, esi
je 0x180058e52
mov edx, dword [rsp + 0x38]
add edi, 1
movzx ecx, byte [rbx + rdx + 0xc8]
lea rdx, [rax + 1]
mov byte [rax], cl
shr byte [r10], 1
sub r14d, 1
jne 0x1800589ca
mov r10, rdx
mov r14d, 8
lea rdx, [rax + 2]
movzx eax, cl
add ebp, 1
lea esi, [r13 + 2]
add word [rbx + rax*2 + 0x81ca], 1
mov eax, 0x8000
cmp ebp, eax
cmova ebp, eax
mov eax, dword [rsp + 0x38]
sub r15d, 2
add eax, 1
and eax, 0x7fff
mov dword [rsp + 0x38], eax
cmp r8, rdx
jb 0x180058d7a
test r15d, r15d
je 0x180058e5d
mov eax, dword [rsp + 0x38]
add edi, 1
lea r12, [rdx + 1]
movzx eax, byte [rbx + rax + 0xc8]
mov byte [rdx], al
shr byte [r10], 1
sub r14d, 1
jne 0x180058a38
mov r10, r12
mov r14d, 8
lea r12, [rdx + 2]
add word [rbx + rax*2 + 0x81ca], 1
add ebp, 1
mov eax, 0x8000
add r13d, 3
cmp ebp, eax
cmova ebp, eax
mov eax, dword [rsp + 0x38]
add eax, 1
and eax, 0x7fff
mov dword [rsp + 0x38], eax
cmp r8, r12
jb 0x180058dc3
mov r15, qword [rbx + 0xb8]
test r15, r15
je 0x180058cc9
mov r9d, r13d
and r9d, 0x7fff
cmp r15, 0xfff
ja 0x180058d35
mov eax, 0x8000
mov byte [rsp + 0x5f], 1
mov r11d, r15d
mov qword [rbx + 0xb8], 0
sub eax, r15d
mov dword [rsp + 0x30], eax
jmp 0x180058641
mov dword [rsp + 0x3c], edx
mov r8, r9
mov qword [rsp + 0x40], r9
mov r9d, 0x20
nop word [rax + rax]
movzx edx, word [rax + 2]
cmp word [r8 + 2], dx
jne 0x180058be8
movzx edx, word [rax + 4]
cmp word [r8 + 4], dx
jne 0x180058c30
movzx edx, word [rax + 6]
cmp word [r8 + 6], dx
jne 0x180058c48
add r8, 8
add rax, 8
movzx edx, word [rax]
cmp word [r8], dx
jne 0x180058c60
sub r9d, 1
jne 0x180058ad8
mov edx, dword [rsp + 0x3c]
test r11d, r11d
je 0x180058880
mov eax, 0x102
cmp eax, r15d
cmova eax, r15d
sub r11d, 1
cmp r11d, 0x7fff
ja 0x180058e68
lea edx, [rax - 3]
lea rcx, [r12 + 3]
mov byte [r12], dl
movzx edx, word [rsp + 0x38]
sub edx, 1
mov word [r12 + 1], dx
movzx edx, byte [r10]
shr dl, 1
or edx, 0xffffff80
mov byte [r10], dl
cmp r11d, 0x1ff
ja 0x180058cb1
lea rdx, [0x180078aa0]
movzx edx, byte [rdx + r11]
add word [rbx + rdx*2 + 0x840a], 1
lea r8, [0x180078640]
lea edx, [rax - 3]
movzx edx, word [r8 + rdx*2]
add word [rbx + rdx*2 + 0x81ca], 1
sub r14d, 1
jne 0x180058bbe
mov r10, rcx
mov r14d, 8
lea rcx, [r12 + 4]
mov edx, 0x8000
add ebp, eax
add edi, eax
add r13d, eax
cmp ebp, edx
mov r12, rcx
cmova ebp, edx
lea edx, [rax + rsi]
mov esi, edx
and esi, 0x7fff
jmp 0x1800587f9
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
add r8, 2
add rax, 2
movzx eax, byte [rax]
cmp byte [r8], al
sete al
sub r8, r9
movzx eax, al
add eax, r8d
cmp eax, 2
jbe 0x180058880
cmp eax, 3
jne 0x180058b32
cmp r11d, 0x1fff
ja 0x180058880
jmp 0x180058b32
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
add r8, 4
add rax, 4
jmp 0x180058bf9
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
add r8, 6
add rax, 6
jmp 0x180058bf9
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
jmp 0x180058bf9
mov dword [rbx + 0x24], r12d
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x28], esi
mov dword [rbx + 0x2c], ebp
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], r10
mov dword [rbx + 0x50], r14d
mov qword [rsp + 0x28], r8
call sym.tdefl_flush_block
test eax, eax
je 0x180058d1c
not eax
shr eax, 0x1f
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
shr r11d, 8
lea r8, [0x1800784c0]
mov edx, r11d
movzx edx, byte [r8 + rdx]
jmp 0x180058b89
xor r15d, r15d
mov dword [rbx + 0x24], r13d
mov eax, 1
mov dword [rbx + 0x28], r15d
mov dword [rbx + 0x2c], ebp
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x38], r10
mov dword [rbx + 0x50], r14d
jmp 0x180058ca0
mov edx, dword [rcx + 0xa8]
test edx, edx
je 0x180058ccc
test r15d, r15d
je 0x180058ccc
cmp r15d, 0x1000
je 0x180058e21
lea edx, [r13 + r15]
and edx, 0x7fff
mov r9d, edx
jmp 0x18005860d
mov edi, dword [rbx + 0x54]
mov rax, qword [rbx + 0x30]
mov r10, qword [rbx + 0x38]
mov r14d, dword [rbx + 0x50]
mov r8, qword [rsp + 0x28]
jmp 0x180058997
sub r15, 0x1000
mov dword [rsp + 0x30], 0x7000
mov r11d, 0x1000
mov qword [rbx + 0xb8], r15
mov r15d, 0x1000
jmp 0x180058641
mov rdx, rax
mov byte [rsp + 0x5f], 0
mov rax, rcx
mov r15d, 0x1000
mov dword [rsp + 0x30], 0x7000
jmp 0x18005862e
mov qword [rbx + 0x30], rdx
mov rcx, rbx
xor edx, edx
mov dword [rbx + 0x24], esi
mov dword [rbx + 0x28], r15d
mov dword [rbx + 0x2c], ebp
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x38], r10
mov dword [rbx + 0x50], r14d
mov qword [rsp + 0x28], r8
call sym.tdefl_flush_block
test eax, eax
jne 0x180058c9b
mov edi, dword [rbx + 0x54]
mov rdx, qword [rbx + 0x30]
mov r10, qword [rbx + 0x38]
mov r14d, dword [rbx + 0x50]
mov r8, qword [rsp + 0x28]
jmp 0x180058a04
mov dword [rbx + 0x24], r13d
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x28], 0
mov dword [rbx + 0x2c], ebp
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x30], r12
mov qword [rbx + 0x38], r10
mov dword [rbx + 0x50], r14d
call sym.tdefl_flush_block
test eax, eax
jne 0x180058c9b
mov edi, dword [rbx + 0x54]
mov r12, qword [rbx + 0x30]
mov r10, qword [rbx + 0x38]
mov r14d, dword [rbx + 0x50]
jmp 0x180058a6b
mov esi, dword [rdx]
mov eax, eax
mov dword [rcx], esi
mov edx, dword [rdx + rax - 4]
mov dword [rcx + rax - 4], edx
mov rdx, qword [r12 + 0xb0]
jmp 0x180058680
mov byte [rsp + 0x5f], 0
mov r15d, 0x1000
mov dword [rsp + 0x30], 0x7000
jmp 0x18005877f
mov eax, eax
movzx edx, word [rdx + rax - 2]
mov word [rcx + rax - 2], dx
mov rdx, qword [r12 + 0xb0]
jmp 0x180058680
mov r13d, r12d
mov r12, rax
jmp 0x180058a6b
mov r13d, esi
mov r12, rdx
jmp 0x180058a6b
mov r8d, 0x5f2
lea rdx, str.miniz.c
lea rcx, str._cur_match_len___TDEFL_MIN_MATCH_LEN____cur_match_dist___1____cur_match_dist___TDEFL_LZ_DICT_SIZE_
call qword [sym.imp.msvcrt.dll__assert]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop