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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x68
mov esi, ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x1008e00c]
xor eax, ebp
mov dword [esp + 0x60], eax
xor eax, eax
mov byte [esp + 0x20], al
mov byte [esp + 0x40], al
mov byte [esp + 0x1f], al
mov byte [esp + 0x1e], al
cmp dword [ecx + 0x3c], 0
je 0x10056cb0
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov edi, dword [edi]
mov dword [ecx], edi
mov ecx, dword [edx]
mov ecx, dword [ecx]
mov edx, ecx
mov edi, ecx
movzx eax, al
inc eax
shr edi, 7
cmp edx, 0x7f
mov edx, edi
ja 0x10056b23
movzx edi, al
add edi, ecx
mov ecx, esi
push ebx
call fcn.1004dc6a
test eax, eax
je 0x10056d42
mov ebx, eax
mov eax, dword [eax + 0x38]
sub eax, dword [ebx + 4]
cmp edi, eax
jbe 0x10056c3f
mov dword [esp + 4], edi
mov byte [esp + 0x1f], 1
mov ecx, esi
push dword [ebp + 0xc]
call fcn.1004dd5a
test eax, eax
je 0x10056d63
mov edi, eax
mov eax, dword [ebx + 0x38]
sub eax, dword [ebx + 4]
lea edx, [esp + 8]
mov ecx, ebx
push eax
push edx
call fcn.1004dcfa
movsd xmm0, qword [esi + 0x50]
movsd qword [edi + 0x40], xmm0
mov eax, dword [edi + 0x38]
add dword [esi + 0x50], eax
adc dword [esi + 0x54], 0
mov ebx, dword [esp + 4]
lea eax, [esp + 8]
sub ebx, dword [eax]
mov dword [edi], ebx
mov dword [edi + 4], ebx
lea eax, [esp + 0x48]
push 1
push eax
call fcn.10021dea
add esp, 8
lea eax, [esp + 0x48]
movsd xmm0, qword [eax + 0x10]
movsd qword [edi + 0x18], xmm0
movups xmm0, xmmword [eax]
movups xmmword [edi + 8], xmm0
cmp ebx, 0xffffffff
je 0x10056d6c
mov byte [esp + 0x1e], 1
cmp byte [esp + 0x40], 0
jne 0x10056d4e
add edi, 0x58
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov edi, dword [esp + 4]
add eax, edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
adc edx, 0
mov dword [esp + 0x3c], edx
test ecx, ecx
jne 0x10056c99
test ebx, ebx
je 0x10056c99
mov dword [0x1008f8f4], 0x10083516
int3
sete byte [esp + 0x1f]
lea eax, [esp + 0x48]
mov ecx, ebx
push edi
push eax
call fcn.1004dcfa
cmp byte [esp + 0x40], 0
jne 0x10056d4e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], eax
add eax, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
adc ecx, 0
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x40], 1
add dword [esi + 0x60], edi
adc dword [esi + 0x64], 0
add dword [esi + 0x68], 1
adc dword [esi + 0x6c], 0
mov ebx, dword [ebp + 0xc]
lea eax, [esp + 0x1f]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], esi
lea eax, [esp + 0x1e]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov byte [esp + 0x58], 1
cmp byte [esp + 0x40], 0
je 0x10056cee
mov esi, dword [ebp + 8]
mov eax, dword [esi]
lea edi, [esp + 0x20]
push edi
push dword [eax]
call fcn.1004e44a
add esp, 8
cmp byte [edi + 0x20], 0
jne 0x10056d0e
xor ebx, ebx
lea ecx, [esp + 0x48]
call fcn.1004e62a
mov ecx, dword [esp + 0x60]
xor ecx, ebp
call fcn.100375ba
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, dword [ecx]
or edx, dword [ecx + 4]
jne 0x10056d2b
movsd xmm0, qword [esp + 0x30]
movsd qword [ecx], xmm0
cmp byte [esp + 0x40], 0
je 0x10056d81
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
add edx, dword [eax]
lea ecx, [esp + 0x20]
push edx
push eax
call fcn.10056d9a
mov bl, 1
jmp 0x10056cf0
add dword [esi + 0x78], edi
adc dword [esi + 0x7c], 0
jmp 0x10056cad
mov dword [0x1008f8f4], str.__1LZ4FrameDecompressionContext_Compression_mozilla__QAE_XZ
int3
mov eax, dword [esp + 4]
add dword [esi + 0x78], eax
jmp 0x10056d45
mov dword [0x1008f8f4], 0x10082d42
int3
mov dword [0x1008f8f4], 0x1008371f
int3