Function at 0x451b50
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
push edi
push ebx
call fcn.00450c80
mov esi, eax
add esp, 4
test esi, esi
jne 0x451b7d
push 0x44
call fcn.0041c510
add esp, 4
mov dword [0x4be26c], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov edx, dword [esi + 0x68]
mov ebp, dword [esi + 0x10]
mov ecx, 0x26
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
mov byte [esi + 0x2c], bl
mov byte [esi + 0x2d], bl
mov dword [esi + 0x68], edx
mov dword [esi + 0x10], ebp
mov eax, dword [0x496e80]
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x14], eax
mov ecx, dword [0x496e80]
inc ecx
mov dword [0x496e80], ecx
xor ecx, ecx
mov cl, byte [esi + 0x27]
movsx edi, dx
mov al, byte [ecx*4 + 0x4cf524]
movzx bx, byte [edi + 0x4cf74c]
test al, 8
mov eax, 0xffffffc0
jne 0x451bd8
mov eax, 0xffffffe0
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
and ebp, eax
and ecx, eax
mov ax, bp
mov dword [esp + 0x18], ecx
mov word [esi + 2], cx
mov word [esi], ax
sar cx, 5
sar ax, 5
mov dword [esp + 0x14], ebp
mov word [esp + 0x18], cx
mov word [esp + 0x14], ax
push edx
mov edx, dword [esp + 0x1c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x18]
push edx
push eax
push ebx
mov byte [esi + 6], 0
mov word [esi + 0x1a], cx
call fcn.00417320
add esp, 0x10
test eax, eax
jne 0x451c48
push 0x43
call fcn.0041c510
push esi
mov dword [0x4be26c], eax
call fcn.00450d40
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x2a], bl
mov byte [esi + 0x27], al
mov byte [esi + 0x25], al
mov cx, word [0x4be266]
neg cx
sbb ecx, ecx
and ebx, 0xffff
and ecx, 0x20
mov word [esi + 0x1e], cx
mov dx, word [ebx*2 + 0x496c98]
mov ecx, eax
mov ebx, 0xff
and ecx, ebx
xor eax, eax
mov word [esi + 0x1c], dx
mov ax, word [ecx*2 + 0x4cfd34]
test eax, eax
jg 0x451c96
mov eax, 1
mov word [esi + 0x22], ax
mov dl, byte [edi + 0x4cf9e4]
push esi
mov byte [esi + 0x26], dl
mov byte [esi + 0x28], bl
call fcn.00453c00
add esp, 4
mov byte [esi + 0x8d], 0x3c
cmp word [0x4be266], 0
jne 0x451d03
xor eax, eax
mov al, byte [esi + 0x27]
mov ecx, dword [eax*4 + 0x4cf524]
test ch, 8
je 0x451d03
mov cx, word [esi + 0x1a]
mov dx, word [esi + 0x18]
push ecx
push edx
call fcn.00416c00
mov edi, eax
push edi
mov ax, word [edi + 0x82]
mov word [esi + 0x82], ax
or byte [edi + 0x1e], 8
call fcn.00454fc0
push edi
call fcn.004514c0
add esp, 0x10
xor ecx, ecx
mov cl, byte [esi + 0x27]
mov al, byte [ecx + 0x4cfbc4]
test al, al
je 0x451d24
cmp word [0x4be266], 0
jne 0x451d24
mov byte [esi + 0x74], al
mov byte [esi + 0x26], bl
jmp 0x451d38
test byte [ecx*4 + 0x4cf524], 0x1f
je 0x451d38
call fcn.004798e0
and al, 7
mov byte [esi + 0xa], al
push 2
push esi
call fcn.00453050
add esp, 8
cmp word [0x4be266], 0
mov edi, pe_nt_image_headers32
je 0x451d56
or word [esi + 0x1e], di
mov ebp, dword [esp + 0x1c]
cmp bp, 0x3a
jl 0x451ed7
cmp bp, 0x68
jg 0x451ed7
mov byte [esi + 0x86], bl
mov byte [esi + 0x87], bl
call fcn.004798e0
xor edx, edx
mov ecx, 6
div ecx
cmp bp, 0x5d
mov byte [esi + 0x80], dl
je 0x451e85
cmp bp, 0x64
je 0x451e85
cmp word [0x4be266], 0
jne 0x451e89
xor eax, eax
push 0
mov al, byte [esi + 0x2c]
push esi
inc word [eax*2 + 0x4abf40]
or byte [esi + 0x1f], 1
mov byte [esi + 0x25], 0x75
call fcn.00454dc0
xor ecx, ecx
mov eax, 0x66666667
mov cx, word [esi + 0x22]
add esp, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp dx, 0x28
mov word [esi + 0x22], dx
jbe 0x451df7
mov word [esi + 0x22], 0x28
mov ecx, ebp
xor eax, eax
and ecx, 0xffff
mov ax, word [ecx*2 + 0x4cfd34]
test eax, eax
jg 0x451e12
mov eax, 1
sub ax, word [esi + 0x22]
xor edx, edx
mov word [esi + 0x8a], ax
mov ecx, dword [0x4ae21c]
xor eax, eax
mov al, byte [esi + 0x27]
test ecx, ecx
mov dl, byte [eax + 0x4cfe80]
mov edi, edx
je 0x451e7c
mov cl, byte [0x4b497e]
test cl, cl
je 0x451e73
mov cl, byte [esi + 0x2c]
mov edx, 1
shl edx, cl
test byte [0x4acc12], dl
jne 0x451e73
mov ecx, dword [eax*4 + 0x4cf524]
test ch, 0x10
je 0x451e73
and eax, 1
xor ecx, ecx
or al, 0x3a
mov cl, byte [eax + 0x4cfe80]
mov eax, ecx
cmp edi, eax
jl 0x451e73
mov edi, eax
test edi, edi
jne 0x451e7c
mov edi, 1
mov word [esi + 0x88], di
jmp 0x451e89
or word [esi + 0x1e], di
cmp bp, 0x5d
je 0x451e98
push esi
call fcn.004170c0
add esp, 4
mov al, byte [esi + 0x27]
mov edx, eax
and edx, ebx
test dword [edx*4 + 0x4cf524], 0x100000
je 0x451eb9
push 0xe
push esi
call fcn.00453130
add esp, 8
jmp 0x451f2a
cmp al, 0x64
jne 0x451eca
push 0x3b
push esi
call fcn.00453130
add esp, 8
jmp 0x451f2a
push 0x21
push esi
call fcn.00453130
add esp, 8
jmp 0x451f2a
xor eax, eax
mov al, byte [esi + 0x27]
test dword [eax*4 + 0x4cf524], 0x20000
je 0x451ef1
mov byte [esi + 0x74], 0x28
mov byte [esi + 0x26], 0x55
mov ecx, dword [esi + 0x18]
push esi
mov dword [esi + 0x6c], ecx
call fcn.00417240
or word [esi + 0x1e], di
xor edx, edx
mov dl, byte [esi + 0x27]
add esp, 4
mov eax, dword [edx*4 + 0x4cf524]
test ah, 4
je 0x451f2a
lea ecx, [esi + 0x7a]
mov eax, 6
mov word [ecx], 0xffff
dec eax
sub ecx, 2
test eax, eax
ja 0x451f1d
push esi
call fcn.00423ab0
push esi
call fcn.00417700
push esi
call fcn.0044c350
mov bl, byte [esi + 6]
add esp, 0xc
or bl, 0x20
mov byte [esi + 6], bl
call fcn.004798e0
mov cl, byte [esi + 7]
and al, 7
add cl, al
mov eax, esi
mov byte [esi + 7], cl
pop edi
pop esi
pop ebp
mov dword [0x4be26c], 0
pop ebx
ret