Function at 0x2d93917a0
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, 0xb8
pxor xmm0, xmm0
xor eax, eax
lea rdi, [r8 + 8]
mov rbp, rcx
mov rcx, r8
mov rsi, rdx
and rdi, 0xfffffffffffffff8
xor edx, edx
mov qword [r8], 0
mov rbx, r8
mov qword [r8 + 0x6bc], 0
sub rcx, rdi
add ecx, 0x6c4
shr ecx, 3
rep stosq qword [rdi], rax
mov word [rsp + 0x60], dx
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm0
test rsi, rsi
jle 0x2d9391822
mov rax, rbp
lea rcx, [rsi + rbp]
nop dword [rax + rax]
movzx edx, byte [rax]
add rax, 1
add word [rsp + rdx*2 + 0x40], 1
cmp rcx, rax
jne 0x2d9391810
xor eax, eax
mov word [rsp + 0x40], ax
movzx eax, word [rsp + 0x42]
cmp ax, 2
ja 0x2d9391d30
movzx ecx, word [rsp + 0x44]
cmp cx, 4
ja 0x2d9391d30
movzx r8d, word [rsp + 0x46]
cmp r8w, 8
ja 0x2d9391d30
movzx r9d, word [rsp + 0x48]
cmp r9w, 0x10
ja 0x2d9391d30
movzx r10d, word [rsp + 0x4a]
cmp r10w, 0x20
ja 0x2d9391d30
movzx r11d, word [rsp + 0x4c]
cmp r11w, 0x40
ja 0x2d9391d30
movzx edi, word [rsp + 0x4e]
cmp di, 0x80
ja 0x2d9391d30
movzx r12d, word [rsp + 0x50]
cmp r12w, 0x100
ja 0x2d9391d30
movzx r13d, word [rsp + 0x52]
cmp r13w, 0x200
ja 0x2d9391d30
movzx r14d, word [rsp + 0x54]
cmp r14w, 0x400
ja 0x2d9391d30
movzx edx, word [rsp + 0x56]
mov word [rsp + 0x34], dx
cmp dx, 0x800
ja 0x2d9391d30
movzx edx, word [rsp + 0x58]
mov word [rsp + 0x38], dx
cmp dx, 0x1000
ja 0x2d9391d30
movzx edx, word [rsp + 0x5a]
mov word [rsp + 0x3a], dx
cmp dx, 0x2000
ja 0x2d9391d30
movzx edx, word [rsp + 0x5c]
mov word [rsp + 0x3c], dx
cmp dx, 0x4000
ja 0x2d9391d30
movzx edx, word [rsp + 0x5e]
mov word [rsp + 0x3e], dx
cmp dx, 0x8000
ja 0x2d9391d30
movzx edx, ax
pxor xmm0, xmm0
mov word [rbx + 0x24], ax
mov r15d, edx
movups xmmword [rsp + 0x70], xmm0
shl r15d, 0xf
movups xmmword [rsp + 0x80], xmm0
mov dword [rbx + 0x44], r15d
lea r15d, [rdx + rdx]
lea edx, [rax + rax]
mov word [rbx + 4], dx
movzx edx, cx
mov dword [rsp + 0x78], r15d
add edx, r15d
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm0
test cx, cx
je 0x2d9391996
lea r15d, [rdx - 1]
cmp r15d, 3
ja 0x2d9391da8
mov r15d, edx
add eax, ecx
add edx, edx
movzx ecx, r8w
shl r15d, 0xe
mov dword [rsp + 0x7c], edx
mov word [rbx + 6], dx
add edx, ecx
mov dword [rbx + 0x48], r15d
mov word [rbx + 0x26], ax
test r8w, r8w
je 0x2d93919c9
lea ecx, [rdx - 1]
cmp ecx, 7
ja 0x2d9391da8
mov ecx, edx
add eax, r8d
add edx, edx
shl ecx, 0xd
mov dword [rsp + 0x80], edx
mov dword [rbx + 0x4c], ecx
movzx ecx, r9w
mov word [rbx + 8], dx
add edx, ecx
mov word [rbx + 0x28], ax
test r9w, r9w
je 0x2d93919fd
lea ecx, [rdx - 1]
cmp ecx, 0xf
ja 0x2d9391da8
mov ecx, edx
add eax, r9d
add edx, edx
shl ecx, 0xc
mov dword [rsp + 0x84], edx
mov dword [rbx + 0x50], ecx
movzx ecx, r10w
mov word [rbx + 0xa], dx
add edx, ecx
mov word [rbx + 0x2a], ax
test r10w, r10w
je 0x2d9391a31
lea ecx, [rdx - 1]
cmp ecx, 0x1f
ja 0x2d9391da8
mov ecx, edx
add eax, r10d
add edx, edx
shl ecx, 0xb
mov dword [rsp + 0x88], edx
mov dword [rbx + 0x54], ecx
movzx ecx, r11w
mov word [rbx + 0xc], dx
add edx, ecx
mov word [rbx + 0x2c], ax
test r11w, r11w
je 0x2d9391a65
lea ecx, [rdx - 1]
cmp ecx, 0x3f
ja 0x2d9391da8
mov ecx, edx
add eax, r11d
add edx, edx
shl ecx, 0xa
mov dword [rsp + 0x8c], edx
mov dword [rbx + 0x58], ecx
movzx ecx, di
mov word [rbx + 0xe], dx
add edx, ecx
mov word [rbx + 0x2e], ax
test di, di
je 0x2d9391a97
lea ecx, [rdx - 1]
cmp ecx, 0x7f
ja 0x2d9391da8
mov ecx, edx
add eax, edi
add edx, edx
shl ecx, 9
mov dword [rsp + 0x90], edx
mov dword [rbx + 0x5c], ecx
movzx ecx, r12w
mov word [rbx + 0x10], dx
add edx, ecx
mov word [rbx + 0x30], ax
test r12w, r12w
je 0x2d9391acd
lea ecx, [rdx - 1]
cmp ecx, 0xff
ja 0x2d9391da8
mov ecx, edx
add eax, r12d
add edx, edx
shl ecx, 8
mov dword [rsp + 0x94], edx
mov dword [rbx + 0x60], ecx
movzx ecx, r13w
mov word [rbx + 0x12], dx
add edx, ecx
mov word [rbx + 0x32], ax
test r13w, r13w
je 0x2d9391b04
lea ecx, [rdx - 1]
cmp ecx, 0x1ff
ja 0x2d9391da8
mov ecx, edx
add eax, r13d
add edx, edx
shl ecx, 7
mov dword [rsp + 0x98], edx
mov dword [rbx + 0x64], ecx
movzx ecx, r14w
mov word [rbx + 0x14], dx
add edx, ecx
mov word [rbx + 0x34], ax
test r14w, r14w
je 0x2d9391b3b
lea ecx, [rdx - 1]
cmp ecx, 0x3ff
ja 0x2d9391da8
mov ecx, edx
add eax, r14d
add edx, edx
shl ecx, 6
mov dword [rsp + 0x9c], edx
mov dword [rbx + 0x68], ecx
movzx ecx, word [rsp + 0x34]
mov word [rbx + 0x16], dx
mov word [rbx + 0x36], ax
add edx, ecx
test cx, cx
je 0x2d9391b72
lea ecx, [rdx - 1]
cmp ecx, 0x7ff
ja 0x2d9391da8
mov ecx, edx
add ax, word [rsp + 0x34]
add edx, edx
shl ecx, 5
mov dword [rsp + 0xa0], edx
mov dword [rbx + 0x6c], ecx
movzx ecx, word [rsp + 0x38]
mov word [rbx + 0x18], dx
mov word [rbx + 0x38], ax
add edx, ecx
test cx, cx
je 0x2d9391bab
lea ecx, [rdx - 1]
cmp ecx, 0xfff
ja 0x2d9391da8
mov ecx, edx
add ax, word [rsp + 0x38]
add edx, edx
shl ecx, 4
mov dword [rsp + 0xa4], edx
mov dword [rbx + 0x70], ecx
movzx ecx, word [rsp + 0x3a]
mov word [rbx + 0x1a], dx
mov word [rbx + 0x3a], ax
add edx, ecx
test cx, cx
je 0x2d9391be4
lea ecx, [rdx - 1]
cmp ecx, 0x1fff
ja 0x2d9391da8
lea ecx, [rdx*8]
add ax, word [rsp + 0x3a]
add edx, edx
mov dword [rbx + 0x74], ecx
movzx ecx, word [rsp + 0x3c]
mov dword [rsp + 0xa8], edx
mov word [rbx + 0x1c], dx
add edx, ecx
mov word [rbx + 0x3c], ax
test cx, cx
je 0x2d9391c1f
lea ecx, [rdx - 1]
cmp ecx, 0x3fff
ja 0x2d9391da8
add ax, word [rsp + 0x3c]
lea ecx, [rdx*4]
add edx, edx
mov word [rbx + 0x3e], ax
movzx eax, word [rsp + 0x3e]
mov dword [rbx + 0x78], ecx
mov edi, eax
mov dword [rsp + 0xac], edx
add eax, edx
mov word [rbx + 0x1e], dx
test di, di
je 0x2d9391c5c
lea edx, [rax - 1]
cmp edx, 0x7fff
ja 0x2d9391da8
mov dword [rbx + 0x80], 0x10000
add eax, eax
mov dword [rbx + 0x7c], eax
test rsi, rsi
jle 0x2d9391d8f
xor edi, edi
jmp 0x2d9391c96
add r13d, 1
mov dword [rsp + r14*4 + 0x70], r13d
add rdi, 1
cmp rsi, rdi
je 0x2d9391d8f
movzx r12d, byte [rbp + rdi]
test r12b, r12b
je 0x2d9391c89
movzx r14d, r12b
movzx eax, word [rbx + r14*2 + 0x20]
mov r13d, dword [rsp + r14*4 + 0x70]
movzx edx, word [rbx + r14*2]
add eax, r13d
sub eax, edx
mov word [rbx + rax*2 + 0x84], di
cmp r12b, 9
ja 0x2d9391c80
mov edx, r12d
movzx ecx, r13w
movzx r15d, r12b
shl edx, 9
or edx, edi
mov dword [rsp + 0x34], edx
call fcn.2d9353b80
mov rcx, qword [0x2d9401050]
cmp byte [rcx], 0
jne 0x2d9391d8f
mov ecx, 0x10
movzx eax, ax
mov edx, 1
sub ecx, r15d
sar eax, cl
mov ecx, r12d
shl edx, cl
mov r8d, edx
mov edx, dword [rsp + 0x34]
nop
movzx ecx, ax
add eax, r8d
mov word [rbx + rcx*2 + 0x2c4], dx
cmp ax, 0x1ff
jbe 0x2d9391d10
jmp 0x2d9391c80
mov edx, 8
mov ecx, 0x40
call fcn.2d9347850
lea rdx, [0x2d93e5b40]
lea r9, str.inflate.nim
mov rcx, rax
mov rax, qword [0x2d9400dc0]
lea r8, str.initHuffman
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x2d93e5c20]
mov qword [rcx + 0x18], 0x24
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x22
call fcn.2d9349640
nop
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 8
mov ecx, 0x40
call fcn.2d9347850
lea rdx, [0x2d93e5b40]
lea r9, str.inflate.nim
mov rcx, rax
mov rax, qword [0x2d9400dc0]
lea r8, str.initHuffman
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x2d93e5c20]
mov qword [rcx + 0x18], 0x24
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x2e
call fcn.2d9349640
jmp 0x2d9391d8f