Function at 0x7ffd10
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov esi, dword [esp + 0x30]
movzx ecx, word [esi + 6]
mov eax, ecx
shr eax, 4
and ax, 0x7ff
je 0x7ffd71
movzx edx, ax
cmp edx, 0x7ff
jne 0x7ffd82
mov ax, 2
test cl, 0xf
jne 0x80002a
mov ax, 2
cmp word [esi + 4], 0
jne 0x80002a
mov ax, 2
cmp word [esi + 2], 0
jne 0x80002a
cmp word [esi], 1
mov ax, 2
sbb ax, 0
jmp 0x80002a
mov dword [esp], esi
call fcn.007ffba4
test ax, ax
jg 0x7ffe07
mov ecx, dword [esp + 0x34]
cwde
test ecx, ecx
jle 0x7ffdba
mov edx, 0x7ff
sub edx, eax
cmp edx, ecx
jg 0x7ffdba
cmp word [esi + 6], 0
fld qword [0xad2380]
fld st(0)
fchs
js 0x7ffdad
fstp st(0)
fldz
fxch st(1)
fstp st(1)
fstp qword [esi]
mov ax, 1
jmp 0x80002a
mov edx, eax
neg edx
cmp edx, ecx
mov bx, word [esi + 6]
jge 0x7ffddc
and ebx, 0xffff800f
add eax, ecx
shl eax, 4
or eax, ebx
mov word [esi + 6], ax
jmp 0x800026
mov edi, ebx
and edi, 0x8000
and ebx, 0xf
or ebx, 0x10
mov word [esi + 6], bx
lea eax, [ecx + eax - 1]
cmp eax, 0xffffffca
ja 0x7ffe0e
mov word [esi + 6], di
mov word [esi + 4], 0
mov dword [esi], 0
xor eax, eax
jmp 0x80002a
mov ecx, eax
shl ecx, 0x10
cmp ecx, 0xfff0ffff
jg 0x7ffebc
mov ax, word [esi]
mov dword [esp + 0xc], eax
mov dx, word [esi + 2]
mov bp, word [esi + 4]
lea eax, [ecx + 0x100000]
cmp eax, 0xfff0ffff
jg 0x7ffec7
xor eax, eax
cmp word [esp + 0xc], 0
setne al
or edx, eax
mov dword [esp + 0xc], edx
lea eax, [ecx + 0x200000]
cmp eax, 0xfff0ffff
jg 0x7ffecf
xor eax, eax
cmp word [esp + 0xc], 0
setne al
or ebp, eax
mov ax, bp
mov dword [esp + 0xc], eax
lea eax, [ecx + 0x300000]
cmp eax, 0xfff0ffff
jg 0x7ffedc
xor edx, edx
cmp word [esp + 0xc], 0
setne byte [esp + 0xc]
add ecx, 0x400000
mov eax, ecx
sar eax, 0x10
cmp ecx, 0xfff0ffff
jg 0x7ffee8
shl eax, 0x10
mov ecx, eax
add ecx, 0x100000
mov eax, ecx
sar eax, 0x10
cmp ecx, 0xfff10000
jl 0x7ffe9e
mov cx, 1
jmp 0x7ffef3
cwde
mov dword [esp + 0xc], 0
jmp 0x7fff10
sar eax, 0x10
mov cx, bp
jmp 0x7ffefd
sar eax, 0x10
mov cx, bx
xor ebx, ebx
mov dx, bp
jmp 0x7ffefd
sar eax, 0x10
xor ecx, ecx
mov dx, bx
xor ebx, ebx
jmp 0x7ffefd
mov cl, byte [esp + 0xc]
mov dl, cl
movsx ecx, bx
or ecx, edx
mov dword [esp + 0xc], ecx
xor ebx, ebx
xor ecx, ecx
xor edx, edx
mov word [esi], dx
mov word [esi + 2], cx
mov word [esi + 4], bx
mov word [esi + 6], 0
xor ebx, ebx
neg eax
test ax, ax
je 0x7fff9f
cwde
mov dword [esp + 0x18], edi
movzx edi, word [esi]
mov edx, 0x10
sub edx, eax
mov dword [esp + 0x14], eax
mov ebp, edi
mov ecx, edx
mov dword [esp + 0x10], edx
shl ebp, cl
xor ecx, ecx
cmp word [esp + 0xc], 0
setne cl
or ecx, ebp
mov dword [esp + 0xc], ecx
mov ecx, eax
shr edi, cl
movzx eax, word [esi + 2]
mov ebp, eax
mov ecx, edx
shl ebp, cl
or ebp, edi
mov word [esi], bp
mov edx, dword [esp + 0x14]
mov ecx, edx
shr eax, cl
movzx edi, word [esi + 4]
mov ebp, edi
mov ecx, dword [esp + 0x10]
shl ebp, cl
or ebp, eax
mov word [esi + 2], bp
mov ecx, edx
shr edi, cl
movzx ebx, bx
mov eax, ebx
mov ecx, dword [esp + 0x10]
shl eax, cl
or eax, edi
mov edi, dword [esp + 0x18]
mov word [esi + 4], ax
mov ecx, edx
shr ebx, cl
mov word [esi + 6], bx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0xc], ebp
or ebx, edi
mov word [esi + 6], bx
cmp word [esp + 0xc], 0
je 0x800009
mov ecx, dword [esp + 0x38]
cmp ecx, 4
mov eax, 1
je 0x7fffbd
mov eax, ecx
test eax, eax
je 0x800009
cmp eax, 3
je 0x7fffd2
cmp eax, 2
jne 0x7fffd9
test di, di
je 0x7fffe5
jmp 0x800009
test di, di
jne 0x7fffe5
jmp 0x800009
movzx eax, word [esp + 0xc]
cmp eax, 0x8000
jbe 0x800002
inc word [esi]
jne 0x800009
inc word [esi + 2]
jne 0x800009
inc word [esi + 4]
jne 0x800009
inc ebx
mov word [esi + 6], bx
cmp bx, di
je 0x80000e
jmp 0x800026
jne 0x800009
test byte [esi], 1
jne 0x7fffe5
cmp bx, di
jne 0x800026
cmp word [esi + 4], 0
jne 0x800026
cmp word [esi + 2], 0
jne 0x800026
cmp word [esi], 0
je 0x7ffe07
mov ax, 0xffff
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret