Function at 0x1400ea1b0
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
lea rbp, [rsp - 0x4a20]
mov eax, 0x4b20
call fcn.1401c2680
sub rsp, rax
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rbp + 0x4a00], rax
mov rdi, rcx
mov rbx, rdx
mov r12d, 1
lea rcx, str.openjp2
mov edx, r12d
call fcn.14005a660
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x1400ea20d
lea eax, [rsi + 2]
jmp 0x1400ea8b0
mov qword [rsp + 0x4b60], r13
lea rdx, str.opj_stream_create
mov rcx, rax
mov qword [rsp + 0x4b18], r14
mov qword [rsp + 0x4b10], r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_stream_set_user_data
mov rcx, rsi
mov r15, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_stream_set_write_function
mov rcx, rsi
mov r13, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_stream_set_seek_function
mov rcx, rsi
mov qword [rsp + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_stream_set_skip_function
mov rcx, rsi
mov qword [rbp - 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_set_info_handler
mov rcx, rsi
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_set_warning_handler
mov rcx, rsi
mov qword [rbp - 0x78], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_set_error_handler
mov rcx, rsi
mov qword [rsp + 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_image_destroy
mov rcx, rsi
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_stream_destroy
mov rcx, rsi
mov qword [rbp - 0x80], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_destroy_codec
mov rcx, rsi
mov qword [rsp + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_set_default_encoder_parameters
mov rcx, rsi
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_create_compress
mov rcx, rsi
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_encode
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_end_compress
mov rcx, rsi
mov qword [rsp + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_setup_encoder
mov rcx, rsi
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.opj_image_create
mov rcx, rsi
mov qword [rbp - 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x28]
lea rdx, str.opj_start_compress
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x50], rax
test r14, r14
jne 0x1400ea3ae
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [r14 + 2]
jmp 0x1400ea898
lea rcx, [rbp - 0x60]
call fcn.140061e90
movzx eax, word [0x14021b260]
xor ecx, ecx
movsd xmm0, qword [str.JPEG_2000]
movsd qword [rbp - 0x30], xmm0
mov word [rbp - 0x28], ax
movzx eax, word [rbx + 0x4c]
mov dword [rbp - 0x60], ecx
mov word [rbp - 0x4e], ax
mov eax, dword [rbx + 0x50]
mov word [rbp - 0x40], cx
lea rcx, [rbp + 0x50]
mov dword [rbp - 0x5c], 0x10000
mov word [rbp - 0x50], r12w
mov dword [rbp - 0x44], eax
call r14
mov ecx, 2
call qword [rsp + 0x20]
xor edx, edx
mov ecx, 0x400
mov r14, rax
mov qword [rsp + 0x78], rax
call r15
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
mov r15, rax
mov qword [rsp + 0x20], rax
call r13
lea rdx, [0x1400ea120]
mov rcx, r15
call qword [rsp + 0x30]
lea rdx, [0x1400a28d0]
mov rcx, r15
call qword [rbp - 0x70]
lea rdx, [0x1400ea0d0]
mov rcx, r15
call qword [rsp + 0x58]
lea rdx, [fcn.14016a580]
xor r8d, r8d
mov rcx, r14
call qword [rbp - 0x78]
lea rdx, [fcn.14016a580]
xor r8d, r8d
mov rcx, r14
call qword [rsp + 0x68]
lea rdx, [fcn.14016a580]
xor r8d, r8d
mov rcx, r14
call qword [rsp + 0x48]
lea rdx, [rbp - 0x60]
mov rcx, rbx
call qword [rbx]
movzx edi, ax
test ax, ax
jne 0x1400ea87c
movsx r13, word [rbx + 0x64]
lea rcx, [rbp + 0x4970]
xor edx, edx
mov r8d, 0x90
call fcn.1401c0040
xor r11d, r11d
mov r15, r13
test r13d, r13d
jle 0x1400ea506
mov edx, dword [rbx + 0x50]
mov r8d, dword [rbx + 0x54]
mov r9d, dword [rbp + 0x4768]
mov r10d, dword [rbp + 0x4764]
lea rax, [rbp + 0x498c]
mov rcx, r13
nop dword [rax + rax]
mov dword [rax - 4], 8
mov qword [rax], 8
mov dword [rax - 0x1c], r10d
mov dword [rax - 0x18], r9d
mov dword [rax - 0x14], edx
mov dword [rax - 0x10], r8d
lea rax, [rax + 0x24]
dec rcx
jne 0x1400ea4e0
cmp word [rbx + 0x48], 2
mov r8d, r11d
lea rdx, [rbp + 0x4970]
sete r8b
mov ecx, r13d
inc r8d
call rsi
mov rdi, rax
test rax, rax
jne 0x1400ea54d
mov rcx, qword [rsp + 0x20]
call qword [rsp + 0x38]
mov rcx, r14
call qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
movzx eax, r12w
jmp 0x1400ea898
mov ecx, dword [rbp + 0x475c]
mov dword [rax], ecx
mov eax, dword [rbp + 0x4760]
mov dword [rdi + 4], eax
mov eax, dword [rbx + 0x50]
dec eax
imul eax, dword [rbp + 0x4764]
inc eax
test ecx, ecx
je 0x1400ea572
add eax, ecx
mov ecx, dword [rdi + 4]
mov dword [rdi + 8], eax
mov eax, dword [rbx + 0x54]
dec eax
imul eax, dword [rbp + 0x4768]
inc eax
test ecx, ecx
je 0x1400ea58c
add eax, ecx
xor esi, esi
mov dword [rdi + 0xc], eax
mov r14d, esi
cmp dword [rbx + 0x54], esi
jle 0x1400ea6c7
xor r13d, r13d
mov r8d, r12d
mov edx, r14d
mov rcx, rbx
call fcn.1400629c0
cmp word [rbx + 0x48], 2
jne 0x1400ea602
mov ecx, dword [rbx + 0x50]
mov r10d, r13d
mov r9, r13
test ecx, ecx
jle 0x1400ea6b2
nop word [rax + rax]
mov rax, qword [rbp - 0x58]
movsxd rdx, ecx
inc r10d
movzx r8d, byte [r9 + rax]
mov rax, qword [rdi + 0x18]
imul rdx, rsi
mov rcx, qword [rax + 0x30]
add rdx, r9
inc r9
mov dword [rcx + rdx*4], r8d
mov ecx, dword [rbx + 0x50]
cmp r10d, ecx
jl 0x1400ea5d0
jmp 0x1400ea6b2
mov eax, dword [rbx + 0x50]
mov r9, qword [rbp - 0x58]
mov r11d, r13d
mov r10, r13
test eax, eax
jle 0x1400ea6b2
nop word [rax + rax]
movzx r8d, byte [r9]
movsxd rdx, eax
mov rax, qword [rdi + 0x18]
imul rdx, rsi
mov rcx, qword [rax + 0x30]
add rdx, r10
add r9, 3
mov dword [rcx + rdx*4], r8d
mov rax, qword [rdi + 0x18]
movzx r8d, byte [r9 - 2]
mov rcx, qword [rax + 0x70]
movsxd rdx, dword [rbx + 0x50]
imul rdx, rsi
add rdx, r10
mov dword [rcx + rdx*4], r8d
movsxd rdx, dword [rbx + 0x50]
mov rax, qword [rdi + 0x18]
movzx r8d, byte [r9 - 1]
mov rcx, qword [rax + 0xb0]
imul rdx, rsi
add rdx, r10
mov dword [rcx + rdx*4], r8d
cmp r15, 4
jl 0x1400ea6a0
movsxd rdx, dword [rbx + 0x50]
mov rax, qword [rdi + 0x18]
movzx r8d, byte [r9]
imul rdx, rsi
mov rcx, qword [rax + 0xf0]
add rdx, r10
inc r9
mov dword [rcx + rdx*4], r8d
mov eax, dword [rbx + 0x50]
inc r11d
inc r10
cmp r11d, eax
jl 0x1400ea620
inc r14d
inc rsi
cmp r14d, dword [rbx + 0x54]
jl 0x1400ea5a0
mov r13d, r15d
xor esi, esi
movzx eax, word [rbx + 0x13a]
cmp ax, 0x64
je 0x1400ea7f0
movzx ecx, word [rbx + 0x156]
test cx, cx
jle 0x1400ea715
movsx eax, cx
movd xmm0, eax
movsxd rax, dword [rbp + 0x130c]
cvtdq2ps xmm0, xmm0
movss dword [rbp + rax*4 + 0x1310], xmm0
mov eax, dword [rbp + 0x130c]
mov dword [rbp + 0x64], r12d
inc eax
mov dword [rbp + 0x130c], eax
jmp 0x1400ea7f6
test ax, ax
cwde
jle 0x1400ea749
movd xmm0, eax
movsxd rax, dword [rbp + 0x130c]
cvtdq2ps xmm0, xmm0
movss dword [rbp + rax*4 + 0x14a0], xmm0
mov eax, dword [rbp + 0x130c]
mov dword [rbp + 0x6c], r12d
inc eax
mov dword [rbp + 0x130c], eax
jmp 0x1400ea7f6
movd xmm2, dword [rbx + 0x54]
movd xmm0, dword [rbx + 0x50]
movd xmm1, r13d
mov ecx, 0x73
sub ecx, eax
mov eax, dword [rbx + 0x158]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm0, xmm0
mulsd xmm2, xmm0
cvtdq2pd xmm1, xmm1
movd xmm3, ecx
mulsd xmm2, xmm1
cvtdq2pd xmm3, xmm3
cmp eax, r12d
jbe 0x1400ea793
xorps xmm1, xmm1
shl eax, 0xa
cvtsi2sd xmm1, rax
jmp 0x1400ea7c7
movsd xmm1, qword [0x1401f6cf8]
mulsd xmm3, xmm3
imul eax, r13d, 0x8e
divsd xmm1, xmm3
sub eax, 0x8e
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x1402205e8]
mulsd xmm1, xmm2
addsd xmm1, xmm0
movsd xmm0, qword [0x140269a98]
movsxd rax, dword [rbp + 0x130c]
divsd xmm1, xmm2
divsd xmm0, xmm1
cvtpd2ps xmm1, xmm0
movss dword [rbp + rax*4 + 0x1310], xmm1
jmp 0x1400ea6fe
mov eax, dword [rbp + 0x130c]
test eax, eax
jne 0x1400ea810
xorps xmm0, xmm0
mov dword [rbp + 0x130c], r12d
mov dword [rbp + 0x64], r12d
movss dword [rbp + 0x1310], xmm0
mov r14, qword [rsp + 0x78]
lea rdx, [rbp + 0x50]
mov r8, rdi
mov rcx, r14
call qword [rbp - 0x68]
cmp dword [rdi + 0x10], 3
mov r15, qword [rsp + 0x20]
mov r8, r15
mov rdx, rdi
mov rcx, r14
sete byte [rbp + 0x495a]
call qword [rsp + 0x50]
test eax, eax
je 0x1400ea85f
mov rdx, r15
mov rcx, r14
call qword [rsp + 0x60]
test eax, eax
je 0x1400ea85f
mov rdx, r15
mov rcx, r14
call qword [rsp + 0x70]
test eax, eax
jne 0x1400ea862
mov r12d, esi
mov rcx, rdi
call qword [rbp - 0x80]
test r12d, r12d
mov edi, 6
mov rcx, rbx
cmovne di, si
call fcn.14005dcb0
mov rcx, r15
call qword [rsp + 0x38]
mov rcx, r14
call qword [rsp + 0x40]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
movzx eax, di
mov r14, qword [rsp + 0x4b18]
mov r13, qword [rsp + 0x4b60]
mov r15, qword [rsp + 0x4b10]
mov rcx, qword [rbp + 0x4a00]
xor rcx, rsp
call fcn.1401bd600
add rsp, 0x4b20
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret