Function at 0x525660
Capabilities:
Resolve function by parsing pe exports

Disassembly:
lea r12, [rsp - 0x148]
cmp r12, qword [r14 + 0x10]
jbe 0x526246
sub rsp, 0x1c8
mov qword [rsp + 0x1c0], rbp
lea rbp, [rsp + 0x1c0]
mov qword [rsp + 0x1d8], rbx
mov qword [rsp + 0x1b8], rbx
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1e8], rdi
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x1f8], r8
mov qword [rsp + 0x1f0], rsi
call fcn.0040de00
mov qword [rsp + 0x1b0], rax
lea rax, [0x0055f020]
call fcn.0040d2c0
mov qword [rsp + 0x158], rax
cmp dword [0x0073fd80], 0
jne 0x5256f9
mov rcx, qword [rsp + 0x1b0]
mov qword [rax + 8], rcx
jmp 0x52570a
lea rdi, [rax + 8]
mov rcx, qword [rsp + 0x1b0]
call fcn.00461920
lea rax, [0x0054f2c0]
mov ebx, 1
call fcn.00405080
mov qword [rsp + 0x1a8], rax
mov ebx, 1
lea rax, [0x0054f2c0]
call fcn.00405080
mov qword [rsp + 0x1a0], rax
mov ebx, 1
lea rax, [0x0054f0c0]
call fcn.00405080
mov qword [rsp + 0x198], rax
mov ebx, 1
lea rax, [0x0054f140]
call fcn.00405080
mov qword [rsp + 0x190], rax
lea rax, [0x005740e0]
call fcn.0040d2c0
mov qword [rsp + 0x180], rax
mov rcx, qword [rsp + 0x1b8]
mov qword [rax], rcx
cmp dword [0x0073fd80], 0
jne 0x5257fe
mov rcx, qword [rsp + 0x1e0]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x158]
mov qword [rax + 0x18], rcx
mov rcx, qword [rsp + 0x1e8]
mov qword [rax + 0x88], rcx
mov rcx, qword [rsp + 0x1a8]
mov qword [rax + 0x90], rcx
mov rcx, qword [rsp + 0x1a0]
mov qword [rax + 0x98], rcx
mov rcx, qword [rsp + 0x198]
mov qword [rax + 0xa0], rcx
mov rcx, qword [rsp + 0x190]
mov qword [rax + 0xa8], rcx
jmp 0x52588d
lea rdi, [rax + 8]
mov rcx, qword [rsp + 0x1e0]
call fcn.00461920
lea rdi, [rax + 0x18]
mov rcx, qword [rsp + 0x158]
nop dword [rax + rax]
call fcn.00461920
lea rdi, [rax + 0x88]
mov rcx, qword [rsp + 0x1e8]
call fcn.00461920
lea rdi, [rax + 0x90]
mov rcx, qword [rsp + 0x1a8]
call fcn.00461920
lea rdi, [rax + 0x98]
mov rcx, qword [rsp + 0x1a0]
nop dword [rax]
call fcn.00461920
lea rdi, [rax + 0xa0]
mov rcx, qword [rsp + 0x198]
call fcn.00461920
lea rdi, [rax + 0xa8]
mov rcx, qword [rsp + 0x190]
call fcn.00461920
lea rax, [0x0055ca80]
call fcn.0040d2c0
lea rcx, [0x00526300]
mov qword [rax], rcx
cmp dword [0x0073fd80], 0
jne 0x5258ba
mov rcx, qword [rsp + 0x180]
mov qword [rax + 8], rcx
jmp 0x5258cb
lea rdi, [rax + 8]
mov rcx, qword [rsp + 0x180]
call fcn.00461920
call fcn.00440200
lea rax, [0x0055cb00]
call fcn.0040d2c0
lea rcx, [0x005262a0]
mov qword [rax], rcx
cmp dword [0x0073fd80], 0
jne 0x5258fd
mov rcx, qword [rsp + 0x180]
mov qword [rax + 8], rcx
jmp 0x52590e
lea rdi, [rax + 8]
mov rcx, qword [rsp + 0x180]
call fcn.00461920
call fcn.00440200
jmp 0x525923
mov rax, qword [rsp + 0x1d0]
mov word [rax + 0x12], 0x210
mov rax, qword [rsp + 0x1d0]
call fcn.00524fc0
test rbx, rbx
jne 0x525bc3
mov word [rax], 1
nop
lea rbx, [0x005ddcd8]
mov rcx, rax
xor edi, edi
mov rsi, qword [rsp + 0x1f0]
mov r8, qword [rsp + 0x1f8]
mov rax, qword [rsp + 0x180]
call fcn.005269a0
test rbx, rbx
jne 0x525bb1
mov qword [rsp + 0x160], rax
mov rbx, rax
mov rax, qword [rsp + 0x180]
call fcn.00527520
test rdi, rdi
jne 0x525b99
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rcx
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
xor eax, eax
call fcn.00528020
test rdi, rdi
jne 0x525b81
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x40], rcx
call fcn.004d51e0
test al, al
jne 0x525b47
mov rdx, qword [rsp + 0x40]
cmp rdx, 6
jb 0x526239
mov rsi, qword [rsp + 0x168]
movzx edi, word [rsi + 4]
nop word [rax + rax]
cmp di, 0x2ff
je 0x525915
mov r8, qword [rsp + 0x1d0]
movzx r9d, word [r8 + 0x12]
test r9w, r9w
je 0x525a61
nop
cmp di, r9w
je 0x525a61
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x1b
lea rcx, [0x005810e1]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
nop
ret
cmp byte [r8], 0
je 0x525a6e
mov edi, 1
jmp 0x525a7c
movzx edi, word [rsi + 2]
test di, 2
setne dil
nop
mov rax, qword [rsp + 0x180]
mov byte [rax + 0x38], dil
cmp rdx, 0x1c
jb 0x52622f
mov edi, dword [rsi + 0x18]
and edi, 0x44
mov dword [rax + 0x3c], edi
nop
movzx edi, word [rsi + 4]
mov word [rax + 0x28], di
cmp rdx, 0x20
jb 0x526225
mov edi, dword [rsi + 0x1c]
mov dword [rax + 0x2c], edi
cmp rdx, 0x24
jb 0x526219
mov edi, dword [rsi + 0x20]
mov dword [rax + 0x30], edi
cmp rdx, 0x28
jb 0x52620f
mov edi, dword [rsi + 0x24]
mov dword [rax + 0x34], edi
mov qword [rax + 0x20], 1
cmp word [rax + 0x28], 0x311
jne 0x525b33
nop
cmp rdx, 0x40
jb 0x526205
mov edi, dword [rsi + 0x3c]
cmp edi, 0x40
jae 0x525b02
xor r8d, r8d
xor ecx, ecx
xor edi, edi
nop
jmp 0x525b29
add edi, 0xffffffc0
mov rcx, qword [rsp + 0x38]
cmp rcx, rdi
jb 0x5261fd
sub rdx, rdi
sub rcx, rdi
mov r8, rdx
neg rdx
sar rdx, 0x3f
and rdi, rdx
add rdi, rsi
nop
movzx esi, word [rsi + 6]
jmp 0x525be0
xor ebx, ebx
xor ecx, ecx
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x20
lea rcx, [0x0058319e]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor eax, eax
mov rbx, rdi
mov rcx, rsi
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor eax, eax
mov rbx, rdi
mov rcx, rsi
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
dec esi
mov r8, r11
nop word [rax + rax]
test si, si
jbe 0x525fbc
nop
cmp rcx, 8
jl 0x525f82
movzx r9d, word [rdi + 2]
lea r10, [r9 + 8]
nop
nop
cmp rcx, r10
jl 0x525f82
mov word [rsp + 0x36], si
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x178], rdi
nop
nop
movzx r10d, word [rdi]
cmp r10w, 1
je 0x525cd9
cmp r10w, 2
jne 0x525ec4
nop
add r9d, 8
movzx r9d, r9w
cmp r8, r9
jb 0x5261f2
cmp r9, 8
jb 0x5261e5
nop
lea rdx, [r8 - 8]
neg rdx
sar rdx, 0x3f
and edx, 8
lea r10, [rdi + rdx]
add r9, 0xfffffffffffffff8
cmp r9, 2
jl 0x525f0e
movzx ebx, word [rdi + rdx]
lea rdx, [rbx + rbx]
lea rdx, [rdx + 2]
nop
cmp rdx, r9
jg 0x525f0e
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x148], r10
nop
lea rax, [0x00550740]
mov rcx, rbx
call fcn.00448ca0
mov rdx, qword [rsp + 0x60]
lea rsi, [rdx - 0xa]
mov rdi, rsi
neg rsi
sar rsi, 0x3f
and esi, 2
mov r8, qword [rsp + 0x148]
add rsi, r8
mov rcx, qword [rsp + 0x68]
xor ebx, ebx
jmp 0x5260ee
nop
add r9d, 8
movzx r9d, r9w
cmp r8, r9
jb 0x5260be
cmp r9, 8
jb 0x5260b1
nop
lea rdx, [r8 - 8]
neg rdx
sar rdx, 0x3f
and edx, 8
lea r10, [rdi + rdx]
add r9, 0xfffffffffffffff8
cmp r9, 4
jl 0x525f48
movzx ebx, word [rdi + rdx]
movzx edx, word [rdi + rdx + 2]
lea rdx, [rdx + rbx*2]
lea rdx, [rdx + 4]
nop
nop
cmp rdx, r9
jg 0x525f48
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x150], r10
nop
lea rax, [0x00550740]
mov rcx, rbx
call fcn.00448ca0
mov rdx, qword [rsp + 0x60]
lea rsi, [rdx - 0xc]
mov rdi, rsi
neg rsi
sar rsi, 0x3f
and esi, 4
mov r8, qword [rsp + 0x150]
add rsi, r8
mov rcx, qword [rsp + 0x68]
xor ebx, ebx
jmp 0x525ff5
cmp rcx, 1
jne 0x526056
movzx ecx, word [rax]
mov rbx, qword [rsp + 0x180]
mov word [rbx + 0x40], cx
nop dword [rax]
cmp cx, 1
jne 0x52601c
nop
movups xmmword [rsp + 0x70], xmm15
lea rdi, [rsp + 0x78]
lea rdi, [rdi - 0x30]
nop word [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00461f62
mov rbp, qword [rbp]
mov qword [rsp + 0x140], 7
lea rax, [rsp + 0x70]
call fcn.004e3000
mov rcx, qword [rsp + 0x180]
lea rbx, [rcx + 0x42]
mov qword [rsp + 0x188], rbx
lea rax, [rsp + 0x70]
mov edi, 0x40
mov rcx, rdi
call fcn.004e3c40
mov rcx, qword [rsp + 0x160]
mov rbx, qword [rcx + 0x18]
mov rdx, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
lea rax, [rsp + 0x70]
mov rcx, rdx
call fcn.004e3c40
lea rax, [rsp + 0x70]
mov rbx, qword [rsp + 0x188]
xor ecx, ecx
mov edi, 0x40
call fcn.004e3ea0
lea rax, [rsp + 0x70]
call fcn.004e3000
lea rax, [rsp + 0x70]
mov rbx, qword [rsp + 0x188]
mov ecx, 0x40
mov rdi, rcx
call fcn.004e3c40
lea rax, [rsp + 0x70]
mov rbx, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
call fcn.004e3c40
lea rax, [rsp + 0x70]
mov rbx, qword [rsp + 0x188]
xor ecx, ecx
mov edi, 0x40
nop dword [rax]
call fcn.004e3ea0
mov rax, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x58]
movzx esi, word [rsp + 0x36]
mov rdi, qword [rsp + 0x178]
mov r8, qword [rsp + 0x60]
nop
nop
nop
nop
movzx r9d, word [rdi + 2]
add r9, 0xf
mov r10, r9
and r9, 0xfffffffffffffff8
cmp rcx, r9
jge 0x525ee9
xor r11d, r11d
xor ecx, ecx
xor edi, edi
jmp 0x525bd5
jb 0x526093
sub r8, r9
mov r11, r8
neg r8
sar r8, 0x3f
and r10, r8
sub rcx, r9
and r10, 0xfffffffffffffff8
add rdi, r10
jmp 0x525bd5
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x21
lea rcx, [0x0058399e]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x1f
lea rcx, [0x00582b38]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x1f
lea rcx, [0x00582b57]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
xor ebx, ebx
xor ecx, ecx
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov r8, rdx
sub rdx, rbx
lea r10, [rdx - 0xc]
neg r10
sar r10, 0x3f
and rbx, r10
movzx r10d, word [rsi + rbx]
mov word [rax + r9*2], r10w
lea rbx, [r9 + 1]
mov rdx, r8
cmp rbx, rcx
jge 0x525d80
lea r8, [rbx + rbx]
lea r8, [r8 + 2]
cmp r8, rdi
ja 0x5260a6
mov r9, rbx
shl rbx, 1
cmp r8, rbx
jae 0x525fd0
jmp 0x52609b
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x16
lea rcx, [0x0057eb29]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
lea rax, [0x0055b680]
nop dword [rax]
call fcn.0040d2c0
mov qword [rax + 8], 0x18
lea rcx, [0x0057f875]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov rax, r9
call fcn.00461d80
mov rax, rbx
mov rcx, r8
call fcn.00461d80
mov rcx, r8
mov rdx, rdi
call fcn.00461d40
mov eax, 8
mov rcx, r9
call fcn.00461d80
mov rcx, r9
mov rdx, r8
call fcn.00461d40
mov r8, rdx
sub rdx, rbx
lea r10, [rdx - 0xa]
neg r10
sar r10, 0x3f
and rbx, r10
movzx r10d, word [rsi + rbx]
mov word [rax + r9*2], r10w
lea rbx, [r9 + 1]
mov rdx, r8
cmp rbx, rcx
jge 0x526119
lea r8, [rbx + rbx]
lea r8, [r8 + 2]
nop dword [rax + rax]
cmp r8, rdi
ja 0x5261d8
mov r9, rbx
shl rbx, 1
cmp r8, rbx
jae 0x5260c9
jmp 0x5261cd
cmp rcx, 1
jne 0x526193
movzx esi, word [rax]
mov rax, qword [rsp + 0x180]
mov word [rax + 0x82], si
cmp si, 1
je 0x52613d
cmp si, 2
jne 0x526157
mov rcx, qword [rsp + 0x58]
movzx esi, word [rsp + 0x36]
mov rdi, qword [rsp + 0x178]
mov r8, rdx
jmp 0x525ec4
lea rax, [0x0055b680]
nop
call fcn.0040d2c0
mov qword [rax + 8], 0x18
lea rcx, [0x0057f9dd]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
lea rax, [0x0055b680]
call fcn.0040d2c0
mov qword [rax + 8], 0x1a
lea rcx, [0x00580791]
mov qword [rax], rcx
lea rbx, [0x005dd2e0]
mov rcx, rax
xor eax, eax
mov rbp, qword [rsp + 0x1c0]
add rsp, 0x1c8
ret
mov rax, rbx
mov rcx, r8
call fcn.00461d80
mov rcx, r8
mov rdx, rdi
nop
call fcn.00461d40
mov eax, 8
mov rcx, r9
call fcn.00461d80
mov rcx, r9
mov rdx, r8
call fcn.00461d40
mov eax, edi
nop
call fcn.00461d80
mov ecx, 0x40
call fcn.00461d40
mov ecx, 0x28
call fcn.00461d40
mov ecx, 0x24
nop
call fcn.00461d40
mov ecx, 0x20
call fcn.00461d40
mov ecx, 0x1c
call fcn.00461d40
mov ecx, 6
nop
call fcn.00461d40
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call fcn.0045f5e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp fcn.00525660