Function at 0x2b9be30
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x2b9c283
sub esp, 0x50
mov edx, dword [esp + 0x60]
test edx, edx
je 0x2b9be57
mov eax, dword [esp + 0x64]
jmp 0x2b9be5b
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x54]
movzx ebp, byte [ebx + 5]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x2b9be72
mov ebp, dword [ebx + 0x14]
cmp eax, ebp
jle 0x2b9be72
mov eax, ebp
mov ebp, eax
shl eax, 1
test eax, eax
jle 0x2b9bf95
movzx esi, byte [ebx + 9]
xchg esi, eax
test al, al
xchg esi, eax
je 0x2b9be9d
movzx esi, byte [ebx + 8]
xchg esi, eax
test al, al
xchg esi, eax
je 0x2b9be97
mov eax, ebp
shl eax, 2
lea esi, [eax + ebp - 1]
jmp 0x2b9beac
movzx esi, byte [ebx + 8]
xchg esi, eax
test al, al
xchg esi, eax
je 0x2b9beaa
add eax, 2
mov esi, eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x24], esi
mov eax, edx
movzx edx, byte [ebx + 4]
test dl, dl
je 0x2b9beed
mov edx, dword [ebx + 0x10]
cmp esi, edx
jge 0x2b9beed
mov ecx, edx
movzx edx, byte [ebx + 6]
test dl, dl
jne 0x2b9beed
mov dword [esp], ebx
sub ecx, esi
mov dword [esp + 4], ecx
call fcn.02b9ab20
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov edx, dword [ebx]
mov ecx, esi
mov esi, dword [edx + 4]
mov edi, ebp
mov ebp, dword [edx + 8]
mov edx, dword [edx]
movzx ebx, byte [ebx + 8]
test bl, bl
je 0x2b9bf81
mov ebx, dword [esp + 0x70]
cmp ebx, 0x10
jbe 0x2b9c276
mov dword [esp + 0x2c], esi
lea ebx, [esi + 2]
mov esi, dword [esp + 0x6c]
movzx esi, byte [esi + 0x10]
cmp ebp, ebx
jae 0x2b9bf6b
xchg esi, eax
mov byte [esp + 0x23], al
xchg esi, eax
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.02b27650
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ebx, [eax + 2]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
movzx esi, byte [esp + 0x23]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x2c]
mov byte [edx + ebx], 0x30
xchg esi, eax
mov byte [edx + ebx + 1], al
xchg esi, eax
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
jmp 0x2b9bfe7
movzx eax, byte [ebx + 4]
test al, al
je 0x2b9bfac
mov eax, dword [ebx + 0x10]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.02b9ab20
add esp, 0x50
ret
movzx ecx, byte [esp + 0x23]
mov eax, dword [esp + 0x4c]
mov byte [eax + edx], cl
xchg esi, ebx
mov byte [eax + edx + 1], bl
xchg esi, ebx
mov ecx, dword [esp + 0x28]
inc ecx
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], ecx
mov esi, ebx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x70]
mov ebx, dword [esp + 0x28]
cmp ebx, edi
jge 0x2b9c1fc
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x54]
movzx edx, byte [edx + 9]
test dl, dl
je 0x2b9c10d
test ebx, ebx
jle 0x2b9c109
lea edx, [esi + 1]
cmp ebp, edx
jae 0x2b9c063
mov dword [esp + 0x38], esi
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.02b27650
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x4c], edx
mov edx, eax
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x4c]
mov byte [ebx + esi], 0x20
mov esi, dword [esp + 0x54]
movzx esi, byte [esi + 8]
xchg esi, eax
test al, al
xchg esi, eax
je 0x2b9c105
mov esi, dword [esp + 0x70]
cmp esi, 0x10
jbe 0x2b9c26a
mov dword [esp + 0x34], edx
lea esi, [edx + 2]
mov edx, dword [esp + 0x6c]
movzx edx, byte [edx + 0x10]
cmp ebp, esi
jb 0x2b9c0a1
test eax, eax
jmp 0x2b9c0ef
mov byte [esp + 0x23], dl
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.02b27650
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea esi, [ecx + 2]
mov ecx, dword [esp + 0x60]
test ecx, ecx
mov ecx, dword [esp + 0x24]
movzx edx, byte [esp + 0x23]
mov edi, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x34]
mov byte [ebx + esi], 0x30
mov byte [ebx + esi + 1], dl
mov edx, dword [esp + 0x2c]
jmp 0x2b9c115
test eax, eax
jmp 0x2b9c115
test eax, eax
jmp 0x2b9c10f
test eax, eax
mov edx, esi
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], ebp
je 0x2b9c135
mov esi, dword [esp + 0x64]
mov ebx, dword [esp + 0x28]
cmp esi, ebx
jbe 0x2b9c261
movzx esi, byte [eax + ebx]
jmp 0x2b9c154
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x28]
cmp esi, ebx
jbe 0x2b9c258
mov ebp, dword [esp + 0x58]
movzx ebp, byte [ebp + ebx]
mov esi, ebp
mov ebp, dword [esp + 0x30]
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
xchg esi, eax
shr al, 4
xchg esi, eax
xchg esi, eax
movzx eax, al
xchg esi, eax
mov ebx, dword [esp + 0x70]
cmp ebx, esi
jbe 0x2b9c24f
mov ebp, dword [esp + 0x6c]
movzx esi, byte [esi + ebp]
xchg esi, eax
mov byte [esp + 0x23], al
xchg esi, eax
movzx esi, byte [esp + 0x21]
and esi, 0xf
cmp ebx, esi
jbe 0x2b9c246
lea ebx, [edx + 2]
movzx esi, byte [esi + ebp]
mov ebp, dword [esp + 0x30]
cmp ebp, ebx
jae 0x2b9bfb0
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov dword [esp + 0x2c], edx
lea eax, [0x2d0e7c0]
mov dword [esp], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
call fcn.02b27650
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
add eax, 2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x4c], ebx
mov ebx, eax
mov eax, dword [esp + 0x60]
jmp 0x2b9bfb0
mov ebx, dword [esp + 0x54]
mov edi, dword [ebx]
mov dword [edi + 4], esi
mov dword [edi + 8], ebp
mov ebp, dword [0x311e9a0]
test ebp, ebp
jne 0x2b9c216
mov dword [edi], edx
jmp 0x2b9c21d
mov eax, edx
call fcn.02b3e880
movzx eax, byte [ebx + 4]
test al, al
je 0x2b9c242
mov eax, dword [ebx + 0x10]
cmp ecx, eax
jge 0x2b9c242
movzx edx, byte [ebx + 6]
test dl, dl
je 0x2b9c242
mov dword [esp], ebx
sub eax, ecx
mov dword [esp + 4], eax
call fcn.02b9ab20
add esp, 0x50
ret
mov eax, esi
mov ecx, ebx
call fcn.02b3e900
mov eax, esi
mov ecx, ebx
call fcn.02b3e900
mov eax, ebx
mov ecx, esi
call fcn.02b3e900
mov eax, ebx
mov ecx, esi
call fcn.02b3e900
mov eax, 0x10
mov ecx, esi
call fcn.02b3e900
mov eax, 0x10
mov ecx, ebx
call fcn.02b3e900
nop
call fcn.02b3d440
jmp fcn.02b9be30