Function at 0x508bf0
Capabilities:
Enumerate pe sections

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x128
mov edi, dword [rdx]
mov rbx, rdx
mov r12, rcx
movzx ecx, byte [rdx + 4]
movzx edx, byte [rdx + 5]
movzx eax, byte [rbx + 6]
movzx ebp, byte [rbx + 8]
shl rdx, 8
movzx esi, byte [rbx + 0xe]
movzx r8d, byte [rbx + 0xa]
shl rax, 0x10
shl rbp, 8
movzx r10d, byte [rbx + 0x15]
movzx r9d, byte [rbx + 0x18]
or rdx, rax
movzx eax, byte [rbx + 9]
shl rsi, 8
movzx r13d, byte [rbx + 0x1a]
or rdx, rcx
movzx ecx, byte [rbx + 7]
shl r10, 8
movzx r14d, byte [rbx + 0x1e]
shl rax, 0x10
shl r9, 8
mov r11d, dword [rbx + 0x10]
or rbp, rax
movzx eax, byte [rbx + 0xb]
shl rdx, 6
or rbp, rcx
movzx ecx, byte [rbx + 0xc]
shl rax, 8
shl rbp, 5
shl rcx, 0x10
or rax, rcx
movzx ecx, byte [rbx + 0xf]
or rax, r8
movzx r8d, byte [rbx + 0xd]
shl rcx, 0x10
shl rax, 3
or rsi, rcx
movzx ecx, byte [rbx + 0x16]
or rsi, r8
movzx r8d, byte [rbx + 0x14]
shl rcx, 0x10
shl rsi, 2
or r10, rcx
movzx ecx, byte [rbx + 0x19]
or r10, r8
movzx r8d, byte [rbx + 0x17]
shl rcx, 0x10
shl r10, 7
or r9, rcx
movzx ecx, byte [rbx + 0x1c]
or r9, r8
movzx r8d, byte [rbx + 0x1b]
shl rcx, 0x10
shl r9, 5
shl r8, 8
or r8, rcx
movzx ecx, byte [rbx + 0x1f]
shl r14, 8
or r8, r13
movzx r13d, byte [rbx + 0x1d]
shl rcx, 0x10
shl r8, 4
or rcx, r14
or rcx, r13
shl rcx, 2
and ecx, 0x1fffffc
cmp rcx, 0x1fffffc
jne 0x508d80
cmp r8, 0xffffff0
jne 0x508d80
cmp r9, 0x1fffffe0
jne 0x508d80
cmp r10, 0x7fffff80
jne 0x508d80
mov r13d, 0xffffffff
cmp r11, r13
jne 0x508d80
cmp rsi, 0x3fffffc
jne 0x508d80
cmp rax, 0x7fffff8
jne 0x508d80
cmp rbp, 0x1fffffe0
jne 0x508d80
cmp rdx, 0x3fffffc0
jne 0x508d80
sub r13, 0x13
cmp rdi, r13
jle 0x508d80
nop word [rax + rax]
mov eax, 0xffffffff
jmp 0x508ff6
mov qword [r12 + 0x50], 1
lea r13, [rcx + 0x1000000]
mov qword [r12 + 0x58], 0
mov r14, r13
and r13, 0xfffffffffe000000
mov qword [r12 + 0x60], 0
sar r14, 0x19
sub rcx, r13
lea r15, [r14*8]
mov qword [rsp + 0x28], rcx
lea rcx, [rdx + 0x1000000]
mov qword [r12 + 0x68], 0
add r15, r14
mov qword [r12 + 0x70], 0
lea r14, [r14 + r15*2]
add r14, rdi
mov rdi, rcx
and rcx, 0xfffffffffe000000
sub rdx, rcx
sar rdi, 0x19
lea rcx, [rax + 0x1000000]
lea r13, [r14 + 0x2000000]
add rbp, rdi
mov rdi, rcx
and rcx, 0xfffffffffe000000
mov r15, r13
sar rdi, 0x19
sub rax, rcx
lea rcx, [r11 + 0x1000000]
sar r13, 0x1a
add rsi, rdi
mov rdi, rcx
and rcx, 0xfffffffffe000000
add r13, rdx
sub r11, rcx
sar rdi, 0x19
mov dword [r12 + 0x2c], r13d
lea rcx, [r9 + 0x1000000]
add r10, rdi
mov rdi, rcx
mov qword [rsp + 0x30], r11
and rcx, 0xfffffffffe000000
sar rdi, 0x19
sub r9, rcx
lea r11, [rsi + 0x2000000]
and r15, 0xfffffffffc000000
add r8, rdi
mov qword [rsp + 0x38], r9
sub r14, r15
lea r13, [r12 + 0x50]
lea rdi, [rbp + 0x2000000]
lea r9, [r10 + 0x2000000]
mov dword [r12 + 0x28], r14d
mov rdx, rdi
sar rdi, 0x1a
lea rcx, [r8 + 0x2000000]
lea r14, [rsp + 0xf0]
add rax, rdi
and rdx, 0xfffffffffc000000
lea rdi, [rsp + 0x90]
mov dword [r12 + 0x34], eax
mov rax, r11
sub rbp, rdx
sar r11, 0x1a
and rax, 0xfffffffffc000000
mov dword [r12 + 0x30], ebp
lea rbp, [r12 + 0x28]
sub rsi, rax
mov rax, r9
add r11, qword [rsp + 0x30]
sar r9, 0x1a
and rax, 0xfffffffffc000000
add r9, qword [rsp + 0x38]
mov dword [r12 + 0x3c], r11d
mov rdx, rbp
sub r10, rax
mov rax, rcx
sar rcx, 0x1a
add rcx, qword [rsp + 0x28]
and rax, 0xfffffffffc000000
mov dword [r12 + 0x40], r10d
sub r8, rax
mov dword [r12 + 0x44], r9d
mov dword [r12 + 0x38], esi
lea rsi, [rsp + 0x60]
mov dword [r12 + 0x48], r8d
mov dword [r12 + 0x4c], ecx
mov rcx, rsi
call sym.fe_sq
mov r8, qword [0x0099f720]
mov rdx, rsi
mov rcx, rdi
call sym.fe_mul
mov r8, r13
mov rdx, rsi
mov rcx, rsi
call sym.fe_sub
mov rdx, rdi
mov rcx, rdi
lea r13, [rsp + 0xc0]
call sym.fe_add
mov r8, rdi
mov rdx, rsi
mov rcx, r12
call sym.fe_divpowm1
mov rdx, r12
mov rcx, r13
call sym.fe_sq
mov r8, rdi
mov rdx, r13
mov rcx, r13
call sym.fe_mul
mov r8, rsi
mov rdx, r13
mov rcx, r14
call sym.fe_sub
call sym.fe_isnonzero
test eax, eax
jne 0x509010
mov rdx, r12
lea rcx, [rsp + 0x40]
call sym.fe_tobytes
movzx eax, byte [rsp + 0x40]
movzx edx, byte [rbx + 0x1f]
and eax, 1
shr dl, 7
cmp dl, al
je 0x508fe4
mov rcx, r12
call sym.fe_isnonzero
test eax, eax
je 0x508d70
mov rdx, r12
mov rcx, r12
call sym.fe_neg
lea rcx, [r12 + 0x78]
mov r8, rbp
mov rdx, r12
call sym.fe_mul
xor eax, eax
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8, rsi
mov rdx, r13
mov rcx, r14
call sym.fe_add
call sym.fe_isnonzero
test eax, eax
jne 0x508d70
mov r8, qword [0x0099f7a0]
mov rdx, r12
mov rcx, r12
call sym.fe_mul
jmp 0x508fa9