Function at 0x550590
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x6229a0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x668368], 0
mov eax, dword [ebp + 8]
push ebx
je 0x550962
cmp dword [eax + 0x14], 0x10
jb 0x5505b9
mov eax, dword [eax]
push 0x5d971c
push eax
call fcn.00551560
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x550962
cmp byte [0x620c44], 0
push esi
je 0x550739
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str._J2K_getVersion_0
push dword [0x668368]
mov byte [0x620c44], 0
call esi
push str._J2K_Unlock_4
push dword [0x668368]
mov dword [0x668374], eax
call esi
push str._J2K_OpenCustom_8
push dword [0x668368]
mov dword [0x668378], eax
call esi
push str._J2K_OpenFile_4
push dword [0x668368]
mov dword [0x66837c], eax
call esi
push str._J2K_Close_4
push dword [0x668368]
mov dword [0x668380], eax
call esi
push str._J2K_GetInfo_16
push dword [0x668368]
mov dword [0x668384], eax
call esi
push str._J2K_GetResolutionDimensions_16
push dword [0x668368]
mov dword [0x668388], eax
call esi
push str._J2K_Decode_20
push dword [0x668368]
mov dword [0x66838c], eax
call esi
push str._J2K_getLastError_0
push dword [0x668368]
mov dword [0x668390], eax
call esi
push str._J2K_getErrorStr_4
push dword [0x668368]
mov dword [0x668394], eax
call esi
mov ecx, dword [0x668374]
mov dword [0x668398], eax
test ecx, ecx
je 0x55078f
cmp dword [0x668378], 0
je 0x55078f
cmp dword [0x66837c], 0
je 0x55078f
cmp dword [0x668380], 0
je 0x55078f
cmp dword [0x668384], 0
je 0x55078f
cmp dword [0x668388], 0
je 0x55078f
cmp dword [0x66838c], 0
je 0x55078f
cmp dword [0x668390], 0
je 0x55078f
cmp dword [0x668394], 0
je 0x55078f
test eax, eax
je 0x55078f
call ecx
cmp eax, 0x120000
jl 0x55078f
cmp dword [0x620c40], 0x10
mov eax, 0x620c2c
cmovae eax, dword [0x620c2c]
push eax
call dword [0x668378]
lea eax, [ebp - 0x60]
mov dword [ebp - 0x5c], 0x551000
push eax
push ebx
mov dword [ebp - 0x60], 0x551020
mov dword [ebp - 0x58], fcn.0048e240
call dword [0x66837c]
mov esi, eax
test esi, esi
jne 0x5507a6
call dword [0x668394]
push eax
call dword [0x668398]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402d00
lea ecx, [ebp - 0x3c]
call fcn.00402f60
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059b734
mov esp, ebp
pop ebp
ret
call fcn.0054f190
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059b734
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x40]
push eax
push esi
call dword [0x668388]
test eax, eax
jne 0x550949
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x40]
push eax
push 0
push esi
call dword [0x66838c]
mov eax, dword [ebp - 0x40]
xor ecx, ecx
imul eax, dword [ebp - 0x44]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0059b726
add esp, 4
mov dword [ebp - 0x48], eax
test eax, eax
je 0x550949
mov ax, word [0x5e8318]
mov ecx, dword [ebp - 0x40]
mov word [ebp - 0x1c], ax
mov al, byte [0x5e831a]
mov byte [ebp - 0x1a], al
mov eax, ecx
imul eax, dword [ebp - 0x44]
movq xmm0, qword [str.bpp4_rl0]
movq qword [ebp - 0x24], xmm0
shl eax, 2
mov dword [ebp - 0x54], eax
lea eax, [ecx*4]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x48]
push eax
push esi
call dword [0x668390]
test eax, eax
je 0x550874
push esi
call dword [0x668384]
push dword [ebp - 0x48]
call fcn.0059b72f
add esp, 4
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059b734
mov esp, ebp
pop ebp
ret
push edi
push esi
call dword [0x668384]
push 0x10
call fcn.0059b742
add esp, 4
mov dword [ebp - 0x4c], eax
test eax, eax
je 0x550898
mov ecx, eax
call fcn.0054f120
mov edi, eax
jmp 0x55089a
xor edi, edi
mov eax, dword [ebp - 0x48]
mov dword [edi + 0xc], eax
mov ecx, dword [ebp - 0x40]
mov dword [edi + 4], ecx
mov edx, dword [ebp - 0x44]
mov dword [edi + 8], edx
cmp byte [0x620c29], 0
je 0x55092d
imul ecx, edx
xor edx, edx
shl ecx, 2
lea esi, [ecx + eax]
shr ecx, 2
cmp eax, esi
cmova ecx, edx
test ecx, ecx
je 0x550918
cmp ecx, 0x10
jb 0x550918
movaps xmm1, xmmword [0x5e6780]
and ecx, 0xfffffff0
nop dword [eax + eax]
movups xmm0, xmmword [eax]
add edx, 0x10
por xmm0, xmm1
movups xmmword [eax], xmm0
movups xmm0, xmmword [eax + 0x10]
por xmm0, xmm1
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [eax + 0x20]
por xmm0, xmm1
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [eax + 0x30]
por xmm0, xmm1
movups xmmword [eax + 0x30], xmm0
add eax, 0x40
cmp edx, ecx
jne 0x5508e0
cmp eax, esi
je 0x55092d
nop dword [eax]
or dword [eax], 0xff000000
add eax, 4
cmp eax, esi
jne 0x550920
push ebx
call fcn.00551520
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059b734
mov esp, ebp
pop ebp
ret
push esi
call dword [0x668384]
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059b734
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
pop ebx
call fcn.0059b734
mov esp, ebp
pop ebp
ret