Function at 0x10077f70
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
mov eax, dword [0x104fb780]
xor eax, esp
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
push esi
mov esi, dword [esp + 0x70]
mov dword [esp + 4], esi
cmp ecx, 0x80
jl 0x1007831d
push ebx
lea eax, [esi + 0x10]
add ecx, 0xffffff80
mov dword [esp + 0x14], eax
movzx eax, byte [esi]
cdq
mov ebx, eax
mov dword [esp + 0x78], ecx
movzx eax, byte [esi + 1]
push ebp
push edi
mov edi, edx
mov ebp, 0x40
shld edi, ebx, 8
cdq
or edi, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 2]
shld edi, ebx, 8
cdq
or edi, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 3]
shld edi, ebx, 8
cdq
or edi, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 4]
shld edi, ebx, 8
cdq
or edi, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 5]
cdq
shld edi, ebx, 8
or edi, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 6]
cdq
shld edi, ebx, 8
or edi, edx
shl ebx, 8
or ebx, eax
movzx eax, byte [esi + 7]
cdq
shld edi, ebx, 8
shl ebx, 8
or edi, edx
or ebx, eax
mov dword [esp + 0x18], edi
movzx eax, byte [esi + 8]
cdq
mov ecx, eax
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x10]
mov esi, edx
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 9]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 0xa]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 0xb]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, ecx, 8
mov dword [esp + 0x20], ebp
shl ecx, 8
movzx eax, byte [eax + 0xc]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 0xd]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 0xe]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x10]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + 0xf]
cdq
or ecx, eax
or esi, edx
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x88], eax
jle 0x100782fe
mov esi, dword [esp + 0x24]
cmp dword [esi + 0x53c4], edi
ja 0x1007811a
jb 0x10078103
cmp dword [esi + 0x53c0], ebx
ja 0x1007811a
shr edi, 0x14
movzx ecx, byte [esi + edi + 0x43c0]
mov edx, dword [esi + edi*4 + 0x3c0]
jmp 0x100781dd
cmp ebp, 0x40
jae 0x10078157
lea eax, [esp + 0x80]
mov ecx, esi
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, 0x40
sub eax, ebp
push eax
lea eax, [esp + 0x28]
push eax
call fcn.100783f0
mov edi, dword [esp + 0x18]
mov ebp, 0x40
mov ebx, dword [esp + 0x14]
lea eax, [esi + 0x78]
mov ecx, 0xd
cmp dword [eax + 4], edi
jb 0x10078183
ja 0x1007816a
cmp dword [eax], ebx
jbe 0x10078183
movzx edx, byte [esi + 9]
nop
cmp ecx, edx
jg 0x10078183
add eax, 8
inc ecx
cmp dword [eax + 4], edi
ja 0x10078170
jb 0x10078183
cmp dword [eax], ebx
ja 0x10078170
movzx eax, byte [esi + 9]
cmp ecx, eax
jg 0x100783cb
movq xmm1, qword [esp + 0x14]
mov eax, 0x40
sub eax, ecx
movd xmm0, eax
mov eax, dword [esi + 4]
psrlq xmm1, xmm0
movq xmm0, qword [esi + ecx*8 + 0x1e8]
paddq xmm1, xmm0
cdq
movq qword [esp + 0x24], xmm1
cmp dword [esp + 0x28], edx
ja 0x100783ae
mov edx, dword [esp + 0x24]
jb 0x100781d3
cmp edx, eax
jae 0x100783ae
mov eax, dword [esi + 0xc]
mov edx, dword [eax + edx*4]
mov eax, dword [esp + 0x10]
movq xmm1, qword [esp + 0x14]
sub ebp, ecx
movd xmm0, ecx
psllq xmm1, xmm0
movq qword [esp + 0x14], xmm1
cmp edx, dword [esi]
jne 0x1007829b
cmp ebp, 8
jge 0x10078230
lea eax, [esp + 0x80]
mov ecx, esi
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, 0x40
sub eax, ebp
push eax
lea eax, [esp + 0x28]
push eax
call fcn.100783f0
mov ebp, 0x40
mov edi, dword [esp + 0x18]
mov edx, edi
mov eax, dword [esp + 0x10]
shr edx, 0x18
cmp eax, 1
jl 0x10078391
lea ecx, [edx + eax]
mov dword [esp + 0x24], ecx
cmp ecx, dword [esp + 0x88]
jg 0x10078374
test edx, edx
je 0x10078357
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + eax*2]
lea ebx, [ecx - 2]
nop dword [eax]
mov ax, word [ebx]
lea ecx, [ecx + 2]
mov word [ecx - 2], ax
sub edx, 1
jne 0x10078270
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
shld edi, ebx, 8
shl ebx, 8
sub ebp, 8
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
jmp 0x100782ac
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov word [ecx + eax*2], dx
inc eax
mov dword [esp + 0x10], eax
cmp ebp, 0xc
jge 0x100782f1
lea eax, [esp + 0x80]
mov ecx, esi
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x3c]
push eax
mov eax, 0x40
sub eax, ebp
push eax
lea eax, [esp + 0x28]
push eax
call fcn.100783f0
mov edi, dword [esp + 0x18]
mov ebp, 0x40
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x88]
jl 0x100780f1
cmp dword [esp + 0x80], 0
jne 0x1007833a
mov ecx, dword [esp + 0x74]
pop edi
pop ebp
pop ebx
pop esi
xor ecx, esp
call fcn.1011f88a
add esp, 0x68
ret 0x10
push str.Error_choosing_Huffman_decoder_implementation__insufficient_number_of_bits_.
lea ecx, [esp + 0x30]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x30]
push eax
call fcn.1012195f
push str.Huffman_decode_error__Compressed_data_remains_after_filling_expected_output_buffer_.
lea ecx, [esp + 0x3c]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x3c]
push eax
call fcn.1012195f
push str.Huffman_decode_error__Invalid_RLE_length_
lea ecx, [esp + 0x3c]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x3c]
push eax
call fcn.1012195f
push str.Huffman_decode_error__Symbol_run_beyond_expected_output_buffer_length_.
lea ecx, [esp + 0x3c]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x3c]
push eax
call fcn.1012195f
push str.Huffman_decode_error__RLE_code_with_no_previous_symbol_.
lea ecx, [esp + 0x3c]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x3c]
push eax
call fcn.1012195f
push str.Huffman_decode_error__Decoded_an_invalid_symbol_.
lea ecx, [esp + 0x3c]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x3c]
push eax
call fcn.1012195f
push str.Huffman_decode_error__Decoded_an_invalid_symbol_.
lea ecx, [esp + 0x3c]
call fcn.10163d50
push 0x104f3c64
lea eax, [esp + 0x3c]
push eax
call fcn.1012195f
int3