Function at 0x69622e20
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
xor eax, eax
mov qword [rsp + 0x60], 0
lea rdi, [rcx + 8]
mov r9, rcx
mov qword [rsp + 0x68], 0
and rdi, 0xfffffffffffffff8
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov dword [rsp + 0xa0], 0
mov qword [rcx], 0
mov qword [rcx + 0x3f8], 0
sub rcx, rdi
add ecx, 0x400
shr ecx, 3
rep stosq qword [rdi], rax
test r8d, r8d
jle 0x69622ee9
lea ecx, [r8 - 1]
mov rax, rdx
lea r10, [rdx + rcx + 1]
nop dword [rax]
movzx ecx, byte [rax]
add rax, 1
add dword [rsp + rcx*4 + 0x60], 1
cmp r10, rax
jne 0x69622ed8
mov r10d, dword [rsp + 0x64]
mov dword [rsp + 0x60], 0
cmp r10d, 2
jg 0x69623460
mov ecx, dword [rsp + 0x68]
cmp ecx, 4
jg 0x69623460
mov r11d, dword [rsp + 0x6c]
cmp r11d, 8
jg 0x69623460
mov ebx, dword [rsp + 0x70]
cmp ebx, 0x10
jg 0x69623460
mov esi, dword [rsp + 0x74]
cmp esi, 0x20
jg 0x69623460
mov edi, dword [rsp + 0x78]
cmp edi, 0x40
jg 0x69623460
mov ebp, dword [rsp + 0x7c]
cmp ebp, 0x80
jg 0x69623460
mov r12d, dword [rsp + 0x80]
cmp r12d, 0x100
jg 0x69623460
mov r13d, dword [rsp + 0x84]
cmp r13d, 0x200
jg 0x69623460
mov r14d, dword [rsp + 0x88]
cmp r14d, 0x400
jg 0x69623460
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0xc], eax
cmp eax, 0x800
jg 0x69623460
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x10], eax
cmp eax, 0x1000
jg 0x69623460
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x14], eax
cmp eax, 0x2000
jg 0x69623460
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0x18], eax
cmp eax, 0x4000
jg 0x69623460
mov eax, dword [rsp + 0x9c]
mov dword [rsp + 0x1c], eax
cmp eax, 0x8000
jg 0x69623460
xor eax, eax
xor r15d, r15d
mov dword [rsp + 0x24], 0
mov word [r9 + 0x402], ax
mov eax, r10d
shl eax, 0xf
mov word [r9 + 0x466], r15w
mov dword [r9 + 0x424], eax
lea eax, [r10 + r10]
mov dword [rsp + 0x28], eax
mov word [r9 + 0x404], ax
add eax, ecx
mov word [r9 + 0x468], r10w
test ecx, ecx
je 0x69623051
cmp eax, 4
jg 0x696234a0
mov r15d, eax
add ecx, r10d
add eax, eax
shl r15d, 0xe
mov dword [rsp + 0x2c], eax
mov word [r9 + 0x406], ax
add eax, r11d
mov dword [r9 + 0x428], r15d
mov word [r9 + 0x46a], cx
test r11d, r11d
je 0x69623089
cmp eax, 8
jg 0x696234a0
mov r10d, eax
add ecx, r11d
add eax, eax
shl r10d, 0xd
mov dword [rsp + 0x30], eax
mov word [r9 + 0x408], ax
add eax, ebx
mov dword [r9 + 0x42c], r10d
mov word [r9 + 0x46c], cx
test ebx, ebx
je 0x696230bf
cmp eax, 0x10
jg 0x696234a0
mov r10d, eax
add ecx, ebx
add eax, eax
shl r10d, 0xc
mov dword [rsp + 0x34], eax
mov word [r9 + 0x40a], ax
add eax, esi
mov dword [r9 + 0x430], r10d
mov word [r9 + 0x46e], cx
test esi, esi
je 0x696230f4
cmp eax, 0x20
jg 0x696234a0
mov r10d, eax
add ecx, esi
add eax, eax
shl r10d, 0xb
mov dword [rsp + 0x38], eax
mov word [r9 + 0x40c], ax
add eax, edi
mov dword [r9 + 0x434], r10d
mov word [r9 + 0x470], cx
test edi, edi
je 0x69623129
cmp eax, 0x40
jg 0x696234a0
mov r10d, eax
add ecx, edi
add eax, eax
shl r10d, 0xa
mov dword [rsp + 0x3c], eax
mov word [r9 + 0x40e], ax
add eax, ebp
mov dword [r9 + 0x438], r10d
mov word [r9 + 0x472], cx
test ebp, ebp
je 0x69623160
cmp eax, 0x80
jg 0x696234a0
mov r10d, eax
add ecx, ebp
add eax, eax
shl r10d, 9
mov dword [rsp + 0x40], eax
mov word [r9 + 0x410], ax
add eax, r12d
mov dword [r9 + 0x43c], r10d
mov word [r9 + 0x474], cx
test r12d, r12d
je 0x69623199
cmp eax, 0x100
jg 0x696234a0
mov r10d, eax
add ecx, r12d
add eax, eax
shl r10d, 8
mov dword [rsp + 0x44], eax
mov word [r9 + 0x412], ax
add eax, r13d
mov dword [r9 + 0x440], r10d
mov word [r9 + 0x476], cx
test r13d, r13d
je 0x696231d3
cmp eax, 0x200
jg 0x696234a0
mov r10d, eax
add ecx, r13d
add eax, eax
shl r10d, 7
mov dword [rsp + 0x48], eax
mov word [r9 + 0x414], ax
add eax, r14d
mov dword [r9 + 0x444], r10d
mov word [r9 + 0x478], cx
test r14d, r14d
je 0x6962320d
cmp eax, 0x400
jg 0x696234a0
mov r10d, eax
mov esi, dword [rsp + 0xc]
add eax, eax
add ecx, r14d
shl r10d, 6
mov dword [rsp + 0x4c], eax
mov word [r9 + 0x416], ax
add eax, esi
mov dword [r9 + 0x448], r10d
mov word [r9 + 0x47a], cx
test esi, esi
je 0x69623249
cmp eax, 0x800
jg 0x696234a0
mov r10d, eax
mov esi, dword [rsp + 0x10]
add eax, eax
add ecx, dword [rsp + 0xc]
shl r10d, 5
mov dword [rsp + 0x50], eax
mov word [r9 + 0x418], ax
add eax, esi
mov dword [r9 + 0x44c], r10d
mov word [r9 + 0x47c], cx
test esi, esi
je 0x69623286
cmp eax, 0x1000
jg 0x696234a0
mov r10d, eax
mov edi, dword [rsp + 0x14]
add eax, eax
add ecx, dword [rsp + 0x10]
shl r10d, 4
mov dword [rsp + 0x54], eax
mov word [r9 + 0x41a], ax
add eax, edi
mov dword [r9 + 0x450], r10d
mov word [r9 + 0x47e], cx
test edi, edi
je 0x696232c3
cmp eax, 0x2000
jg 0x696234a0
mov esi, dword [rsp + 0x18]
lea r10d, [rax*8]
add ecx, dword [rsp + 0x14]
add eax, eax
mov dword [rsp + 0x58], eax
mov word [r9 + 0x41c], ax
add eax, esi
mov dword [r9 + 0x454], r10d
mov word [r9 + 0x480], cx
test esi, esi
je 0x69623301
cmp eax, 0x4000
jg 0x696234a0
mov edi, dword [rsp + 0x1c]
lea r10d, [rax*4]
add ecx, dword [rsp + 0x18]
add eax, eax
mov dword [rsp + 0x5c], eax
mov word [r9 + 0x41e], ax
add eax, edi
mov dword [r9 + 0x458], r10d
mov word [r9 + 0x482], cx
test edi, edi
jne 0x69623490
mov dword [r9 + 0x460], 0x10000
add eax, eax
mov dword [r9 + 0x45c], eax
test r8d, r8d
jle 0x69623488
lea esi, [r8 - 1]
mov ebp, 1
xor r8d, r8d
mov edi, 0x10
jmp 0x69623389
add r10d, 1
mov dword [rsp + r11*4 + 0x20], r10d
lea rax, [r8 + 1]
cmp r8, rsi
je 0x69623488
mov r8, rax
movzx r13d, byte [rdx + r8]
mov ecx, r13d
test r13d, r13d
je 0x69623379
movzx eax, r13b
movsxd r11, r13d
lea rbx, [r9 + rax*2]
mov r10d, dword [rsp + r11*4 + 0x20]
movzx eax, word [rbx + 0x400]
movzx ebx, word [rbx + 0x464]
mov r15d, r10d
sub r15d, eax
mov eax, r15d
add eax, ebx
cdqe
mov byte [r9 + rax + 0x484], r13b
mov word [r9 + rax*2 + 0x5a4], r8w
cmp r13d, 9
jg 0x69623370
mov eax, r10d
lea ebx, [r10 + r10]
mov r12d, r13d
sar eax, 1
and ebx, 0xaaaa
shl r12d, 9
and eax, 0x5555
or r12d, r8d
or eax, ebx
mov ebx, eax
shl eax, 2
sar ebx, 2
and eax, 0xcccc
and ebx, 0x3333
or ebx, eax
mov eax, ebx
shl ebx, 4
sar eax, 4
and ebx, 0xf0f0
and eax, 0xf0f
or ebx, eax
mov eax, ebx
shl ebx, 8
movzx r14d, bx
mov ebx, ebp
sar eax, 8
shl ebx, cl
mov ecx, edi
or eax, r14d
sub ecx, r13d
movsxd rbx, ebx
sar eax, cl
cdqe
nop dword [rax]
mov word [r9 + rax*2], r12w
add rax, rbx
cmp eax, 0x1ff
jle 0x69623448
jmp 0x69623370
lea rax, str.bad_sizes
mov qword [0x696336a0], rax
xor eax, eax
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 1
jmp 0x69623470
cmp eax, 0x8000
jle 0x69623338
nop dword [rax + rax]
lea rax, str.bad_codelengths
mov qword [0x696336a0], rax
xor eax, eax
jmp 0x69623470