Function at 0x100d5210
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x10c
push ebx
push ebp
push esi
mov esi, ecx
mov ebp, dword [esi]
cmp word [ebp], 1
push edi
je 0x100d5409
mov eax, dword [ebp + 4]
movzx ebx, word [ebp + 2]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x48]
xor edx, edx
div ebx
mov edi, dword [esi + 0x4c]
xor edx, edx
mov ecx, eax
mov eax, edi
div ecx
mov edx, dword [esp + 0x14]
mov dword [esi + 0x48], ecx
movzx edx, byte [edx + 1]
mov dword [esp + 0x18], ecx
mov ecx, eax
sub eax, edx
jns 0x100d52c5
mov eax, dword [esp + 0x18]
imul eax, edx
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x100d52a7
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
call eax
mov edx, dword [esi + 0x4c]
shl dword [esi + 0x48], 8
movzx ecx, al
shl edx, 8
or ecx, edx
cmp dword [esi + 0x48], 0x1000000
mov dword [esi + 0x4c], ecx
jae 0x100d52a7
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
call eax
mov edx, dword [esi + 0x4c]
movzx ecx, al
shl edx, 8
or ecx, edx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], ecx
mov eax, dword [esp + 0x14]
mov dword [esi + 8], eax
mov bl, byte [eax]
mov ecx, esi
call fcn.100d5120
pop edi
pop esi
pop ebp
movzx eax, bl
pop ebx
add esp, 0x10c
ret
mov dword [esi + 0x14], 0
movzx edx, word [ebp]
dec edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
add edx, 6
mov dword [esp + 0x14], edx
movzx edx, byte [edx + 1]
sub eax, edx
js 0x100d538d
dec dword [esp + 0x10]
jne 0x100d52d5
cmp ecx, ebx
jae 0x100d576c
sub ecx, eax
mov eax, dword [esp + 0x18]
sub ebx, ecx
mov edx, eax
imul ebx, eax
mov eax, dword [esi + 8]
imul edx, ecx
sub edi, edx
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], ebx
movzx ecx, byte [eax]
add ecx, 0xc0
shr ecx, 5
and ecx, 8
mov dword [esi + 0x1c], ecx
xor eax, eax
lea esp, [esp]
or ecx, 0xffffffff
mov dword [esp + eax*4 + 0x1c], ecx
mov dword [esp + eax*4 + 0x20], ecx
mov dword [esp + eax*4 + 0x24], ecx
mov dword [esp + eax*4 + 0x28], ecx
mov dword [esp + eax*4 + 0x2c], ecx
mov dword [esp + eax*4 + 0x30], ecx
mov dword [esp + eax*4 + 0x34], ecx
mov dword [esp + eax*4 + 0x38], ecx
add eax, 8
cmp eax, 0x40
jb 0x100d5330
mov edi, dword [esp + 0x14]
movzx edx, byte [edi]
mov eax, dword [ebp + 4]
mov byte [esp + edx + 0x1c], 0
lea ebx, [ebx]
movzx ecx, byte [eax]
movzx edx, byte [eax + 6]
add eax, 0xc
mov byte [esp + ecx + 0x1c], 0
mov byte [esp + edx + 0x1c], 0
cmp eax, edi
jb 0x100d5370
jmp 0x100d5570
mov ebp, dword [esp + 0x14]
movzx edx, byte [ebp + 1]
mov ebx, dword [esi + 0x48]
sub ecx, edx
sub ecx, eax
imul ecx, ebx
mov eax, ebx
imul eax, edx
sub edi, ecx
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x100d53ee
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
call eax
mov edx, dword [esi + 0x4c]
shl dword [esi + 0x48], 8
movzx ecx, al
shl edx, 8
or ecx, edx
cmp dword [esi + 0x48], 0x1000000
mov dword [esi + 0x4c], ecx
jae 0x100d53ee
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
call eax
mov edx, dword [esi + 0x4c]
movzx ecx, al
shl edx, 8
or ecx, edx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], ecx
mov dword [esi + 8], ebp
mov bl, byte [ebp]
mov ecx, esi
call fcn.100d50a0
pop edi
pop esi
pop ebp
movzx eax, bl
pop ebx
add esp, 0x10c
ret
mov eax, dword [esi + 8]
movzx eax, byte [eax]
add eax, 0xc0
shr eax, 5
and eax, 8
mov dword [esi + 0x1c], eax
mov ecx, dword [ebp + 8]
movzx edx, word [ecx]
movzx ecx, byte [edx + esi + 0x1a7]
movzx edx, byte [ebp + 2]
add edx, 0xc0
lea edi, [ebp + 2]
shr edx, 4
and edx, 0x10
add ecx, edx
movzx edx, byte [ebp + 3]
shl edx, 6
add edx, eax
mov eax, dword [esi + 0x20]
sar eax, 0x1a
and eax, 0x20
add edx, ecx
add eax, edx
add eax, dword [esi + 0x14]
movzx ecx, word [esi + eax*2 + 0x97c]
lea edx, [esi + eax*2 + 0x97c]
mov eax, dword [esi + 0x48]
shr eax, 0xe
imul eax, ecx
lea ebx, [ecx + 0x20]
shr ebx, 7
sub ecx, ebx
cmp dword [esi + 0x4c], eax
jae 0x100d550d
sub ecx, 0xffffff80
mov word [edx], cx
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x100d54ab
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
call edx
mov ecx, dword [esi + 0x4c]
movzx eax, al
shl ecx, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
movzx eax, word [edi + 4]
movzx edx, word [edi + 2]
movzx ecx, byte [edi + 1]
mov bl, byte [edi]
shl eax, 0x10
or eax, edx
mov edx, 1
add dword [esi + 0x20], edx
mov dword [esi + 0x14], edx
cmp ecx, 0x80
setb dl
add dl, cl
mov dword [esi + 8], edi
mov byte [edi + 1], dl
cmp dword [esi + 0xc], 0
jne 0x100d54f8
cmp eax, dword [esi + 0x40]
jbe 0x100d54f8
pop edi
mov dword [esi], eax
mov dword [esi + 4], eax
pop esi
pop ebp
movzx eax, bl
pop ebx
add esp, 0x10c
ret
mov ecx, esi
call fcn.100d4ac0
pop edi
pop esi
pop ebp
movzx eax, bl
pop ebx
add esp, 0x10c
ret
mov word [edx], cx
shr ecx, 0xa
movzx ecx, byte [ecx + esi + 0x3a8]
sub dword [esi + 0x4c], eax
sub dword [esi + 0x48], eax
mov dword [esi + 0x10], ecx
xor eax, eax
jmp 0x100d5530
or ecx, 0xffffffff
mov dword [esp + eax*4 + 0x1c], ecx
mov dword [esp + eax*4 + 0x20], ecx
mov dword [esp + eax*4 + 0x24], ecx
mov dword [esp + eax*4 + 0x28], ecx
mov dword [esp + eax*4 + 0x2c], ecx
mov dword [esp + eax*4 + 0x30], ecx
mov dword [esp + eax*4 + 0x34], ecx
mov dword [esp + eax*4 + 0x38], ecx
add eax, 8
cmp eax, 0x40
jb 0x100d5530
mov edx, dword [esi]
movzx eax, byte [edx + 2]
mov byte [esp + eax + 0x1c], 0
mov dword [esi + 0x14], 0
lea ecx, [ecx]
mov edi, 0x1000000
cmp dword [esi + 0x48], edi
jae 0x100d55b1
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
call edx
mov ecx, dword [esi + 0x4c]
shl dword [esi + 0x48], 8
movzx eax, al
shl ecx, 8
or eax, ecx
mov dword [esi + 0x4c], eax
cmp dword [esi + 0x48], edi
jae 0x100d55b1
mov ecx, dword [esi + 0x54]
mov edx, dword [ecx]
call edx
mov ecx, dword [esi + 0x4c]
movzx eax, al
shl ecx, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
mov ecx, dword [esi]
movzx eax, word [ecx]
mov dword [esp + 0x10], eax
mov edx, 1
nop
add dword [esi + 0xc], edx
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x100d56a4
movzx edi, word [ecx]
cmp edi, eax
je 0x100d55c0
mov edx, dword [ecx + 4]
movzx edi, byte [edx]
movzx eax, word [ecx]
movzx ebp, byte [edx + 1]
movzx edi, byte [esp + edi + 0x1c]
mov ebx, eax
and eax, 1
and edi, ebp
mov ebp, eax
neg ebp
lea eax, [eax + eax*2]
shr ebx, 1
and edi, ebp
lea eax, [edx + eax*2]
mov dword [esi], ecx
mov edi, edi
movzx edx, byte [eax + 6]
movzx ecx, byte [eax]
movzx ebp, byte [eax + 7]
movzx edx, byte [esp + edx + 0x1c]
movzx ecx, byte [esp + ecx + 0x1c]
add eax, 0xc
and edx, ebp
movzx ebp, byte [eax - 0xb]
and ecx, ebp
add edi, ecx
add edi, edx
dec ebx
jne 0x100d5600
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x14]
mov ecx, esi
call fcn.100d5000
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x48]
xor edx, edx
add ebx, edi
div ebx
mov ecx, dword [esi + 0x4c]
xor edx, edx
mov dword [esp + 0x18], ebx
mov ebp, eax
mov eax, ecx
div ebp
mov dword [esi + 0x48], ebp
cmp eax, edi
jb 0x100d56b2
cmp eax, ebx
jae 0x100d576c
mov eax, ebp
imul eax, edi
sub ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x4c], ecx
mov ecx, ebx
sub ecx, edi
imul ecx, ebp
mov dword [esi + 0x48], ecx
add word [eax], bx
mov ecx, dword [esi]
mov eax, dword [ecx + 4]
movzx ecx, word [ecx]
lea edx, [ecx + ecx*2]
lea ecx, [eax + edx*2]
nop
movzx edx, byte [eax]
add eax, 6
mov byte [esp + edx + 0x1c], 0
cmp eax, ecx
jne 0x100d5690
jmp 0x100d5570
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10c
ret
mov ecx, dword [esi]
mov edi, dword [ecx + 4]
mov ecx, eax
lea esp, [esp]
movzx edx, byte [edi]
movzx ebx, byte [edi + 1]
movzx edx, byte [esp + edx + 0x1c]
and edx, ebx
add edi, 6
sub eax, edx
jns 0x100d56c0
movzx edx, byte [edi - 5]
sub edi, 6
sub ecx, eax
mov ebx, ebp
sub ecx, edx
imul ecx, ebx
sub dword [esi + 0x4c], ecx
mov eax, ebx
imul eax, edx
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x100d5732
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
call eax
mov edx, dword [esi + 0x4c]
shl dword [esi + 0x48], 8
movzx ecx, al
shl edx, 8
or ecx, edx
cmp dword [esi + 0x48], 0x1000000
mov dword [esi + 0x4c], ecx
jae 0x100d5732
mov ecx, dword [esi + 0x54]
mov eax, dword [ecx]
call eax
mov edx, dword [esi + 0x4c]
movzx ecx, al
shl edx, 8
or ecx, edx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], ecx
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 2]
cmp cl, 7
jae 0x100d5752
dec byte [eax + 3]
jne 0x100d5752
shl word [eax], 1
mov dl, 3
shl dl, cl
inc cl
mov byte [eax + 2], cl
mov byte [eax + 3], dl
mov dword [esi + 8], edi
mov bl, byte [edi]
mov ecx, esi
call fcn.100d5190
pop edi
pop esi
pop ebp
movzx eax, bl
pop ebx
add esp, 0x10c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x10c
ret