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

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
sub rsp, 0xb8
mov eax, dword [r9 + 0x2c]
mov rsi, qword [rsp + 0x110]
mov r10, qword [rdx + 0x18]
mov ebp, dword [r9 + 0x30]
mov r12d, dword [rsp + 0x120]
mov dword [rsp + 0x38], eax
mov eax, dword [r9 + 0x24]
mov r13, rsi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x108], ebp
imul r11, rax, 0x70
mov eax, dword [r9 + 0x28]
lea rbx, [rax + rax*2]
shl rbx, 6
add rbx, qword [r11 + r10 + 0x20]
test byte [r8], 2
mov qword [rsp + 0x58], rbx
je 0x1400fc118
cmp r12d, 6
jae 0x1400fc0f1
cmp dword [rsp + 0x130], 1
jne 0x1400fc0df
mov rcx, qword [rsp + 0x138]
lea r8, str.opj_t2_encode_packet__:_only__u_bytes_remaining_in_output_buffer.__u_needed._n
mov r9d, r12d
mov edx, 1
mov dword [rsp + 0x20], 6
call fcn.1400ead70
xor eax, eax
add rsp, 0xb8
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [rsi], 0x40091ff
movzx eax, byte [rdx + 0x351]
lea r13, [rsi + 6]
mov byte [rsi + 4], al
movzx eax, byte [rdx + 0x350]
mov qword [rsp + 0x30], r13
mov byte [rsi + 5], al
add r12d, 0xfffffffa
mov qword [rsp + 0xb0], r14
mov dword [rsp + 0xf8], r12d
mov qword [rsp + 0xa8], r15
test ebp, ebp
jne 0x1400fc1d9
xor r15d, r15d
lea rbp, [rbx + 0x20]
cmp dword [rbx + 0x18], r15d
jbe 0x1400fc1d2
mov r13d, dword [rsp + 0x38]
nop
mov rcx, rbp
call fcn.1400f1bf0
test eax, eax
jne 0x1400fc1c0
imul rsi, r13, 0x38
add rsi, qword [rbp + 0x18]
mov rcx, qword [rsi + 0x28]
call fcn.1400fe030
mov rcx, qword [rsi + 0x30]
call fcn.1400fe030
mov r14d, dword [rsi + 0x14]
xor edi, edi
imul r14d, dword [rsi + 0x10]
test r14d, r14d
je 0x1400fc1c0
xor ebx, ebx
nop dword [rax + rax]
mov rax, qword [rsi + 0x18]
mov edx, edi
mov dword [rbx + rax + 0x34], 0
mov r8d, dword [rbp + 0x24]
mov rcx, qword [rsi + 0x30]
sub r8d, dword [rbx + rax + 0x28]
call fcn.1400fe070
inc edi
lea rbx, [rbx + 0x40]
cmp edi, r14d
jb 0x1400fc190
mov rbx, qword [rsp + 0x58]
inc r15d
add rbp, 0x30
cmp r15d, dword [rbx + 0x18]
jb 0x1400fc150
mov r13, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x108]
call fcn.140110420
mov r15, rax
mov qword [rsp + 0x88], rax
test rax, rax
je 0x1400fc773
mov r8d, r12d
mov rdx, r13
mov rcx, rax
call fcn.140110570
mov edx, 1
mov rcx, r15
mov r8d, edx
call fcn.140110670
lea r14, [rbx + 0x20]
xor eax, eax
mov qword [rsp + 0x68], r14
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x78], r14
cmp eax, dword [rbx + 0x18]
jae 0x1400fc549
mov rcx, r14
call fcn.1400f1bf0
test eax, eax
jne 0x1400fc533
mov eax, dword [rsp + 0x38]
xor edi, edi
imul r10, rax, 0x38
add r10, qword [r14 + 0x18]
mov qword [rsp + 0x60], r10
mov esi, dword [r10 + 0x14]
mov rbx, qword [r10 + 0x18]
imul esi, dword [r10 + 0x10]
mov dword [rsp + 0x70], esi
test esi, esi
je 0x1400fc2aa
add rbx, 8
mov r15, r10
nop dword [rax]
cmp dword [rbx + 0x2c], 0
jne 0x1400fc293
mov eax, ebp
lea rcx, [rax + rax*2]
mov rax, qword [rbx]
cmp dword [rax + rcx*8], 0
je 0x1400fc293
mov rcx, qword [r15 + 0x28]
mov r8d, ebp
mov edx, edi
call fcn.1400fe070
inc edi
add rbx, 0x40
cmp edi, esi
jb 0x1400fc270
mov r15, qword [rsp + 0x88]
mov r10, qword [rsp + 0x60]
mov rcx, qword [r10 + 0x18]
xor edx, edx
mov dword [rsp + 0x3c], edx
test esi, esi
je 0x1400fc52e
mov eax, ebp
lea r13, [rcx + 0x2c]
lea r12, [rcx + 0x34]
lea r14, [rax + rax*2]
lea rax, [rcx + 0x10]
mov qword [rsp + 0x40], rax
lea rax, [rcx + 8]
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x50], rax
mov rsi, qword [rax]
xor ebx, ebx
xor ebp, ebp
xor edi, edi
mov rcx, r15
mov qword [rsp + 0x90], rsi
cmp dword [r12], ebx
jne 0x1400fc317
mov r9d, dword [rsp + 0x108]
mov r8d, edx
mov rdx, qword [r10 + 0x28]
inc r9d
call fcn.1400fdd10
jmp 0x1400fc32b
xor edx, edx
mov r8d, 1
cmp dword [rsi + r14*8], edx
setne dl
call fcn.140110670
cmp dword [rsi + r14*8], ebx
je 0x1400fc4f4
cmp dword [r12], ebx
jne 0x1400fc35f
mov rdx, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x3c]
mov dword [r13], 3
mov rdx, qword [rdx + 0x30]
mov r9d, 0x3e7
mov rcx, r15
call fcn.1400fdd10
mov edx, dword [rsi + r14*8]
cmp edx, 1
jne 0x1400fc370
xor edx, edx
lea r8d, [rdx + 1]
jmp 0x1400fc3ba
cmp edx, 2
jne 0x1400fc37a
mov r8d, edx
jmp 0x1400fc3ba
cmp edx, 5
ja 0x1400fc38d
add edx, 0xfffffffd
mov r8d, 4
or edx, 0xc
jmp 0x1400fc3ba
cmp edx, 0x24
ja 0x1400fc3a3
add edx, 0xfffffffa
mov r8d, 9
or edx, 0x1e0
jmp 0x1400fc3ba
cmp edx, 0xa4
ja 0x1400fc3c2
add edx, 0xffffffdb
mov r8d, 0x10
or edx, 0xff80
mov rcx, r15
call fcn.140110670
mov edx, dword [r12]
mov r14d, dword [rsi + r14*8]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx]
add r14d, edx
lea rax, [rdx + rdx*2]
cmp edx, r14d
jae 0x1400fc447
lea r8, [rcx + 0x14]
lea r8, [r8 + rax*8]
nop word [rax + rax]
add edi, dword [r8 - 4]
inc ebx
test byte [r8], 1
jne 0x1400fc404
lea eax, [r14 - 1]
cmp edx, eax
jne 0x1400fc43c
xor eax, eax
cmp edi, 1
jle 0x1400fc419
nop dword [rax + rax]
sar edi, 1
inc eax
cmp edi, 1
jg 0x1400fc410
xor ecx, ecx
cmp ebx, 1
jle 0x1400fc429
sar ebx, 1
inc ecx
cmp ebx, 1
jg 0x1400fc420
sub eax, dword [r13]
sub eax, ecx
inc eax
cmp ebp, eax
cmovg eax, ebp
xor edi, edi
xor ebx, ebx
mov ebp, eax
inc edx
add r8, 0x18
cmp edx, r14d
jb 0x1400fc3f0
lea esi, [rbp - 1]
test esi, esi
js 0x1400fc464
nop
mov edx, 1
mov rcx, r15
mov r8d, edx
call fcn.140110670
dec esi
jns 0x1400fc450
xor edx, edx
mov rcx, r15
lea r8d, [rdx + 1]
call fcn.140110670
mov esi, dword [r12]
mov rcx, qword [rsp + 0x40]
add dword [r13], ebp
mov rcx, qword [rcx]
lea rax, [rsi + rsi*2]
cmp esi, r14d
jae 0x1400fc4ec
lea rbp, [rcx + 0x14]
lea rbp, [rbp + rax*8]
add edi, dword [rbp - 4]
inc ebx
test byte [rbp], 1
jne 0x1400fc4bc
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
mov ecx, dword [rax + rcx*8]
dec ecx
add ecx, dword [r12]
cmp esi, ecx
jne 0x1400fc4e1
xor ecx, ecx
cmp ebx, 1
jle 0x1400fc4cc
sar ebx, 1
inc ecx
cmp ebx, 1
jg 0x1400fc4c3
mov r8d, dword [r13]
mov edx, edi
add r8d, ecx
mov rcx, r15
call fcn.140110670
xor edi, edi
xor ebx, ebx
inc esi
add rbp, 0x18
cmp esi, r14d
jb 0x1400fc494
mov r14, qword [rsp + 0x80]
mov edx, dword [rsp + 0x3c]
mov rax, qword [rsp + 0x50]
add qword [rsp + 0x40], 0x40
mov r10, qword [rsp + 0x60]
inc edx
add rax, 0x40
add r12, 0x40
add r13, 0x40
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x3c], edx
cmp edx, dword [rsp + 0x70]
jb 0x1400fc2e4
mov r14, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x58]
mov eax, dword [rsp + 0x48]
mov ebp, dword [rsp + 0x108]
inc eax
add r14, 0x30
jmp 0x1400fc21b
mov rcx, r15
call fcn.140110440
mov rcx, r15
test eax, eax
jne 0x1400fc564
call fcn.140110430
xor eax, eax
jmp 0x1400fc792
call fcn.140110590
mov rbx, qword [rsp + 0x30]
mov r12d, dword [rsp + 0xf8]
mov ecx, eax
sub r12d, eax
add rbx, rcx
mov rcx, r15
mov dword [rsp + 0xf8], r12d
mov qword [rsp + 0x30], rbx
call fcn.140110430
mov rax, qword [rsp + 0x100]
test byte [rax], 4
je 0x1400fc5de
cmp r12d, 2
jae 0x1400fc5c4
cmp dword [rsp + 0x130], 1
jne 0x1400fc773
mov dword [rsp + 0x20], 2
mov r9d, r12d
jmp 0x1400fc75a
mov word [rbx], 0x92ff
add rbx, 2
add r12d, 0xfffffffe
mov dword [rsp + 0xf8], r12d
mov qword [rsp + 0x30], rbx
mov rbp, qword [rsp + 0x128]
test rbp, rbp
je 0x1400fc624
cmp dword [rbp + 0xc], 0
je 0x1400fc624
movsxd rcx, dword [rbp + 8]
mov eax, ebx
sub eax, dword [rsp + 0x110]
movsxd r8, eax
mov eax, dword [rsp + 0xf0]
imul rdx, rax, 0x260
mov rax, qword [rbp + 0x68]
shl rcx, 5
mov rax, qword [rdx + rax + 0x228]
mov qword [rax + rcx + 8], r8
mov rdi, qword [rsp + 0x68]
xor r13d, r13d
nop dword [rax]
mov rax, qword [rsp + 0x58]
cmp r13d, dword [rax + 0x18]
jae 0x1400fc777
mov rcx, rdi
call fcn.1400f1bf0
test eax, eax
jne 0x1400fc73b
mov eax, dword [rsp + 0x38]
xor r15d, r15d
imul rcx, rax, 0x38
add rcx, qword [rdi + 0x18]
mov r12d, dword [rcx + 0x14]
mov r14, qword [rcx + 0x18]
imul r12d, dword [rcx + 0x10]
test r12d, r12d
je 0x1400fc73b
mov eax, dword [rsp + 0x108]
lea rdi, [r14 + 0x34]
add r14, 8
lea rsi, [rax + rax*2]
nop word [rax + rax]
mov rbx, qword [r14]
cmp dword [rbx + rsi*8], 0
je 0x1400fc722
mov eax, dword [rbx + rsi*8 + 4]
mov r9d, dword [rsp + 0xf8]
cmp eax, r9d
ja 0x1400fc74c
mov rdx, qword [rbx + rsi*8 + 0x10]
mov rcx, qword [rsp + 0x30]
mov r8d, eax
call sub.msvcrt.dll_memcpy
mov eax, dword [rbx + rsi*8]
add dword [rdi], eax
mov eax, dword [rbx + rsi*8 + 4]
add qword [rsp + 0x30], rax
sub dword [rsp + 0xf8], eax
test rbp, rbp
je 0x1400fc722
cmp dword [rbp + 0xc], 0
je 0x1400fc722
mov eax, dword [rsp + 0xf0]
movsxd rdx, dword [rbp + 8]
movsd xmm0, qword [rbx + rsi*8 + 8]
shl rdx, 5
imul rcx, rax, 0x260
mov rax, qword [rbp + 0x68]
add rdx, qword [rcx + rax + 0x228]
addsd xmm0, qword [rdx + 0x18]
movsd qword [rdx + 0x18], xmm0
comisd xmm0, xmmword [rbp]
jbe 0x1400fc722
movsd qword [rbp], xmm0
inc r15d
add r14, 0x40
add rdi, 0x40
cmp r15d, r12d
jb 0x1400fc690
mov rdi, qword [rsp + 0x68]
inc r13d
add rdi, 0x30
mov qword [rsp + 0x68], rdi
jmp 0x1400fc630
cmp dword [rsp + 0x130], 1
jne 0x1400fc773
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x138]
lea r8, str.opj_t2_encode_packet__:_only__u_bytes_remaining_in_output_buffer.__u_needed._n
mov edx, 1
call fcn.1400ead70
xor eax, eax
jmp 0x1400fc792
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x30]
sub ecx, dword [rsp + 0x110]
add dword [rax], ecx
mov eax, 1
mov r14, qword [rsp + 0xb0]
mov r15, qword [rsp + 0xa8]
add rsp, 0xb8
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret