Function at 0x52f8c0
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x18]
cmp r12, qword [r14 + 0x10]
jbe 0x530106
sub rsp, 0x98
mov qword [rsp + 0x90], rbp
lea rbp, [rsp + 0x90]
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rbx
mov rax, qword [rsp + 0x98]
call fcn.004a1b60
mov rcx, qword [rsp + 0xb8]
nop dword [rax + rax]
test rcx, rcx
je 0x52fb42
cmp rcx, 1
je 0x52fadd
mov rdx, qword [rsp + 0xa8]
nop dword [rax + rax]
cmp rdx, rcx
je 0x52fa91
jl 0x52fa75
lea rax, [0x00794e78]
call fcn.004a0800
mov rdi, qword [rsp + 0xb8]
cmp qword [0x00794e78], rdi
jl 0x52fa2b
mov rcx, qword [rsp + 0xa8]
cmp rcx, 0x40
jle 0x52f9c5
mov rbx, qword [rsp + 0xb0]
movzx esi, byte [rbx]
mov byte [rsp + 0x2f], sil
movzx r8d, byte [rbx + 1]
mov byte [rsp + 0x2d], r8b
mov rdx, rcx
sub rcx, rdi
mov qword [rsp + 0x88], rcx
lea r9, [rcx + 1]
mov qword [rsp + 0x40], r9
mov r10, qword [rsp + 0xa0]
xor eax, eax
xor r11d, r11d
nop dword [rax]
jmp 0x52fe28
mov rax, qword [rsp + 0xa0]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x10], rax
mov qword [rsp + 0x18], rdi
call fcn.0043f760
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x88], rax
call fcn.004a1ba0
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rcx, qword [rsp + 0xb0]
movzx esi, byte [rcx]
mov byte [rsp + 0x2e], sil
movzx r8d, byte [rcx + 1]
mov byte [rsp + 0x2c], r8b
mov rdx, qword [rsp + 0xa8]
mov r9, rdx
sub rdx, rdi
mov qword [rsp + 0x88], rdx
lea r10, [rdx + 1]
mov qword [rsp + 0x38], r10
mov r11, qword [rsp + 0xa0]
xor eax, eax
xor ebx, ebx
jmp 0x52fb60
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xa0]
call fcn.0043f420
test al, al
je 0x52fac1
call fcn.004a1ba0
xor eax, eax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rax, qword [rsp + 0xb0]
movzx eax, byte [rax]
mov rcx, qword [rsp + 0xa0]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 8], rcx
mov byte [rsp + 0x10], al
call fcn.0043f8e0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x30], rax
call fcn.004a1ba0
mov rax, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
xor eax, eax
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rax, r15
mov rbx, r13
nop
cmp rax, r10
jge 0x52fdc9
cmp r9, rax
jbe 0x52fe1b
mov qword [rsp + 0x68], rbx
movzx r12d, byte [r11 + rax]
nop dword [rax]
cmp r12b, sil
je 0x52fc36
cmp r9, r10
jb 0x52fe10
lea r12, [rax + 1]
cmp r12, r10
ja 0x52fe05
mov qword [rsp + 0x58], rax
sub rdx, rax
mov rbx, rdx
neg rdx
sar rdx, 0x3f
and rdx, r12
add rdx, r11
mov qword [rsp], rdx
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], sil
call fcn.0043f8e0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x18]
test rax, rax
jl 0x52fdad
mov rsi, qword [rsp + 0x58]
lea rax, [rax + rsi]
lea rax, [rax + 1]
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x68]
movzx esi, byte [rsp + 0x2e]
mov rdi, qword [rsp + 0xb8]
movzx r8d, byte [rsp + 0x2c]
mov r9, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0xa0]
lea r12, [rax + 1]
nop word [rax + rax]
cmp r9, r12
jbe 0x52fdf8
mov qword [rsp + 0x80], rax
movzx r13d, byte [rax + r11 + 1]
nop word [rax + rax]
cmp r13b, r8b
jne 0x52fcf7
lea r13, [rax + rdi]
cmp r9, r13
jb 0x52fded
cmp rax, r13
ja 0x52fde5
mov qword [rsp + 0x78], r12
mov rdx, rdi
neg rdi
sar rdi, 0x3f
and rdi, rax
lea rsi, [rdi + r11]
mov rbx, rcx
mov rcx, rdx
mov rax, rsi
nop
call fcn.0043f420
test al, al
jne 0x52fd90
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x68]
movzx esi, byte [rsp + 0x2e]
mov rdi, qword [rsp + 0xb8]
movzx r8d, byte [rsp + 0x2c]
mov r9, qword [rsp + 0xa8]
mov r10, qword [rsp + 0x38]
mov r11, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x78]
lea r13, [rbx + 1]
mov r15, r12
sar r12, 4
add r12, 4
cmp r12, r13
jg 0x52fb59
cmp r15, r10
jge 0x52fb59
sub r9, rax
lea rbx, [r9 - 1]
mov rdx, rbx
neg rbx
sar rbx, 0x3f
and r15, rbx
lea rsi, [r15 + r11]
mov rbx, rdx
mov rax, rsi
call fcn.0043ebc0
nop dword [rax + rax]
test rax, rax
jge 0x52fd61
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov qword [rsp + 0x50], rax
call fcn.004a1ba0
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x50]
lea rax, [rcx + rax]
lea rax, [rax + 1]
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rcx, r13
call fcn.0049f580
mov rcx, r13
mov rdx, r9
call fcn.0049f500
mov rax, r12
mov rcx, r9
nop
call fcn.0049f4c0
mov rax, r12
mov rcx, r10
call fcn.0049f580
mov rcx, r10
mov rdx, r9
call fcn.0049f500
mov rcx, r9
nop
call fcn.0049f4c0
mov rax, r12
cmp rax, r9
jge 0x5300a9
cmp rdx, rax
jbe 0x5300f8
mov qword [rsp + 0x70], r11
movzx r12d, byte [r10 + rax]
cmp r12b, sil
je 0x52ff01
cmp rdx, r9
jb 0x5300f0
lea r12, [rax + 1]
nop word [rax + rax]
cmp r12, r9
ja 0x5300e5
mov qword [rsp + 0x60], rax
sub rcx, rax
mov rbx, rcx
neg rcx
sar rcx, 0x3f
and r12, rcx
lea rcx, [r10 + r12]
mov qword [rsp], rcx
mov qword [rsp + 8], rbx
mov byte [rsp + 0x10], sil
call fcn.0043f8e0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x18]
test rax, rax
jl 0x53008d
mov rsi, qword [rsp + 0x60]
lea rax, [rsi + rax]
lea rax, [rax + 1]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb0]
movzx esi, byte [rsp + 0x2f]
mov rdi, qword [rsp + 0xb8]
movzx r8d, byte [rsp + 0x2d]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x70]
lea r12, [rax + 1]
cmp rdx, r12
jbe 0x5300d5
mov qword [rsp + 0x80], rax
movzx r13d, byte [r10 + rax + 1]
nop dword [rax]
cmp r13b, r8b
jne 0x52ffb2
lea r13, [rax + rdi]
cmp rdx, r13
jb 0x5300cd
cmp rax, r13
ja 0x5300c5
mov qword [rsp + 0x78], r12
mov rcx, rdi
neg rdi
sar rdi, 0x3f
and rdi, rax
lea rdx, [r10 + rdi]
mov rax, rdx
call fcn.0043f420
nop dword [rax]
test al, al
jne 0x530070
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xb0]
movzx esi, byte [rsp + 0x2f]
mov rdi, qword [rsp + 0xb8]
movzx r8d, byte [rsp + 0x2d]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
inc r11
lea r13, [rax + 0x11]
sar r13, 0x3f
shr r13, 0x3d
lea r13, [r13 + rax]
lea r13, [r13 + 0x11]
sar r13, 3
cmp r13, r11
jge 0x52fe25
sub rdx, rax
lea rcx, [rdx - 1]
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and r12, rcx
lea rcx, [r12 + r10]
mov qword [rsp], rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
call fcn.0043f760
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x20]
test rax, rax
jl 0x530054
mov qword [rsp + 0x48], rax
call fcn.004a1ba0
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x48]
lea rax, [rcx + rax]
lea rax, [rax + 1]
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
call fcn.004a1ba0
mov rax, 0xffffffffffffffff
mov rbp, qword [rsp + 0x90]
add rsp, 0x98
ret
mov rcx, r13
call fcn.0049f580
mov rcx, r13
call fcn.0049f500
mov rax, r12
mov rcx, rdx
nop dword [rax + rax]
call fcn.0049f4c0
mov rax, r12
mov rcx, r9
call fcn.0049f580
mov rcx, r9
call fcn.0049f500
mov rcx, rdx
nop dword [rax + rax]
call fcn.0049f4c0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.0049cdc0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.0052f8c0