Function at 0x100c3740
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov eax, dword [edi + 0x40]
add eax, dword [edi + 0x2c]
mov esi, dword [edi + 4]
mov dword [edi + 0x38], eax
cmp esi, ebx
je 0x100c34c8
nop dword [eax + eax]
add byte [esi], 0xff
mov al, byte [esi]
jne 0x100c34a9
mov edx, dword [esi + 4]
mov al, byte [esi + 1]
cmp byte [edx], 0x40
sbb cl, cl
and al, 0x10
and cl, 0xf8
add cl, 8
add cl, al
mov byte [esi + 1], cl
mov eax, dword [edx]
mov dword [esi + 2], eax
mov ax, word [edx + 4]
mov word [esi + 6], ax
mov eax, dword [edi + 0x3c]
cmp edx, eax
je 0x100c3494
mov dword [edx], 0xffffffff
mov eax, dword [edi + 0x100]
mov dword [edx + 4], eax
movzx eax, byte [edi + 0x58]
mov dword [edx + 8], eax
inc dword [edi + 0x198]
mov dword [edi + 0x100], edx
movzx eax, byte [esi + 3]
add eax, 0xb
shr eax, 3
mov byte [esi + 3], al
jmp 0x100c34bd
add eax, 0xc
mov dword [edi + 0x3c], eax
movzx eax, byte [esi + 3]
add eax, 0xb
shr eax, 3
mov byte [esi + 3], al
jmp 0x100c34bd
movzx eax, al
mov edx, esi
add eax, 3
mov ecx, edi
push 0
shr eax, 1
push eax
call fcn.100c2f50
mov esi, dword [esi + 8]
cmp esi, ebx
jne 0x100c3430
cmp esi, dword [edi]
je 0x100c3518
nop dword [eax]
mov cl, byte [esi]
test cl, cl
jne 0x100c34e4
mov cl, byte [esi + 3]
mov al, cl
shr al, 1
sub cl, al
mov byte [esi + 3], cl
jmp 0x100c3511
movzx eax, word [esi + 2]
add eax, 4
movzx edx, cl
mov word [esi + 2], ax
movzx eax, ax
lea ecx, [edx*4 + 0x80]
cmp eax, ecx
jbe 0x100c3511
lea eax, [edx + 2]
mov ecx, edi
push 1
shr eax, 1
mov edx, esi
push eax
call fcn.100c2f50
mov esi, dword [esi + 8]
cmp esi, dword [edi]
jne 0x100c34d0
cmp dword [edi + 0x44], 0
je 0x100c35c8
xor esi, esi
lea ecx, [edi + 0x59]
push ebp
xor ebx, ebx
lea edx, [edi + 0x19c]
lea ebp, [esi + 0x13]
movzx eax, byte [ecx - 1]
lea edx, [edx + 8]
imul eax, dword [edx - 0xc]
lea ecx, [ecx + 2]
add esi, eax
movzx eax, byte [ecx - 2]
imul eax, dword [edx - 8]
add ebx, eax
sub ebp, 1
jne 0x100c3533
mov ecx, dword [edi + 0x24]
add esi, ebx
imul eax, esi, 0xfffffff4
pop ebp
sub eax, dword [edi + 0x3c]
sub eax, dword [edi + 0x34]
add eax, dword [edi + 0x30]
add eax, dword [edi + 0x38]
add eax, ecx
shr ecx, 1
cmp eax, ecx
jb 0x100c35c8
mov eax, dword [edi + 4]
cmp dword [eax + 8], 0
je 0x100c3590
nop dword [eax + eax]
mov eax, dword [eax + 8]
mov dword [edi + 4], eax
cmp dword [eax + 8], 0
jne 0x100c3580
nop dword [eax]
mov edx, dword [edi + 4]
mov ecx, edi
push 0
call fcn.100c24e0
mov ecx, edi
call fcn.100c2720
mov ecx, edi
call fcn.100c27e0
mov ecx, dword [edi + 0x24]
shr ecx, 2
lea ecx, [ecx + ecx*2]
cmp eax, ecx
ja 0x100c3590
mov eax, dword [edi + 0x18]
mov dword [edi + 0x28], 0
mov dword [edi + 0xc], eax
pop edi
pop esi
pop ebx
ret
mov ecx, edi
pop edi
pop esi
pop ebx
jmp fcn.100c3230
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 8]
movzx edx, word [ecx + 4]
movzx eax, word [ecx + 2]
shl edx, 0x10
or edx, eax
mov al, byte [ecx + 1]
mov cl, byte [ecx]
movzx ebx, al
mov dword [esp + 0x1c], ebx
xor ebx, ebx
mov dword [esp + 0x14], edx
mov byte [esp + 0x12], cl
cmp al, 0x1f
jae 0x100c37da
mov eax, dword [esi]
mov edi, dword [eax + 8]
test edi, edi
je 0x100c37da
cmp byte [edi], bl
jne 0x100c3791
mov al, byte [edi + 3]
lea ebx, [edi + 2]
cmp al, 0x20
jae 0x100c37da
inc al
mov byte [ebx + 1], al
jmp 0x100c37da
mov ebx, dword [edi + 4]
cmp byte [ebx], cl
je 0x100c37c9
mov ebp, ebx
add ebx, 6
cmp byte [ebx], cl
jne 0x100c3798
mov al, byte [ebx + 1]
cmp al, byte [ebx - 5]
jb 0x100c37c9
mov dx, word [ebx + 4]
mov eax, dword [ebx - 6]
mov ecx, dword [ebx]
mov dword [ebx], eax
mov ax, word [ebx - 2]
mov word [ebx + 4], ax
mov dword [ebx - 6], ecx
mov word [ebx - 2], dx
mov ebx, ebp
mov edx, dword [esp + 0x14]
mov al, byte [ebx + 1]
cmp al, 0x73
jae 0x100c37da
add al, 2
mov byte [ebx + 1], al
add word [edi + 2], 2
cmp dword [esi + 0xc], 0
mov edi, dword [esi + 4]
jne 0x100c382f
test edx, edx
je 0x100c382f
push dword [esi]
mov edx, 1
mov ecx, esi
push ebx
call fcn.100c2310
mov edx, eax
test edx, edx
jne 0x100c3814
mov eax, dword [esi + 8]
xor ecx, ecx
mov dword [eax + 2], ecx
mov edx, edi
mov ecx, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
jmp 0x100c3410
mov ecx, dword [esi + 8]
mov eax, edx
shr eax, 0x10
pop edi
mov word [ecx + 2], dx
mov word [ecx + 4], ax
mov dword [esi + 4], edx
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x38]
mov al, byte [eax]
mov byte [ecx], al
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
inc ecx
mov dword [esp + 0x20], ecx
mov dword [esi + 0x38], ecx
cmp ecx, eax
jb 0x100c385b
mov edx, edi
mov ecx, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
jmp 0x100c3410
test edx, edx
jne 0x100c3884
push dword [esi]
mov edx, ebx
mov ecx, esi
call fcn.100c2e30
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jne 0x100c389c
mov edx, edi
mov ecx, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
jmp 0x100c3410
cmp edx, eax
jae 0x100c389c
push dword [esi]
xor edx, edx
mov ecx, esi
push ebx
call fcn.100c2310
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x100c3870
add dword [esi + 0xc], 0xffffffff
jne 0x100c38b5
mov eax, dword [esi + 4]
mov ecx, edx
mov dword [esp + 0x20], ecx
xor ecx, ecx
cmp eax, dword [esi]
setne cl
sub dword [esi + 0x38], ecx
mov eax, dword [esi]
movzx ebp, byte [eax]
movzx ecx, word [eax + 2]
sub ecx, ebp
mov dword [esp + 0x24], ebp
sub ecx, dword [esp + 0x1c]
cmp byte [esp + 0x12], 0x40
mov dword [esp + 0x34], ecx
sbb cl, cl
and cl, 0xf8
add cl, 8
mov byte [esp + 0x13], cl
cmp edi, eax
je 0x100c3aeb
movzx ebx, byte [edi]
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x100c39a9
test bl, 1
je 0x100c3991
inc ebx
shr ebx, 1
movzx edx, byte [ebx + esi + 0x7d]
movzx eax, byte [ebx + esi + 0x7e]
mov dword [esp + 0x2c], edx
cmp edx, eax
je 0x100c398d
inc edx
mov ecx, esi
call fcn.100c2220
mov ebp, eax
mov dword [esp + 0x30], ebp
test ebp, ebp
je 0x100c3804
mov eax, dword [edi + 4]
mov edx, ebp
mov dword [esp + 0x28], eax
sub ebp, eax
lea ecx, [eax + 8]
mov eax, dword [ecx - 8]
lea edx, [edx + 0xc]
mov dword [edx - 0xc], eax
lea ecx, [ecx + 0xc]
mov eax, dword [ecx - 0x10]
mov dword [edx - 8], eax
mov eax, dword [ecx - 0xc]
mov dword [ecx + ebp - 0xc], eax
sub ebx, 1
jne 0x100c3936
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
mov dword [edx], 0xffffffff
mov eax, dword [esi + ecx*4 + 0x100]
mov dword [edx + 4], eax
movzx eax, byte [ecx + esi + 0x58]
mov dword [edx + 8], eax
inc dword [esi + ecx*4 + 0x198]
mov eax, dword [esp + 0x30]
mov dword [esi + ecx*4 + 0x100], edx
mov dword [edi + 4], eax
mov ebx, dword [esp + 0x18]
lea eax, [ebx*2 + 1]
add eax, ebx
cmp eax, ebp
sbb eax, eax
neg eax
add word [edi + 2], ax
jmp 0x100c3a31
mov edx, dword [esi + 0x100]
test edx, edx
je 0x100c39c4
mov eax, dword [edx + 4]
dec dword [esi + 0x198]
mov dword [esi + 0x100], eax
jmp 0x100c39ed
movzx eax, byte [esi + 0x58]
mov edx, dword [esi + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x34]
shl ecx, 2
sub eax, edx
cmp ecx, eax
ja 0x100c39e2
lea eax, [edx + ecx]
mov dword [esi + 0x30], eax
jmp 0x100c39ed
xor edx, edx
mov ecx, esi
call fcn.100c2270
mov edx, eax
test edx, edx
je 0x100c3804
mov ecx, dword [edi + 2]
mov dword [edx], ecx
mov cx, word [edi + 6]
mov word [edx + 4], cx
mov dword [edi + 4], edx
mov al, byte [edx + 1]
cmp al, 0x1e
jae 0x100c3a13
add al, al
mov byte [edx + 1], al
jmp 0x100c3a17
mov byte [edx + 1], 0x78
mov eax, 2
cmp eax, ebp
movzx eax, byte [edx + 1]
sbb ecx, ecx
neg ecx
add cx, word [esi + 0x10]
add cx, ax
mov word [edi + 2], cx
movzx eax, word [edi + 2]
mov ebp, dword [esp + 0x34]
add ebp, eax
lea edx, [eax + 6]
imul edx, dword [esp + 0x1c]
lea eax, [ebp*2]
add eax, ebp
add eax, eax
add edx, edx
cmp edx, eax
jae 0x100c3a72
lea eax, [ebp*4]
cmp edx, eax
sbb ecx, ecx
inc ecx
cmp ebp, edx
sbb eax, eax
neg eax
lea edx, [eax + 1]
add edx, ecx
add word [edi + 2], 4
jmp 0x100c3aab
mov eax, ebp
shl eax, 4
sub eax, ebp
cmp eax, edx
lea eax, [ebp*2]
sbb ecx, ecx
add eax, ebp
shl eax, 2
neg ecx
cmp eax, edx
sbb eax, eax
neg eax
add ecx, eax
lea eax, [ebp*8]
add eax, ebp
cmp eax, edx
sbb eax, eax
lea edx, [ecx + 4]
neg eax
add edx, eax
add word [edi + 2], dx
mov eax, dword [edi + 4]
lea ecx, [ebx + 1]
lea ecx, [ecx + ecx*2]
inc bl
mov byte [eax + ecx*2 + 1], dl
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x20]
mov word [ecx + 2], ax
shr eax, 0x10
mov word [ecx + 4], ax
mov al, byte [esp + 0x12]
mov byte [ecx], al
mov al, byte [esp + 0x13]
or byte [edi + 1], al
mov byte [edi], bl
mov edi, dword [edi + 8]
cmp edi, dword [esi]
je 0x100c3aeb
mov ebp, dword [esp + 0x24]
jmp 0x100c38e5
mov eax, dword [esp + 0x14]
pop edi
mov dword [esi], eax
mov dword [esi + 4], eax
pop esi
pop ebp
pop ebx
add esp, 0x28
ret