Function at 0x101da420
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x70
mov eax, dword [0x105436c4]
xor eax, esp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x7c]
push ebp
mov ebp, ecx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x30], ebp
push esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 8], esi
cmp ecx, 0x80
jl 0x101da7f4
push ebx
lea eax, [esi + 0x10]
mov dword [esp + 0x18], 0x40
mov dword [esp + 0x1c], eax
add ecx, 0xffffff80
movzx eax, byte [esi]
cdq
mov ebx, eax
mov dword [esp + 0x84], ecx
movzx eax, byte [esi + 1]
push edi
mov edi, edx
cdq
shld edi, ebx, 8
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
shld esi, ecx, 8
mov eax, dword [esp + 0x10]
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
mov dword [esp + 0x10], 0x40
shl ecx, 8
movzx eax, byte [eax + 0xf]
cdq
or esi, edx
or ecx, eax
mov dword [esp + 0x38], esi
xor esi, esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], esi
cmp dword [esp + 0x90], esi
jle 0x101da7d3
nop dword [eax]
cmp dword [ebp + 0x53c4], edi
ja 0x101da5d9
jb 0x101da5c2
cmp dword [ebp + 0x53c0], ebx
ja 0x101da5d9
shr edi, 0x14
movzx ecx, byte [edi + ebp + 0x43c0]
mov eax, dword [ebp + edi*4 + 0x3c0]
jmp 0x101da69d
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x40
jge 0x101da61d
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x40]
push eax
mov eax, 0x40
sub eax, ecx
mov ecx, ebp
push eax
lea eax, [esp + 0x28]
push eax
call fcn.101dabe0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0x40
lea eax, [ebp + 0x78]
mov ecx, 0xd
cmp dword [eax + 4], edi
jb 0x101da647
ja 0x101da630
cmp dword [eax], ebx
jbe 0x101da647
movzx edx, byte [ebp + 9]
cmp ecx, edx
jg 0x101da647
add eax, 8
inc ecx
cmp dword [eax + 4], edi
ja 0x101da634
jb 0x101da647
cmp dword [eax], ebx
ja 0x101da634
movzx eax, byte [ebp + 9]
cmp ecx, eax
jg 0x101da8d2
movq xmm1, qword [esp + 0x14]
mov eax, 0x40
sub eax, ecx
movd xmm0, eax
mov eax, dword [ebp + 4]
psrlq xmm1, xmm0
movq xmm0, qword [ebp + ecx*8 + 0x1e8]
paddq xmm1, xmm0
cdq
movq qword [esp + 0x2c], xmm1
cmp dword [esp + 0x30], edx
ja 0x101da8ad
mov edx, dword [esp + 0x2c]
jb 0x101da697
cmp edx, eax
jae 0x101da8ad
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + edx*4]
movq xmm1, qword [esp + 0x14]
mov edx, dword [esp + 0x1c]
movd xmm0, ecx
sub edx, ecx
psllq xmm1, xmm0
mov dword [esp + 0x1c], edx
movq qword [esp + 0x14], xmm1
cmp eax, dword [ebp]
jne 0x101da76b
cmp edx, 8
jge 0x101da6f9
lea eax, [esp + 0x88]
mov ecx, ebp
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x40]
push eax
mov eax, 0x40
sub eax, edx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.101dabe0
mov edx, 0x40
mov edi, dword [esp + 0x18]
mov ebx, edi
shr ebx, 0x18
mov dword [esp + 0x2c], ebx
cmp esi, 1
jl 0x101da888
lea eax, [ebx + esi]
cmp eax, dword [esp + 0x90]
jg 0x101da863
test ebx, ebx
je 0x101da83e
mov eax, dword [esp + 0x24]
lea ecx, [eax + esi*2]
mov esi, ebx
lea ebp, [ecx - 2]
mov ax, word [ebp]
lea ecx, [ecx + 2]
mov word [ecx - 2], ax
sub esi, 1
jne 0x101da733
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
shld edi, ebx, 8
shl ebx, 8
sub edx, 8
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
jmp 0x101da780
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov word [ecx + esi*2], ax
mov eax, 1
add esi, eax
mov dword [esp + 0x28], esi
cmp edx, 0xc
jge 0x101da7c6
lea eax, [esp + 0x88]
mov ecx, ebp
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x40]
push eax
mov eax, 0x40
sub eax, edx
push eax
lea eax, [esp + 0x28]
push eax
call fcn.101dabe0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0x40
cmp esi, dword [esp + 0x90]
jl 0x101da5b0
cmp dword [esp + 0x88], 0
je 0x101da7df
jmp 0x101da819
mov ecx, dword [esp + 0x7c]
pop edi
pop ebx
pop esi
pop ebp
xor ecx, esp
call fcn.101dd8e4
add esp, 0x70
ret 0x10
push str.Error_choosing_Huffman_decoder_implementation__insufficient_number_of_bits_.
lea ecx, [esp + 0x3c]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
push str.Huffman_decode_error__Compressed_data_remains_after_filling_expected_output_buffer_.
lea ecx, [esp + 0x44]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
push str.Huffman_decode_error__Invalid_RLE_length_
lea ecx, [esp + 0x44]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
push str.Huffman_decode_error__Symbol_run_beyond_expected_output_buffer_length_.
lea ecx, [esp + 0x44]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
push str.Huffman_decode_error__RLE_code_with_no_previous_symbol_.
lea ecx, [esp + 0x44]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
push str.Huffman_decode_error__Decoded_an_invalid_symbol_.
lea ecx, [esp + 0x44]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
push str.Huffman_decode_error__Decoded_an_invalid_symbol_.
lea ecx, [esp + 0x44]
call fcn.10190300
push 0x103bad3c
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101e00bb
int3