Function at 0x844ab0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x848b70
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
sub edi, esi
sar edi, 5
inc edi
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx + 8]
sub ecx, esi
sar ecx, 5
mov eax, ecx
shr eax, 1
mov edx, 0x7ffffff
sub edx, eax
add eax, ecx
cmp eax, edi
mov dword [ebp - 0x2c], edi
cmovbe eax, edi
cmp ecx, edx
mov ecx, 0x7ffffff
cmova eax, ecx
cmp eax, 0x8000000
jae 0x8450b8
mov ecx, eax
shl ecx, 5
cmp eax, 0x80
mov dword [ebp - 0x28], ecx
jb 0x844b4e
cmp eax, 0x7ffffff
je 0x8450bd
lea eax, [ecx + 0x23]
push eax
call fcn.0091d7fd
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x844b61
test eax, eax
je 0x844b5f
push ecx
call fcn.0091d7fd
add esp, 4
mov edi, eax
jmp 0x844b61
xor edi, edi
nop
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ebx, eax
sub ebx, esi
movzx edx, byte [ecx]
mov byte [edi + ebx], dl
movzx edx, byte [ecx + 1]
mov byte [edi + ebx + 1], dl
movzx edx, byte [ecx + 2]
mov byte [edi + ebx + 2], dl
movzx edx, byte [ecx + 3]
mov byte [edi + ebx + 3], dl
movzx edx, byte [ecx + 4]
mov byte [edi + ebx + 4], dl
movzx edx, byte [ecx + 5]
mov byte [edi + ebx + 5], dl
movzx edx, byte [ecx + 6]
mov byte [edi + ebx + 6], dl
movzx edx, byte [ecx + 7]
mov byte [edi + ebx + 7], dl
movzx edx, byte [ecx + 8]
mov byte [edi + ebx + 8], dl
movzx edx, byte [ecx + 9]
mov byte [edi + ebx + 9], dl
movzx edx, byte [ecx + 0xa]
mov byte [edi + ebx + 0xa], dl
movzx edx, byte [ecx + 0xb]
mov byte [edi + ebx + 0xb], dl
movzx edx, byte [ecx + 0xc]
mov byte [edi + ebx + 0xc], dl
movzx edx, byte [ecx + 0xd]
mov byte [edi + ebx + 0xd], dl
movzx edx, byte [ecx + 0xe]
mov byte [edi + ebx + 0xe], dl
movzx edx, byte [ecx + 0xf]
mov byte [edi + ebx + 0xf], dl
movzx edx, byte [ecx + 0x10]
mov byte [edi + ebx + 0x10], dl
movzx edx, byte [ecx + 0x11]
mov byte [edi + ebx + 0x11], dl
movzx edx, byte [ecx + 0x12]
mov byte [edi + ebx + 0x12], dl
movzx edx, byte [ecx + 0x13]
mov byte [edi + ebx + 0x13], dl
movzx edx, byte [ecx + 0x14]
mov byte [edi + ebx + 0x14], dl
movzx edx, byte [ecx + 0x15]
mov byte [edi + ebx + 0x15], dl
movzx edx, byte [ecx + 0x16]
mov byte [edi + ebx + 0x16], dl
movzx edx, byte [ecx + 0x17]
mov byte [edi + ebx + 0x17], dl
movzx edx, byte [ecx + 0x18]
mov byte [edi + ebx + 0x18], dl
movzx edx, byte [ecx + 0x19]
mov byte [edi + ebx + 0x19], dl
movzx edx, byte [ecx + 0x1a]
mov byte [edi + ebx + 0x1a], dl
movzx edx, byte [ecx + 0x1b]
mov byte [edi + ebx + 0x1b], dl
movzx edx, byte [ecx + 0x1c]
mov byte [edi + ebx + 0x1c], dl
movzx edx, byte [ecx + 0x1d]
mov byte [edi + ebx + 0x1d], dl
movzx edx, byte [ecx + 0x1e]
mov byte [edi + ebx + 0x1e], dl
movzx ecx, byte [ecx + 0x1f]
mov dword [ebp - 0x24], ebx
mov byte [edi + ebx + 0x1f], cl
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov esi, dword [edx + 4]
cmp esi, eax
je 0x844f14
cmp ecx, eax
je 0x844dbf
xor edx, edx
nop word [eax + eax]
movzx ebx, byte [ecx + edx]
mov byte [edi + edx], bl
movzx ebx, byte [ecx + edx + 1]
mov byte [edi + edx + 1], bl
movzx ebx, byte [ecx + edx + 2]
mov byte [edi + edx + 2], bl
movzx ebx, byte [ecx + edx + 3]
mov byte [edi + edx + 3], bl
movzx ebx, byte [ecx + edx + 4]
mov byte [edi + edx + 4], bl
movzx ebx, byte [ecx + edx + 5]
mov byte [edi + edx + 5], bl
movzx ebx, byte [ecx + edx + 6]
mov byte [edi + edx + 6], bl
movzx ebx, byte [ecx + edx + 7]
mov byte [edi + edx + 7], bl
movzx ebx, byte [ecx + edx + 8]
mov byte [edi + edx + 8], bl
movzx ebx, byte [ecx + edx + 9]
mov byte [edi + edx + 9], bl
movzx ebx, byte [ecx + edx + 0xa]
mov byte [edi + edx + 0xa], bl
movzx ebx, byte [ecx + edx + 0xb]
mov byte [edi + edx + 0xb], bl
movzx ebx, byte [ecx + edx + 0xc]
mov byte [edi + edx + 0xc], bl
movzx ebx, byte [ecx + edx + 0xd]
mov byte [edi + edx + 0xd], bl
movzx ebx, byte [ecx + edx + 0xe]
mov byte [edi + edx + 0xe], bl
movzx ebx, byte [ecx + edx + 0xf]
mov byte [edi + edx + 0xf], bl
movzx ebx, byte [ecx + edx + 0x10]
mov byte [edi + edx + 0x10], bl
movzx ebx, byte [ecx + edx + 0x11]
mov byte [edi + edx + 0x11], bl
movzx ebx, byte [ecx + edx + 0x12]
mov byte [edi + edx + 0x12], bl
movzx ebx, byte [ecx + edx + 0x13]
mov byte [edi + edx + 0x13], bl
movzx ebx, byte [ecx + edx + 0x14]
mov byte [edi + edx + 0x14], bl
movzx ebx, byte [ecx + edx + 0x15]
mov byte [edi + edx + 0x15], bl
movzx ebx, byte [ecx + edx + 0x16]
mov byte [edi + edx + 0x16], bl
movzx ebx, byte [ecx + edx + 0x17]
mov byte [edi + edx + 0x17], bl
movzx ebx, byte [ecx + edx + 0x18]
mov byte [edi + edx + 0x18], bl
movzx ebx, byte [ecx + edx + 0x19]
mov byte [edi + edx + 0x19], bl
movzx ebx, byte [ecx + edx + 0x1a]
mov byte [edi + edx + 0x1a], bl
movzx ebx, byte [ecx + edx + 0x1b]
mov byte [edi + edx + 0x1b], bl
movzx ebx, byte [ecx + edx + 0x1c]
mov byte [edi + edx + 0x1c], bl
movzx ebx, byte [ecx + edx + 0x1d]
mov byte [edi + edx + 0x1d], bl
movzx ebx, byte [ecx + edx + 0x1e]
mov byte [edi + edx + 0x1e], bl
movzx ebx, byte [ecx + edx + 0x1f]
mov byte [edi + edx + 0x1f], bl
lea esi, [ecx + edx]
add esi, 0x20
add edx, 0x20
cmp esi, eax
jne 0x844c90
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 4]
cmp ecx, eax
je 0x84504f
mov edx, dword [ebp - 0x24]
add edx, edi
add edx, 0x3f
xor esi, esi
nop word [eax + eax]
movzx ebx, byte [eax + esi]
mov byte [edx + esi - 0x1f], bl
movzx ebx, byte [eax + esi + 1]
mov byte [edx + esi - 0x1e], bl
movzx ebx, byte [eax + esi + 2]
mov byte [edx + esi - 0x1d], bl
movzx ebx, byte [eax + esi + 3]
mov byte [edx + esi - 0x1c], bl
movzx ebx, byte [eax + esi + 4]
mov byte [edx + esi - 0x1b], bl
movzx ebx, byte [eax + esi + 5]
mov byte [edx + esi - 0x1a], bl
movzx ebx, byte [eax + esi + 6]
mov byte [edx + esi - 0x19], bl
movzx ebx, byte [eax + esi + 7]
mov byte [edx + esi - 0x18], bl
movzx ebx, byte [eax + esi + 8]
mov byte [edx + esi - 0x17], bl
movzx ebx, byte [eax + esi + 9]
mov byte [edx + esi - 0x16], bl
movzx ebx, byte [eax + esi + 0xa]
mov byte [edx + esi - 0x15], bl
movzx ebx, byte [eax + esi + 0xb]
mov byte [edx + esi - 0x14], bl
movzx ebx, byte [eax + esi + 0xc]
mov byte [edx + esi - 0x13], bl
movzx ebx, byte [eax + esi + 0xd]
mov byte [edx + esi - 0x12], bl
movzx ebx, byte [eax + esi + 0xe]
mov byte [edx + esi - 0x11], bl
movzx ebx, byte [eax + esi + 0xf]
mov byte [edx + esi - 0x10], bl
movzx ebx, byte [eax + esi + 0x10]
mov byte [edx + esi - 0xf], bl
movzx ebx, byte [eax + esi + 0x11]
mov byte [edx + esi - 0xe], bl
movzx ebx, byte [eax + esi + 0x12]
mov byte [edx + esi - 0xd], bl
movzx ebx, byte [eax + esi + 0x13]
mov byte [edx + esi - 0xc], bl
movzx ebx, byte [eax + esi + 0x14]
mov byte [edx + esi - 0xb], bl
movzx ebx, byte [eax + esi + 0x15]
mov byte [edx + esi - 0xa], bl
movzx ebx, byte [eax + esi + 0x16]
mov byte [edx + esi - 9], bl
movzx ebx, byte [eax + esi + 0x17]
mov byte [edx + esi - 8], bl
movzx ebx, byte [eax + esi + 0x18]
mov byte [edx + esi - 7], bl
movzx ebx, byte [eax + esi + 0x19]
mov byte [edx + esi - 6], bl
movzx ebx, byte [eax + esi + 0x1a]
mov byte [edx + esi - 5], bl
movzx ebx, byte [eax + esi + 0x1b]
mov byte [edx + esi - 4], bl
movzx ebx, byte [eax + esi + 0x1c]
mov byte [edx + esi - 3], bl
movzx ebx, byte [eax + esi + 0x1d]
mov byte [edx + esi - 2], bl
movzx ebx, byte [eax + esi + 0x1e]
mov byte [edx + esi - 1], bl
movzx ebx, byte [eax + esi + 0x1f]
mov byte [edx + esi], bl
lea ebx, [eax + esi]
add ebx, 0x20
add esi, 0x20
cmp ebx, ecx
jne 0x844de0
jmp 0x84504f
cmp ecx, esi
je 0x845055
xor eax, eax
nop
movzx edx, byte [ecx + eax]
mov byte [edi + eax], dl
movzx edx, byte [ecx + eax + 1]
mov byte [edi + eax + 1], dl
movzx edx, byte [ecx + eax + 2]
mov byte [edi + eax + 2], dl
movzx edx, byte [ecx + eax + 3]
mov byte [edi + eax + 3], dl
movzx edx, byte [ecx + eax + 4]
mov byte [edi + eax + 4], dl
movzx edx, byte [ecx + eax + 5]
mov byte [edi + eax + 5], dl
movzx edx, byte [ecx + eax + 6]
mov byte [edi + eax + 6], dl
movzx edx, byte [ecx + eax + 7]
mov byte [edi + eax + 7], dl
movzx edx, byte [ecx + eax + 8]
mov byte [edi + eax + 8], dl
movzx edx, byte [ecx + eax + 9]
mov byte [edi + eax + 9], dl
movzx edx, byte [ecx + eax + 0xa]
mov byte [edi + eax + 0xa], dl
movzx edx, byte [ecx + eax + 0xb]
mov byte [edi + eax + 0xb], dl
movzx edx, byte [ecx + eax + 0xc]
mov byte [edi + eax + 0xc], dl
movzx edx, byte [ecx + eax + 0xd]
mov byte [edi + eax + 0xd], dl
movzx edx, byte [ecx + eax + 0xe]
mov byte [edi + eax + 0xe], dl
movzx edx, byte [ecx + eax + 0xf]
mov byte [edi + eax + 0xf], dl
movzx edx, byte [ecx + eax + 0x10]
mov byte [edi + eax + 0x10], dl
movzx edx, byte [ecx + eax + 0x11]
mov byte [edi + eax + 0x11], dl
movzx edx, byte [ecx + eax + 0x12]
mov byte [edi + eax + 0x12], dl
movzx edx, byte [ecx + eax + 0x13]
mov byte [edi + eax + 0x13], dl
movzx edx, byte [ecx + eax + 0x14]
mov byte [edi + eax + 0x14], dl
movzx edx, byte [ecx + eax + 0x15]
mov byte [edi + eax + 0x15], dl
movzx edx, byte [ecx + eax + 0x16]
mov byte [edi + eax + 0x16], dl
movzx edx, byte [ecx + eax + 0x17]
mov byte [edi + eax + 0x17], dl
movzx edx, byte [ecx + eax + 0x18]
mov byte [edi + eax + 0x18], dl
movzx edx, byte [ecx + eax + 0x19]
mov byte [edi + eax + 0x19], dl
movzx edx, byte [ecx + eax + 0x1a]
mov byte [edi + eax + 0x1a], dl
movzx edx, byte [ecx + eax + 0x1b]
mov byte [edi + eax + 0x1b], dl
movzx edx, byte [ecx + eax + 0x1c]
mov byte [edi + eax + 0x1c], dl
movzx edx, byte [ecx + eax + 0x1d]
mov byte [edi + eax + 0x1d], dl
movzx edx, byte [ecx + eax + 0x1e]
mov byte [edi + eax + 0x1e], dl
movzx edx, byte [ecx + eax + 0x1f]
mov byte [edi + eax + 0x1f], dl
lea edx, [ecx + eax]
add edx, 0x20
add eax, 0x20
cmp edx, esi
jne 0x844f20
nop
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
test ecx, ecx
je 0x845086
nop
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
sub eax, ecx
cmp eax, 0x1000
jb 0x84507c
nop
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x8450c2
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.0091d82d
add esp, 8
nop
mov eax, dword [ebp - 0x24]
add eax, edi
mov edx, dword [ebp - 0x20]
mov dword [edx], edi
mov ecx, dword [ebp - 0x2c]
shl ecx, 5
add ecx, edi
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x28]
add ecx, edi
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret 8
call fcn.0066aec0
call fcn.0066aec0
nop
mov dword [ebp - 0x10], 0
call fcn.00900ce1
nop
push ebp
sub esp, 8
add ebp, 0xc
call fcn.009350a0
int3