Function at 0x101d4a70
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x70
mov eax, dword [0x10583760]
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 0x101d4e44
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 0x101d4e23
nop dword [eax]
cmp dword [ebp + 0x53c4], edi
ja 0x101d4c29
jb 0x101d4c12
cmp dword [ebp + 0x53c0], ebx
ja 0x101d4c29
shr edi, 0x14
movzx ecx, byte [edi + ebp + 0x43c0]
mov eax, dword [ebp + edi*4 + 0x3c0]
jmp 0x101d4ced
mov ecx, dword [esp + 0x1c]
cmp ecx, 0x40
jge 0x101d4c6d
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.101d5230
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 0x101d4c97
ja 0x101d4c80
cmp dword [eax], ebx
jbe 0x101d4c97
movzx edx, byte [ebp + 9]
cmp ecx, edx
jg 0x101d4c97
add eax, 8
inc ecx
cmp dword [eax + 4], edi
ja 0x101d4c84
jb 0x101d4c97
cmp dword [eax], ebx
ja 0x101d4c84
movzx eax, byte [ebp + 9]
cmp ecx, eax
jg 0x101d4f22
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 0x101d4efd
mov edx, dword [esp + 0x2c]
jb 0x101d4ce7
cmp edx, eax
jae 0x101d4efd
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 0x101d4dbb
cmp edx, 8
jge 0x101d4d49
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.101d5230
mov edx, 0x40
mov edi, dword [esp + 0x18]
mov ebx, edi
shr ebx, 0x18
mov dword [esp + 0x2c], ebx
cmp esi, 1
jl 0x101d4ed8
lea eax, [ebx + esi]
cmp eax, dword [esp + 0x90]
jg 0x101d4eb3
test ebx, ebx
je 0x101d4e8e
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 0x101d4d83
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 0x101d4dd0
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 0x101d4e16
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.101d5230
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0x40
cmp esi, dword [esp + 0x90]
jl 0x101d4c00
cmp dword [esp + 0x88], 0
je 0x101d4e2f
jmp 0x101d4e69
mov ecx, dword [esp + 0x7c]
pop edi
pop ebx
pop esi
pop ebp
xor ecx, esp
call fcn.101f6477
add esp, 0x70
ret 0x10
push str.Error_choosing_Huffman_decoder_implementation__insufficient_number_of_bits_.
lea ecx, [esp + 0x3c]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
push str.Huffman_decode_error__Compressed_data_remains_after_filling_expected_output_buffer_.
lea ecx, [esp + 0x44]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
push str.Huffman_decode_error__Invalid_RLE_length_
lea ecx, [esp + 0x44]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
push str.Huffman_decode_error__Symbol_run_beyond_expected_output_buffer_length_.
lea ecx, [esp + 0x44]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
push str.Huffman_decode_error__RLE_code_with_no_previous_symbol_.
lea ecx, [esp + 0x44]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
push str.Huffman_decode_error__Decoded_an_invalid_symbol_.
lea ecx, [esp + 0x44]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
push str.Huffman_decode_error__Decoded_an_invalid_symbol_.
lea ecx, [esp + 0x44]
call fcn.1018aab0
push 0x103fa184
lea eax, [esp + 0x44]
mov dword [esp + 0x44], vtable.Iex_2_2::InputExc.0
push eax
call fcn.101f94fb
int3