Function at 0x1800bc090
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 0x1800bc7dd
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 0x1800bc84c
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 0x1800bc26f
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 0x1800bc192
lea r9d, [r13 + rbx]
add rdx, r14
mov ebx, r9d
mov qword [r12 + 0xb0], rdx
and ebx, 0x7fff
sub ebp, r13d
je 0x1800bc250
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 0x1800bc170
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 0x1800bc218
test al, 4
jne 0x1800bc8f6
test eax, eax
je 0x1800bc170
movzx esi, byte [rdx]
mov byte [rcx], sil
test al, 2
jne 0x1800bc929
mov rdx, qword [r12 + 0xb0]
jmp 0x1800bc170
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 0x1800bc206
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 0x1800bc7bc
cmp r15d, 3
jbe 0x1800bc410
lea rax, [rbx + 0xc8]
mov esi, dword [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbx + 0x192a2]
mov qword [rsp + 0x30], rax
jmp 0x1800bc301
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 0x1800bc3c7
cmp r15d, 3
jbe 0x1800bc40c
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 0x1800bc370
mov r8, qword [rsp + 0x28]
and eax, 0x7fff
add rax, r8
mov r8d, dword [rax]
and r8d, 0xffffff
cmp ecx, r8d
je 0x1800bc5b0
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 0x1800bc2b8
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 0x1800bc2f7
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 0x1800bc78b
mov edi, dword [rbx + 0x54]
mov r12, qword [rbx + 0x30]
mov r10, qword [rbx + 0x38]
mov r14d, dword [rbx + 0x50]
cmp r15d, 3
ja 0x1800bc301
mov dword [rsp + 0x38], esi
test r15d, r15d
je 0x1800bc55b
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 0x1800bc448
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 0x1800bc75b
test esi, esi
je 0x1800bc942
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 0x1800bc4ba
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 0x1800bc86a
test r15d, r15d
je 0x1800bc94d
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 0x1800bc528
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 0x1800bc8b3
mov r15, qword [rbx + 0xb8]
test r15, r15
je 0x1800bc7b9
mov r9d, r13d
and r9d, 0x7fff
cmp r15, 0xfff
ja 0x1800bc825
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 0x1800bc131
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 0x1800bc6d8
movzx edx, word [rax + 4]
cmp word [r8 + 4], dx
jne 0x1800bc720
movzx edx, word [rax + 6]
cmp word [r8 + 6], dx
jne 0x1800bc738
add r8, 8
add rax, 8
movzx edx, word [rax]
cmp word [r8], dx
jne 0x1800bc750
sub r9d, 1
jne 0x1800bc5c8
mov edx, dword [rsp + 0x3c]
test r11d, r11d
je 0x1800bc370
mov eax, 0x102
cmp eax, r15d
cmova eax, r15d
sub r11d, 1
cmp r11d, 0x7fff
ja 0x1800bc958
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 0x1800bc7a1
lea rdx, [0x1800feda0]
movzx edx, byte [rdx + r11]
add word [rbx + rdx*2 + 0x840a], 1
lea r8, [0x1800fe940]
lea edx, [rax - 3]
movzx edx, word [r8 + rdx*2]
add word [rbx + rdx*2 + 0x81ca], 1
sub r14d, 1
jne 0x1800bc6ae
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 0x1800bc2e9
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 0x1800bc370
cmp eax, 3
jne 0x1800bc622
cmp r11d, 0x1fff
ja 0x1800bc370
jmp 0x1800bc622
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
add r8, 4
add rax, 4
jmp 0x1800bc6e9
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
add r8, 6
add rax, 6
jmp 0x1800bc6e9
mov r9, qword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
jmp 0x1800bc6e9
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 0x1800bc80c
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, [0x1800fe7c0]
mov edx, r11d
movzx edx, byte [r8 + rdx]
jmp 0x1800bc679
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 0x1800bc790
mov edx, dword [rcx + 0xa8]
test edx, edx
je 0x1800bc7bc
test r15d, r15d
je 0x1800bc7bc
cmp r15d, 0x1000
je 0x1800bc911
lea edx, [r13 + r15]
and edx, 0x7fff
mov r9d, edx
jmp 0x1800bc0fd
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 0x1800bc487
sub r15, 0x1000
mov dword [rsp + 0x30], 0x7000
mov r11d, 0x1000
mov qword [rbx + 0xb8], r15
mov r15d, 0x1000
jmp 0x1800bc131
mov rdx, rax
mov byte [rsp + 0x5f], 0
mov rax, rcx
mov r15d, 0x1000
mov dword [rsp + 0x30], 0x7000
jmp 0x1800bc11e
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 0x1800bc78b
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 0x1800bc4f4
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 0x1800bc78b
mov edi, dword [rbx + 0x54]
mov r12, qword [rbx + 0x30]
mov r10, qword [rbx + 0x38]
mov r14d, dword [rbx + 0x50]
jmp 0x1800bc55b
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 0x1800bc170
mov byte [rsp + 0x5f], 0
mov r15d, 0x1000
mov dword [rsp + 0x30], 0x7000
jmp 0x1800bc26f
mov eax, eax
movzx edx, word [rdx + rax - 2]
mov word [rcx + rax - 2], dx
mov rdx, qword [r12 + 0xb0]
jmp 0x1800bc170
mov r13d, r12d
mov r12, rax
jmp 0x1800bc55b
mov r13d, esi
mov r12, rdx
jmp 0x1800bc55b
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