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

Disassembly:
lea r12, [rsp - 0x2c0]
cmp r12, qword [r14 + 0x10]
jbe 0x641445
sub rsp, 0x340
mov qword [rsp + 0x338], rbp
lea rbp, [rsp + 0x338]
mov qword [rsp + 0x358], rcx
mov qword [rsp + 0x350], rbx
mov qword [rsp + 0x348], rax
mov qword [rsp + 0x360], rdi
mov qword [rsp + 0xe0], rcx
test rcx, rcx
je 0x6406ec
test rbx, rbx
jne 0x6406ec
nop dword [rax + rax]
test rdi, rdi
je 0x6406ec
xor edx, edx
jmp 0x6413c9
mov eax, 1
call fcn.00641de0
test rax, rax
je 0x640942
mov qword [rsp + 0x80], rax
movups xmmword [rsp + 0x130], xmm15
call fcn.0040ae40
lea rcx, [0x0065d9a0]
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rax
mov rbx, qword [0x008a8c50]
lea rax, [0x0072e780]
mov edi, 0x14
lea rsi, [rsp + 0x130]
mov r8d, 1
mov r9, r8
lea rcx, [0x006adf48]
call fcn.004b9480
mov rcx, qword [rsp + 0x80]
mov rdx, rcx
nop
mov ecx, dword [rcx + 0x3c]
add rcx, rdx
test rcx, rcx
je 0x640930
mov ecx, dword [rcx + 0x50]
nop word [rax + rax]
test ecx, ecx
je 0x64091e
mov dword [rsp + 0x44], ecx
nop
lea rax, [0x00683560]
call fcn.0040d780
cmp dword [0x00900190], 0
jne 0x6407af
mov rcx, qword [rsp + 0x80]
mov qword [rax], rcx
jmp 0x6407bf
mov rdi, rax
mov rcx, qword [rsp + 0x80]
call fcn.00464c20
mov qword [rsp + 0x90], rax
mov ecx, dword [rsp + 0x44]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
mov rdx, qword [rax]
mov qword [rsp + 0xc0], rdx
lea rax, [0x0068b060]
call fcn.0040d780
cmp dword [0x00900190], 0
jne 0x640802
mov rdx, qword [rsp + 0x90]
mov qword [rax], rdx
nop
jmp 0x640812
mov rdi, rax
mov rdx, qword [rsp + 0x90]
call fcn.00464c40
mov rdx, qword [rsp + 0x80]
mov qword [rax + 8], rdx
mov esi, dword [rsp + 0x44]
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rsi
cmp dword [0x00900190], 0
jne 0x640842
mov rdi, qword [rsp + 0xc0]
mov qword [rax + 0x10], rdi
nop
jmp 0x640853
lea rdi, [rax + 0x10]
mov r8, qword [rsp + 0xc0]
call fcn.00464ca0
mov qword [rax + 0x28], rsi
nop
mov rbx, rax
mov ecx, 1
lea rax, [0x0072e400]
call fcn.0063b9e0
test rbx, rbx
jne 0x64090c
mov qword [rsp + 0xe8], rax
nop dword [rax]
call fcn.0063ae80
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x78], rbx
call fcn.004a6800
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], rcx
mov rcx, qword [rsp + 0x140]
bt rcx, 0x3f
jae 0x6408d8
mov rdx, rcx
shl rcx, 1
shr rcx, 0x1f
movabs rsi, 0xdd7b17f80
lea rbx, [rcx + rsi]
jmp 0x6408db
mov rdx, rcx
imul rcx, rbx, 0x3b9aca00
and edx, 0x3fffffff
movsxd rdx, edx
add rcx, rdx
movabs rdx, 0xa1b203eb3d1a0000
lea rbx, [rdx + rcx]
mov rax, qword [0x008a8b30]
call fcn.004c2400
xor eax, eax
jmp 0x640959
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x78]
nop
cmp rcx, rax
jle 0x640abb
mov qword [rsp + 0x68], rax
lea rbx, [rax + 1]
mov qword [rsp + 0x48], rbx
mov rcx, qword [0x008a8b30]
mov rax, rcx
call fcn.004c26a0
mov rcx, qword [rsp + 0x68]
lea rcx, [rcx + rcx*2]
shl rcx, 4
mov rdx, qword [rsp + 0xb8]
lea rbx, [rcx + rdx]
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x1e8], xmm0
lea rsi, [rcx + rdx]
lea rsi, [rsi + 0x10]
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x1f8], xmm0
lea rcx, [rcx + rdx]
lea rcx, [rcx + 0x20]
movups xmm0, xmmword [rcx]
movups xmmword [rsp + 0x208], xmm0
mov rcx, qword [rsp + 0x78]
cmp rax, rcx
jae 0x6413b2
lea rdi, [rax + rax*2]
shl rdi, 4
lea r8, [rdi + rdx]
cmp dword [0x00900190], 0
jne 0x640a1b
movups xmm0, xmmword [r8]
movups xmmword [rbx], xmm0
lea r9, [rdi + rdx]
lea r9, [r9 + 0x10]
movups xmm0, xmmword [r9]
movups xmmword [rsi], xmm0
lea r9, [rdi + rdx]
lea r9, [r9 + 0x20]
movups xmm0, xmmword [r9]
movups xmmword [rsi + 0x10], xmm0
jmp 0x640a57
mov qword [rsp + 0xd8], r8
mov qword [rsp + 0x88], rdi
lea rax, [0x0068afa0]
mov rcx, r8
call fcn.00413c80
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x88]
mov r8, qword [rsp + 0xd8]
cmp dword [0x00900190], 0
nop
jne 0x640a92
movups xmm0, xmmword [rsp + 0x1e8]
movups xmmword [r8], xmm0
lea rsi, [rdi + rdx]
lea rsi, [rsi + 0x10]
movups xmm0, xmmword [rsp + 0x1f8]
movups xmmword [rsi], xmm0
movups xmm0, xmmword [rsp + 0x208]
movups xmmword [rsi + 0x10], xmm0
jmp 0x640954
lea rax, [0x0068afa0]
mov rbx, r8
lea rcx, [rsp + 0x1e8]
call fcn.00413c80
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0xb8]
jmp 0x640954
mov rdx, qword [rsp + 0x350]
mov rsi, qword [rsp + 0xb8]
xor eax, eax
jmp 0x640aec
mov rax, qword [rsp + 0x60]
inc rax
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x350]
mov rsi, qword [rsp + 0xb8]
cmp rcx, rax
jle 0x640e5a
mov qword [rsp + 0x60], rax
lea rdi, [rax + rax*2]
shl rdi, 4
lea r8, [rdi + rsi]
movups xmm0, xmmword [r8]
movups xmmword [rsp + 0x158], xmm0
lea r8, [rdi + rsi]
lea r8, [r8 + 0x10]
movups xmm0, xmmword [r8]
movups xmmword [rsp + 0x168], xmm0
lea rdi, [rdi + rsi]
lea rdi, [rdi + 0x20]
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x178], xmm0
nop dword [rax]
test rdx, rdx
jne 0x640c4d
mov rdi, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
cmp rbx, 2
jl 0x640b6a
cmp word [rdi], 0x744e
sete r8b
jmp 0x640b6d
xor r8d, r8d
test r8b, r8b
je 0x640b7a
mov r8d, 1
jmp 0x640b94
nop word [rax + rax]
cmp rbx, 2
jl 0x640b91
cmp word [rdi], 0x775a
sete r8b
jmp 0x640b94
xor r8d, r8d
test r8b, r8b
je 0x640acf
mov rax, rdi
call fcn.004d93a0
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x58], rbx
movups xmmword [rsp + 0x1b8], xmm15
movups xmmword [rsp + 0x1c8], xmm15
movups xmmword [rsp + 0x1d8], xmm15
mov rcx, qword [rsp + 0x360]
cmp rcx, 8
jg 0x640c0a
lea rdi, [rsp + 0x2a8]
lea rdi, [rdi - 0x30]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00465279
mov rbp, qword [rbp]
lea rdx, [rsp + 0x2a8]
mov qword [rsp + 0x1c8], rdx
lea rax, [0x0066a700]
mov rbx, rcx
lea rcx, [rsp + 0x1b8]
nop dword [rax]
call fcn.0040e360
mov rdx, qword [rsp + 0x360]
test rdx, rdx
je 0x640f78
mov qword [rsp + 0xa0], rax
mov rcx, qword [rsp + 0xe0]
xor ebx, ebx
jmp 0x64135c
mov rax, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
nop dword [rax]
call fcn.004d93a0
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x88], rbx
mov rax, qword [rsp + 0x348]
mov rbx, qword [rsp + 0x350]
call fcn.004d93a0
mov rcx, qword [rsp + 0x88]
cmp rbx, rcx
je 0x640c9b
xor eax, eax
jmp 0x640cab
mov rbx, rax
mov rax, qword [rsp + 0xd0]
call fcn.00402da0
test al, al
je 0x640cb6
mov eax, 1
jmp 0x640d20
mov rax, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
call fcn.004d93a0
call fcn.004d93a0
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x88], rbx
mov rax, qword [rsp + 0x348]
mov rbx, qword [rsp + 0x350]
call fcn.004d93a0
mov rcx, qword [rsp + 0x88]
nop dword [rax]
cmp rbx, rcx
je 0x640d09
xor eax, eax
jmp 0x640d20
mov rbx, rax
mov rax, qword [rsp + 0xd0]
call fcn.00402da0
nop dword [rax]
test al, al
je 0x640acf
movups xmmword [rsp + 0x120], xmm15
mov rdi, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x168]
xor eax, eax
lea rbx, [0x006aac12]
mov ecx, 0xd
call fcn.0044f260
call fcn.0040aec0
lea rdx, [0x0065d7a0]
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x128], rax
mov rbx, qword [0x008a8c50]
lea rax, [0x0072e780]
lea rcx, [rsp + 0x120]
mov edi, 1
mov rsi, rdi
call fcn.004b9840
mov edx, dword [rsp + 0x170]
mov rax, qword [rsp + 0xe8]
mov r8, qword [rax + 0xc8]
mov r9, qword [rax + 0xd0]
xor ecx, ecx
jmp 0x640e6f
sub edx, esi
add edx, dword [rbx + 0x24]
mov dword [rsp + 0x40], edx
call fcn.0063e600
test rdi, rdi
jne 0x640f2c
mov esi, dword [rsp + 0x40]
lea edi, [rsi + 0x20]
cmp rcx, rdi
jb 0x640f6e
nop
cmp rsi, rdi
ja 0x640f65
sub rdi, rsi
mov edx, esi
sub rsi, rcx
sar rsi, 0x3f
and rdx, rsi
nop dword [rax + rax]
cmp rdi, 0x12
jbe 0x640f58
movzx esi, byte [rax + rdx + 0x12]
cmp sil, 0xf
jne 0x640acf
nop dword [rax]
cmp rdi, 0x13
jbe 0x640f4b
movzx esi, byte [rax + rdx + 0x13]
cmp sil, 5
jne 0x640acf
nop dword [rax]
cmp rdi, 0x14
jbe 0x640f3e
movzx ecx, byte [rax + rdx + 0x14]
cmp cl, 0xc3
jne 0x640acf
jmp 0x640e94
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
inc rcx
cmp rcx, r9
jge 0x640dbc
mov rbx, qword [r8 + rcx*8]
mov esi, dword [rbx + 0x1c]
nop
cmp rsi, rdx
jae 0x640e6c
mov edi, dword [rbx + 0x18]
add edi, esi
cmp rdx, rdi
jae 0x640e6c
jmp 0x640db7
movups xmmword [rsp + 0x110], xmm15
mov ecx, dword [rsp + 0x170]
mov rdx, qword [rsp + 0x80]
lea rax, [rcx + rdx]
lea rax, [rax + 0x12]
call fcn.0040ae40
lea rcx, [0x0065d9a0]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov rbx, qword [0x008a8c50]
lea rax, [0x0072e780]
lea rcx, [0x006b1720]
mov edi, 0x1a
lea rsi, [rsp + 0x110]
mov r8d, 1
mov r9, r8
nop dword [rax + rax]
call fcn.004b9480
mov ecx, dword [rsp + 0x170]
mov rdx, qword [rsp + 0x80]
lea rax, [rcx + rdx]
lea rax, [rax + 0x12]
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
mov eax, 0x14
mov rcx, rax
call fcn.00464fc0
mov eax, 0x13
mov rcx, rax
call fcn.00464fc0
mov eax, 0x12
mov rcx, rdi
call fcn.00464fc0
mov eax, esi
mov ecx, edi
call fcn.00465080
mov rdx, rcx
mov ecx, edi
call fcn.00465040
mov rbx, rax
mov rcx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x58]
lea rax, [0x0066a700]
call fcn.00412c00
test bl, bl
je 0x640f9f
xor ebx, ebx
jmp 0x641080
mov rax, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
call fcn.004d93a0
call fcn.004d93a0
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x50], rbx
movups xmmword [rsp + 0x188], xmm15
movups xmmword [rsp + 0x198], xmm15
movups xmmword [rsp + 0x1a8], xmm15
mov rcx, qword [rsp + 0x360]
cmp rcx, 8
jg 0x641023
lea rdi, [rsp + 0x218]
lea rdi, [rdi - 0x30]
nop dword [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00465279
mov rbp, qword [rbp]
lea rdx, [rsp + 0x218]
mov qword [rsp + 0x198], rdx
lea rax, [0x0066a700]
mov rbx, rcx
lea rcx, [rsp + 0x188]
call fcn.0040e360
mov rdx, qword [rsp + 0x360]
test rdx, rdx
je 0x64105e
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0xe0]
xor ebx, ebx
jmp 0x6412ef
mov rbx, rax
mov rcx, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0x50]
lea rax, [0x0066a700]
call fcn.00412c00
xor ebx, 1
nop dword [rax]
test bl, bl
je 0x64126c
movups xmmword [rsp + 0x100], xmm15
mov rdi, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x168]
xor eax, eax
lea rbx, [0x006aac12]
mov ecx, 0xd
call fcn.0044f260
call fcn.0040aec0
lea rdx, [0x0065d7a0]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], rax
mov rbx, qword [0x008a8c50]
lea rax, [0x0072e780]
lea rcx, [rsp + 0x100]
mov edi, 1
mov rsi, rdi
call fcn.004b9840
mov edx, dword [rsp + 0x170]
mov rax, qword [rsp + 0xe8]
mov r8, qword [rax + 0xc8]
mov r9, qword [rax + 0xd0]
xor ecx, ecx
jmp 0x641117
inc rcx
cmp rcx, r9
jge 0x641137
mov rbx, qword [r8 + rcx*8]
mov esi, dword [rbx + 0x1c]
cmp rsi, rdx
jae 0x641114
mov edi, dword [rbx + 0x18]
add edi, esi
cmp rdx, rdi
jae 0x641114
sub edx, esi
add edx, dword [rbx + 0x24]
mov dword [rsp + 0x3c], edx
nop dword [rax + rax]
call fcn.0063e600
test rdi, rdi
jne 0x64128b
mov esi, dword [rsp + 0x3c]
lea edi, [rsi + 0x20]
cmp rcx, rdi
jb 0x6412ce
nop
cmp rsi, rdi
ja 0x6412c5
sub rdi, rsi
mov edx, esi
sub rsi, rcx
sar rsi, 0x3f
and rdx, rsi
nop dword [rax + rax]
cmp rdi, 0x12
jbe 0x6412b7
movzx esi, byte [rax + rdx + 0x12]
cmp sil, 0xf
jne 0x64126c
nop dword [rax]
cmp rdi, 0x13
jbe 0x6412aa
movzx esi, byte [rax + rdx + 0x13]
cmp sil, 5
jne 0x64126c
nop dword [rax]
cmp rdi, 0x14
jbe 0x64129d
movzx ecx, byte [rax + rdx + 0x14]
cmp cl, 0xc3
jne 0x64126c
movups xmmword [rsp + 0xf0], xmm15
mov ecx, dword [rsp + 0x170]
mov rdx, qword [rsp + 0x80]
lea rax, [rcx + rdx]
lea rax, [rax + 0x12]
call fcn.0040ae40
lea rcx, [0x0065d9a0]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
mov rbx, qword [0x008a8c50]
lea rax, [0x0072e780]
lea rcx, [0x006b1720]
mov edi, 0x1a
lea rsi, [rsp + 0xf0]
mov r8d, 1
mov r9, r8
nop
call fcn.004b9480
mov ecx, dword [rsp + 0x170]
mov rdx, qword [rsp + 0x80]
lea rax, [rcx + rdx]
lea rax, [rax + 0x12]
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x350]
mov rsi, qword [rsp + 0xb8]
jmp 0x640acf
xor eax, eax
mov rbp, qword [rsp + 0x338]
add rsp, 0x340
ret
mov eax, 0x14
mov rcx, rax
call fcn.00464fc0
mov eax, 0x13
mov rcx, rax
call fcn.00464fc0
mov eax, 0x12
mov rcx, rdi
nop
call fcn.00464fc0
mov eax, esi
mov ecx, edi
call fcn.00465080
mov rdx, rcx
mov ecx, edi
call fcn.00465040
mov rcx, qword [rsp + 0xc8]
add rcx, 0x10
mov rax, qword [rsp + 0x98]
mov rbx, rdx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0xc8], rcx
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
mov rsi, rax
lea rax, [0x0066a700]
mov rbx, rsi
mov rcx, rdx
call fcn.00413020
test byte [rax], al
mov rdx, qword [rsp + 0x88]
inc rdx
mov rsi, qword [rsp + 0x360]
cmp rsi, rdx
jg 0x6412d8
mov rax, qword [rsp + 0x98]
nop dword [rax]
jmp 0x64105e
mov rcx, qword [rsp + 0xc8]
add rcx, 0x10
mov rax, qword [rsp + 0xa0]
mov rbx, rdx
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0xc8], rcx
mov rdx, qword [rcx]
mov rdi, qword [rcx + 8]
mov rsi, rax
lea rax, [0x0066a700]
mov rbx, rsi
mov rcx, rdx
call fcn.00413020
test byte [rax], al
mov rdx, qword [rsp + 0x88]
inc rdx
mov rsi, qword [rsp + 0x360]
nop dword [rax]
cmp rsi, rdx
jg 0x641345
mov rax, qword [rsp + 0xa0]
jmp 0x640f78
call fcn.00464fc0
mov rdi, qword [rsp + 0xc8]
add rdi, 0x10
mov rdx, rcx
mov rcx, rdi
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0xc8], rcx
mov rax, qword [rcx]
mov rbx, qword [rcx + 8]
nop dword [rax]
call fcn.004d93a0
mov rcx, qword [rsp + 0x70]
mov rdx, rcx
shl rcx, 4
mov rsi, qword [rsp + 0xe0]
mov qword [rsi + rcx + 8], rbx
lea rdi, [rsi + rcx]
cmp dword [0x00900190], 0
jne 0x641411
mov qword [rsi + rcx], rax
jmp 0x641416
call fcn.00464b20
lea rcx, [rdx + 1]
mov rdx, qword [rsp + 0x360]
cmp rdx, rcx
jg 0x6413b7
mov rax, qword [rsp + 0x348]
mov rcx, rsi
mov rbx, qword [rsp + 0x350]
mov rdi, rdx
nop dword [rax]
jmp 0x6406ec
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
nop
call fcn.004628e0
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]
nop
jmp fcn.00640680