Function at 0x10031070
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
xor ebx, ebx
cmp esi, ebx
je 0x100312ae
mov edx, dword [esi + 8]
cmp edx, 0x40
jae 0x100312ae
mov cl, byte [esi + 0xac]
push edi
cmp cl, bl
jbe 0x100310e5
mov eax, 0x40
movzx edi, cl
sub eax, edx
cmp edi, eax
jb 0x100310a7
mov edi, eax
mov ecx, dword [esi + 8]
push edi
lea eax, [esi + 0x6c]
push eax
lea edx, [ecx + esi + 0x2c]
push edx
call fcn.1008d020
add dword [esi + 8], edi
add esp, 0xc
cmp dword [esi + 8], 0x40
jne 0x100310e5
lea eax, [esi + 0x2c]
push esi
call fcn.100312c0
add esp, 4
test eax, eax
jne 0x1003119e
add dword [esi], 0x200
mov dword [esi + 8], ebx
adc dword [esi + 4], ebx
mov eax, dword [esi + 8]
lea ecx, [eax*8]
add dword [esi], ecx
adc dword [esi + 4], ebx
cmp eax, 0x40
ja 0x1003119e
mov byte [eax + esi + 0x2c], 0x80
mov edi, 1
add dword [esi + 8], edi
mov eax, dword [esi + 8]
cmp eax, 0x38
jbe 0x1003113f
mov edx, 0x40
sub edx, eax
push edx
lea eax, [eax + esi + 0x2c]
push ebx
push eax
call fcn.1008e320
lea eax, [esi + 0x2c]
push esi
mov dword [esi + 8], 0x40
call fcn.100312c0
add esp, 0x10
test eax, eax
jne 0x1003119e
mov dword [esi + 8], ebx
cmp dword [esi + 8], 0x38
jae 0x10031155
mov ecx, dword [esi + 8]
mov byte [ecx + esi + 0x2c], bl
add dword [esi + 8], edi
cmp dword [esi + 8], 0x38
jb 0x10031145
movzx eax, byte [esi + 6]
movzx edx, byte [esi + 7]
movzx ecx, byte [esi + 5]
mov byte [esi + 0x65], al
movzx eax, byte [esi + 3]
mov byte [esi + 0x64], dl
movzx edx, byte [esi + 4]
mov byte [esi + 0x68], al
movzx eax, byte [esi]
mov byte [esi + 0x66], cl
movzx ecx, byte [esi + 2]
mov byte [esi + 0x67], dl
movzx edx, byte [esi + 1]
mov byte [esi + 0x6b], al
lea edi, [esi + 0x2c]
push esi
mov eax, edi
mov byte [esi + 0x69], cl
mov byte [esi + 0x6a], dl
call fcn.100312c0
add esp, 4
test eax, eax
je 0x100311a7
pop edi
pop esi
mov eax, 0x1b0a0059
pop ebx
ret
movzx ecx, byte [esi + 0xc]
mov eax, dword [esp + 0x14]
mov byte [eax + 3], cl
movzx edx, byte [esi + 0xd]
mov byte [eax + 2], dl
movzx ecx, byte [esi + 0xe]
mov byte [eax + 1], cl
movzx edx, byte [esi + 0xf]
mov byte [eax], dl
movzx ecx, byte [esi + 0x10]
mov byte [eax + 7], cl
movzx edx, byte [esi + 0x11]
mov byte [eax + 6], dl
movzx ecx, byte [esi + 0x12]
mov byte [eax + 5], cl
movzx edx, byte [esi + 0x13]
mov byte [eax + 4], dl
movzx ecx, byte [esi + 0x14]
mov byte [eax + 0xb], cl
movzx edx, byte [esi + 0x15]
mov byte [eax + 0xa], dl
movzx ecx, byte [esi + 0x16]
mov byte [eax + 9], cl
movzx edx, byte [esi + 0x17]
mov byte [eax + 8], dl
movzx ecx, byte [esi + 0x18]
mov byte [eax + 0xf], cl
movzx edx, byte [esi + 0x19]
mov byte [eax + 0xe], dl
movzx ecx, byte [esi + 0x1a]
mov byte [eax + 0xd], cl
movzx edx, byte [esi + 0x1b]
mov byte [eax + 0xc], dl
movzx ecx, byte [esi + 0x1c]
mov byte [eax + 0x13], cl
movzx edx, byte [esi + 0x1d]
mov byte [eax + 0x12], dl
movzx ecx, byte [esi + 0x1e]
mov byte [eax + 0x11], cl
movzx edx, byte [esi + 0x1f]
mov byte [eax + 0x10], dl
movzx ecx, byte [esi + 0x20]
mov byte [eax + 0x17], cl
movzx edx, byte [esi + 0x21]
mov byte [eax + 0x16], dl
movzx ecx, byte [esi + 0x22]
mov byte [eax + 0x15], cl
movzx edx, byte [esi + 0x23]
mov byte [eax + 0x14], dl
movzx ecx, byte [esi + 0x24]
mov byte [eax + 0x1b], cl
movzx edx, byte [esi + 0x25]
mov byte [eax + 0x1a], dl
movzx ecx, byte [esi + 0x26]
mov byte [eax + 0x19], cl
movzx edx, byte [esi + 0x27]
mov byte [eax + 0x18], dl
movzx ecx, byte [esi + 0x28]
mov byte [eax + 0x1f], cl
movzx edx, byte [esi + 0x29]
mov byte [eax + 0x1e], dl
movzx ecx, byte [esi + 0x2a]
mov byte [eax + 0x1d], cl
movzx edx, byte [esi + 0x2b]
push 0x40
push ebx
mov byte [eax + 0x1c], dl
push edi
mov byte [esi + 0xac], bl
call fcn.1008e320
push 0x40
push ebx
add esi, 0x6c
push esi
call fcn.1008e320
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebx
ret
pop esi
mov eax, 0x1b0a0049
pop ebx
ret