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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x48]
sub rsp, 0x120
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x18009b200]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rsi, rdx
mov r15, rcx
cmp qword [0x18009c7f0], 0
je 0x180056b48
mov rcx, qword [0x18009b680]
call fcn.180005d90
test al, al
jne 0x180056b48
mov rcx, qword [0x18009b680]
call fcn.1800161e0
test al, al
jne 0x180056b48
mov rcx, qword [0x18009c800]
call fcn.180007020
test al, al
je 0x180056b48
mov rcx, qword [0x18009c808]
call fcn.180007020
test al, al
je 0x1800560c8
mov rcx, qword [0x18009c810]
call fcn.180007020
test al, al
je 0x180056b48
mov rcx, qword [0x18009c7f0]
mov rcx, qword [rcx + 0x88]
call fcn.180007020
test al, al
je 0x180056b48
mov rax, qword [0x18009c7f0]
mov r14d, dword [rax + 0x3c]
cmp r14d, 0xffffffff
je 0x180056b48
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006060
test eax, eax
jne 0x180056b48
mov rdi, qword [0x18009c7f0]
cmp byte [rdi + 0x20], al
je 0x180056154
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006050
mov rcx, rax
call fcn.180005b30
mov rcx, rax
call fcn.180005ae0
mov ebx, eax
mov rdi, qword [0x18009c7f0]
mov rcx, qword [rdi + 8]
call fcn.180068340
cmp ebx, eax
jne 0x180056b48
cmp byte [rdi + 0x21], 0
je 0x180056172
mov rcx, qword [0x18009b680]
call fcn.180005ee0
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x180056b48
mov rcx, rsi
call fcn.180005d80
mov rbx, qword [0x18009c7f0]
test al, al
jne 0x18005618e
cmp byte [rbx + 0x29], al
je 0x180056b48
mov eax, dword [rbx + 0x44]
cmp eax, 2
jne 0x180056894
mov eax, dword [rbx + 0x40]
cmp eax, 2
jne 0x180056753
cmp qword [rbx + 0x58], 0
je 0x180056b48
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x50], xmm1
xor r15d, r15d
mov qword [rbp - 0x40], r15
lea rcx, [rbx + 0x48]
mov dword [rbp - 0x30], 3
lea rdx, [rbp - 0x30]
call fcn.180026c10
test al, al
je 0x180056263
call fcn.180006e60
mov rdi, qword [rax + 8]
mov rbx, qword [rax]
cmp rbx, rdi
je 0x18005625c
nop dword [rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x180056253
mov byte [rsp + 0x20], 0
lea r9, [0x18009db18]
mov r8b, 1
mov rax, qword [0x18009c7f0]
movss xmm1, dword [rax + 0x2c]
call fcn.180006410
test al, al
je 0x180056253
mov rcx, qword [rbx]
call fcn.180005dd0
mov rcx, rax
call fcn.1800094b0
test al, al
je 0x180056253
mov rdx, qword [rbp - 0x48]
cmp rdx, qword [rbp - 0x40]
je 0x180056247
mov rax, qword [rbx]
mov qword [rdx], rax
add qword [rbp - 0x48], 8
jmp 0x180056253
mov r8, rbx
lea rcx, [rbp - 0x50]
call fcn.180012f20
add rbx, 8
cmp rbx, rdi
jne 0x1800561f0
mov rbx, qword [0x18009c7f0]
lea rcx, [rbx + 0x48]
mov dword [rbp - 0x30], 1
lea rdx, [rbp - 0x30]
call fcn.180026c10
movss xmm7, dword [0x18008e69c]
test al, al
je 0x1800563cc
call fcn.180006e90
mov r12, qword [rax + 8]
mov rsi, qword [rax]
cmp rsi, r12
je 0x180056325
nop dword [rax]
mov rcx, qword [rsi]
call fcn.180005dd0
mov rdi, rax
mov rcx, qword [0x18009b680]
call fcn.180005dd0
mov rbx, rax
mov rcx, qword [0x18009c7f0]
movaps xmm1, xmm7
movss xmm0, dword [rcx + 0x2c]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
mov rdx, rbx
mov rcx, rdi
call fcn.180003a20
comiss xmm6, xmm0
jb 0x180056318
mov rcx, qword [rsi]
call fcn.180005dd0
mov rcx, rax
call fcn.1800094b0
test al, al
je 0x180056318
mov rdx, qword [rbp - 0x48]
cmp rdx, qword [rbp - 0x40]
je 0x18005630c
mov rax, qword [rsi]
mov qword [rdx], rax
add qword [rbp - 0x48], 8
jmp 0x180056318
mov r8, rsi
lea rcx, [rbp - 0x50]
call fcn.180012f20
add rsi, 8
cmp rsi, r12
jne 0x1800562a0
call fcn.180006ea0
mov r12, qword [rax + 8]
mov rsi, qword [rax]
cmp rsi, r12
je 0x1800563c5
nop word [rax + rax]
mov rcx, qword [rsi]
call fcn.180005dd0
mov rdi, rax
mov rcx, qword [0x18009b680]
call fcn.180005dd0
mov rbx, rax
mov rcx, qword [0x18009c7f0]
movaps xmm1, xmm7
movss xmm0, dword [rcx + 0x2c]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
mov rdx, rbx
mov rcx, rdi
call fcn.180003a20
comiss xmm6, xmm0
jb 0x1800563b8
mov rcx, qword [rsi]
call fcn.180005dd0
mov rcx, rax
call fcn.1800094b0
test al, al
je 0x1800563b8
mov rdx, qword [rbp - 0x48]
cmp rdx, qword [rbp - 0x40]
je 0x1800563ac
mov rax, qword [rsi]
mov qword [rdx], rax
add qword [rbp - 0x48], 8
jmp 0x1800563b8
mov r8, rsi
lea rcx, [rbp - 0x50]
call fcn.180012f20
add rsi, 8
cmp rsi, r12
jne 0x180056340
mov rbx, qword [0x18009c7f0]
lea rcx, [rbx + 0x48]
mov dword [rbp - 0x30], 2
lea rdx, [rbp - 0x30]
call fcn.180026c10
test al, al
je 0x180056473
call fcn.180006e70
mov rdi, qword [rax + 8]
mov rbx, qword [rax]
cmp rbx, rdi
je 0x18005646c
nop dword [rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x180056463
mov byte [rsp + 0x20], 0
lea r9, [0x18009db18]
xor r8d, r8d
mov rax, qword [0x18009c7f0]
movss xmm1, dword [rax + 0x2c]
call fcn.180006410
test al, al
je 0x180056463
mov rcx, qword [rbx]
call fcn.180005dd0
mov rcx, rax
call fcn.1800094b0
test al, al
je 0x180056463
mov rdx, qword [rbp - 0x48]
cmp rdx, qword [rbp - 0x40]
je 0x180056457
mov rax, qword [rbx]
mov qword [rdx], rax
add qword [rbp - 0x48], 8
jmp 0x180056463
mov r8, rbx
lea rcx, [rbp - 0x50]
call fcn.180012f20
add rbx, 8
cmp rbx, rdi
jne 0x180056400
mov rbx, qword [0x18009c7f0]
lea rcx, [rbx + 0x48]
mov dword [rbp - 0x30], r15d
lea rdx, [rbp - 0x30]
call fcn.180026c10
test al, al
je 0x180056526
call fcn.180006e80
mov r12, qword [rax + 8]
mov rsi, qword [rax]
cmp rsi, r12
je 0x180056526
mov rcx, qword [rsi]
call fcn.180005dd0
mov rdi, rax
mov rcx, qword [0x18009b680]
call fcn.180005dd0
mov rbx, rax
mov rcx, qword [0x18009c7f0]
movaps xmm1, xmm7
movss xmm0, dword [rcx + 0x2c]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
mov rdx, rbx
mov rcx, rdi
call fcn.180003a20
comiss xmm6, xmm0
jb 0x180056519
mov rcx, qword [rsi]
call fcn.180005dd0
mov rcx, rax
call fcn.1800094b0
test al, al
je 0x180056519
mov rdx, qword [rbp - 0x48]
cmp rdx, qword [rbp - 0x40]
je 0x18005650d
mov rax, qword [rsi]
mov qword [rdx], rax
add qword [rbp - 0x48], 8
jmp 0x180056519
mov r8, rsi
lea rcx, [rbp - 0x50]
call fcn.180012f20
add rsi, 8
cmp rsi, r12
jne 0x1800564a1
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
cmp rcx, rax
je 0x18005670d
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rcx
mov qword [rbp - 0x80], rax
mov byte [rbp - 0x77], 1
mov qword [rbp - 0x70], 0xffffffffffffffff
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r15
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov byte [rsp + 0x49], 1
mov qword [rsp + 0x50], 0xffffffffffffffff
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x58]
call fcn.180026ca0
lea rax, [rsp + 0x30]
mov qword [rbp - 0x30], rax
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
cmp rcx, 0xffffffffffffffff
jne 0x180056639
mov rax, qword [rsp + 0x58]
cmp rax, rdx
je 0x1800565c0
mov rdx, rax
mov qword [rsp + 0x60], rax
nop word [rax + rax]
mov rax, qword [rsp + 0x38]
cmp rax, qword [rsp + 0x40]
je 0x18005660b
mov r8, rax
mov qword [rsp + 0x30], rax
add rax, 8
mov qword [rsp + 0x38], rax
cmp rdx, qword [rsp + 0x68]
je 0x1800565fa
mov rax, qword [r8]
mov qword [rdx], rax
mov rdx, qword [rsp + 0x60]
add rdx, 8
mov qword [rsp + 0x60], rdx
jmp 0x1800565c0
lea rcx, [rsp + 0x58]
call fcn.180012f20
mov rdx, qword [rsp + 0x60]
jmp 0x1800565c0
mov rcx, qword [rsp + 0x58]
mov r8, rdx
sub r8, rcx
cmp r8, 8
jb 0x18005666c
sar r8, 3
lea r9, [rsp + 0x30]
call fcn.1800543c0
mov qword [rsp + 0x50], r15
mov r8, r15
mov r9, qword [rsp + 0x58]
jmp 0x180056668
mov r9, qword [rsp + 0x58]
sub rdx, r9
sar rdx, 3
cmp rcx, rdx
jae 0x180056653
lea rax, [rcx + 1]
mov qword [rsp + 0x50], rax
lea r8, [rcx + 1]
cmovae r8, rcx
lea rax, [rcx + 1]
cmovae rax, rcx
cmp rax, rdx
jae 0x18005666c
mov r15, qword [r9 + r8*8]
lea rcx, [rsp + 0x30]
call fcn.18001ff20
nop
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x1800566c0
mov rax, qword [rbp - 0x58]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800566bb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800566bb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180080770
test r15, r15
je 0x180056709
mov byte [rsp + 0x20], 0
lea r9, [0x18009db18]
xor r8d, r8d
mov rax, qword [0x18009c7f0]
movss xmm1, dword [rax + 0x2c]
mov rcx, r15
call fcn.180006410
test al, al
je 0x180056709
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006050
xor r8d, r8d
mov rdx, r15
mov rcx, rax
call fcn.180005bd0
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180056b48
mov rdx, qword [rbp - 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056749
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180056749
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180080770
jmp 0x180056b48
cmp eax, 3
je 0x1800568a3
cmp eax, 1
je 0x180056b23
test eax, eax
jne 0x180056b48
xorps xmm0, xmm0
xor r15d, r15d
movdqu xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r15
cmp byte [rbx + 0x24], r15b
je 0x18005680d
movsd xmm1, qword [0x18009db18]
movsd qword [rbp - 0x30], xmm1
mov eax, dword [0x18009db20]
mov dword [rbp - 0x28], eax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8b, 1
lea edx, [r15 + 2]
movss xmm0, dword [rbx + 0x2c]
call fcn.180012b60
mov rdi, rax
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180056acf
mov rdx, qword [rbp - 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056abe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180056abe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
movsd xmm0, qword [0x18009db18]
movsd qword [rbp - 0x30], xmm0
mov eax, dword [0x18009db20]
mov dword [rbp - 0x28], eax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8b, 1
lea edx, [r9 + 2]
movss xmm0, dword [rbx + 0x2c]
call fcn.180012b60
mov rdi, rax
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180056acf
mov rdx, qword [rbp - 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056abe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180056abe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
cmp eax, 8
jne 0x1800568c1
cmp dword [rbx + 0x40], 3
jne 0x180056b48
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006050
xor edx, edx
mov rcx, rax
call fcn.180005b50
jmp 0x180056b48
test eax, eax
jne 0x1800568d5
mov eax, dword [rbx + 0x40]
cmp eax, 3
je 0x1800568a3
cmp eax, 1
jmp 0x180056b21
cmp eax, 7
jne 0x180056967
mov eax, dword [rbx + 0x40]
cmp eax, 3
je 0x1800568a3
cmp eax, 1
jne 0x180056b48
mov rcx, r15
call fcn.180012c80
mov rbx, rax
mov rcx, rsi
call fcn.180005dd0
mov r8, rax
lea rdx, [rbp - 0x50]
mov rcx, rbx
call fcn.180003f70
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.180003c50
mov rcx, rsi
call fcn.180005dd0
mov rbx, rax
movss xmm2, dword [0x18008e6bc]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x30]
call fcn.180003fa0
mov r8, rax
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.180003f40
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006050
lea rdx, [rbp - 0x20]
mov rcx, rax
jmp 0x180056b40
cmp eax, 5
je 0x180056899
cmp eax, 9
jne 0x180056b48
mov eax, dword [rbx + 0x40]
cmp eax, 3
jne 0x18005699b
mov rcx, qword [rbx + 0x18]
call fcn.180067af0
mov edx, eax
mov rcx, rsi
call fcn.180006200
test al, al
jmp 0x18005689d
test eax, eax
jne 0x180056b48
xorps xmm0, xmm0
xor r15d, r15d
movdqu xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r15
cmp byte [rbx + 0x24], r15b
je 0x180056a43
movsd xmm0, qword [0x18009db18]
movsd qword [rbp - 0x30], xmm0
mov eax, dword [0x18009db20]
mov dword [rbp - 0x28], eax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8b, 1
lea edx, [r15 + 2]
movss xmm0, dword [rbx + 0x2c]
call fcn.180012b60
mov rdi, rax
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180056acf
mov rdx, qword [rbp - 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056abe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180056abe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
movsd xmm0, qword [0x18009db18]
movsd qword [rbp - 0x30], xmm0
mov eax, dword [0x18009db20]
mov dword [rbp - 0x28], eax
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8b, 1
lea edx, [r9 + 2]
movss xmm0, dword [rbx + 0x2c]
call fcn.180012b60
mov rdi, rax
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x180056acf
mov rdx, qword [rbp - 0x40]
sub rdx, rcx
and rdx, 0xfffffffffffffff8
mov rax, rcx
cmp rdx, 0x1000
jb 0x180056abe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180056abe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180080770
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r15
test rdi, rdi
je 0x180056b23
mov byte [rsp + 0x20], 0
lea r9, [0x18009db18]
mov r8b, 1
movss xmm1, dword [0x18008e6dc]
mov rcx, rdi
call fcn.180006410
test al, al
je 0x180056b23
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006050
mov rbx, rax
mov rcx, rdi
call fcn.180005dd0
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.180005c50
test al, al
jne 0x180056b48
mov edx, r14d
mov rcx, qword [0x18009b680]
call fcn.180006050
mov rbx, rax
call fcn.180006f30
mov rcx, rbx
mov rdx, rax
xor r8d, r8d
call fcn.180005c50
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180080b80
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret