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

Disassembly:
lea r12, [rsp - 0x158]
cmp r12, qword [r14 + 0x10]
jbe 0x634b79
push rbp
mov rbp, rsp
sub rsp, 0x1d0
movups xmmword [rsp + 0xe0], xmm15
movups xmmword [rsp + 0xf0], xmm15
movups xmmword [rsp + 0x100], xmm15
movups xmmword [rsp + 0x110], xmm15
mov r8d, dword [rax]
mov dword [rsp + 0xe0], r8d
mov byte [rsp + 0xe4], 0x52
mov r8, qword [rax + 0x90]
mov r9d, dword [rax + 0x34]
nop
cmp r8, r9
jge 0x633eaa
sub r9, r8
jmp 0x633ead
xor r9d, r9d
mov word [rsp + 0xe6], r9w
mov r8d, dword [rax + 0x18]
mov dword [rsp + 0xf0], r8d
mov rcx, qword [rax + 0xf0]
mov r8, qword [rax + 0x100]
cmp r8, rcx
ja 0x634b70
mov qword [rsp + 0x1e0], rax
mov byte [rsp + 0x1e8], bl
mov qword [rsp + 0x98], rcx
mov r9, qword [rax + 0xf8]
mov qword [rsp + 0xa0], r9
mov r10, qword [rax + 0xe8]
mov qword [rsp + 0x180], r10
mov r11, r9
sub r9, r8
mov rdi, rcx
sub rcx, r8
mov r12, r9
neg r9
sar r9, 0x3f
and r8, r9
add r8, r10
mov qword [rsp + 0x128], r8
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], r12
movups xmmword [rsp + 0x1a0], xmm15
movups xmmword [rsp + 0x1b0], xmm15
movups xmmword [rsp + 0x1c0], xmm15
lea r8, [0x00634ba0]
mov qword [rsp + 0x1a0], r8
mov qword [rsp + 0x1b0], rdi
mov qword [rsp + 0x1b8], r11
mov qword [rsp + 0x1a8], r10
lea r8, [rsp + 0x128]
mov qword [rsp + 0x1c0], r8
mov qword [rsp + 0x1c8], rax
mov r8, qword [rax + 0xd0]
mov qword [rsp + 0x198], r8
mov r9, qword [rax + 0xd8]
mov qword [rsp + 0xb8], r9
xor ecx, ecx
jmp 0x633ff5
lea rcx, [r9 + 1]
mov rax, rbx
movzx ebx, byte [rsp + 0x1e8]
mov rdi, qword [rsp + 0x98]
mov r8, qword [rsp + 0x198]
mov r9, qword [rsp + 0xb8]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
cmp rcx, r9
jge 0x6340b5
mov qword [rsp + 0x78], rcx
mov ebx, dword [r8 + rcx*8]
mov dword [rsp + 0x5c], ebx
mov rsi, qword [rsp + 0x1a0]
mov edi, dword [r8 + rcx*8 + 4]
mov dword [rsp + 0x58], edi
mov eax, 0x18
lea rdx, [rsp + 0x1a0]
call rsi
mov ecx, dword [rsp + 0x5c]
mov rbx, qword [rsp + 0x1e0]
cmp dword [rbx + 0x18], ecx
jbe 0x634054
mov r8, qword [rbx + 0xd8]
dec r8
mov r9, qword [rsp + 0x78]
cmp r9, r8
jne 0x633fbe
mov dword [rsp + 0xec], ecx
mov edx, dword [rsp + 0x58]
mov dword [rsp + 0xe8], edx
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
lea rax, [rsp + 0xe0]
call fcn.00631d20
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rcx
mov rbx, qword [rsp + 0x1e0]
mov r9, qword [rsp + 0x78]
jmp 0x633fbe
mov qword [rax + 0xd8], 0
test bl, bl
jne 0x6342b9
cmp dword [rax + 0x38], 0
je 0x6340db
mov qword [rax + 0x54], 0
jmp 0x634170
nop dword [rax + rax]
call fcn.00631cc0
mov rcx, qword [rsp + 0x1e0]
mov edx, dword [rcx + 0x58]
test edx, edx
jne 0x634108
mov dword [rcx + 0x58], 0x1b58
lea r8d, [rax + 0x1b58]
mov dword [rcx + 0x54], r8d
jmp 0x634155
mov r8d, dword [rcx + 0x54]
mov r9d, eax
sub eax, r8d
test eax, eax
jl 0x634155
cmp edx, 0x1b58
jae 0x634125
mov dword [rcx + 0x58], 0x1b58
mov r8d, dword [rcx + 0x58]
mov r10d, r8d
shr r8d, 1
add r8d, r10d
mov dword [rcx + 0x58], r8d
cmp r8d, 0x1d4c0
jbe 0x634146
mov dword [rcx + 0x58], 0x1d4c0
mov r8d, dword [rcx + 0x58]
add r8d, r9d
mov dword [rcx + 0x54], r8d
or dword [rcx + 0x40], 1
mov rax, rcx
mov rdi, qword [rsp + 0x98]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
mov r8d, dword [rax + 0x40]
bt r8d, 0
jae 0x6341f7
mov byte [rsp + 0xe4], 0x53
mov rcx, qword [rsp + 0x1a0]
mov eax, 0x18
lea rdx, [rsp + 0x1a0]
call rcx
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
lea rax, [rsp + 0xe0]
call fcn.00631d20
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rcx
mov rax, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x98]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
mov r8d, dword [rax + 0x40]
bt r8d, 1
jae 0x63427f
mov byte [rsp + 0xe4], 0x54
mov rcx, qword [rsp + 0x1a0]
mov eax, 0x18
lea rdx, [rsp + 0x1a0]
nop
call rcx
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
lea rax, [rsp + 0xe0]
call fcn.00631d20
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rcx
mov rax, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x98]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
mov dword [rax + 0x40], 0
mov edx, dword [rax + 0x30]
mov r8d, dword [rax + 0x38]
cmp r8d, edx
cmovae r8d, edx
cmp dword [rax + 0x68], 0
jne 0x6342a4
mov edx, dword [rax + 0x3c]
cmp edx, r8d
cmovbe r8d, edx
mov dword [rsp + 0x4c], r8d
mov rdx, qword [rax + 0x78]
mov qword [rsp + 0xb8], rdx
xor ecx, ecx
jmp 0x634337
mov rsi, qword [rsp + 0x130]
mov rbx, rdi
sub rdi, rsi
nop
cmp qword [rax + 0x100], rdi
jge 0x6342eb
mov rdx, qword [rax + 0x108]
mov rsi, qword [rdx]
mov rcx, r11
mov rax, r10
call rsi
mov rax, qword [rsp + 0x1e0]
mov eax, dword [rax + 0x44]
add rsp, 0x1d0
pop rbp
ret
lea r9, [r9 + r13]
lea r9, [r9 + 0x20]
movups xmm0, xmmword [rsp + 0x140]
movups xmmword [rbx], xmm0
movups xmm0, xmmword [rsp + 0x150]
movups xmmword [rbx + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x160]
movups xmmword [r9], xmm0
movups xmm0, xmmword [rsp + 0x170]
movups xmmword [r9 + 0x10], xmm0
inc dword [rax + 0x14]
lea rcx, [r12 + 1]
mov qword [rsp + 0x70], rcx
nop dword [rax]
cmp rcx, rdx
jge 0x634525
mov r9d, dword [rax + 0x14]
mov r12d, dword [rax + 0x10]
add r12d, r8d
sub r9d, r12d
nop word [rax + rax]
test r9d, r9d
jge 0x634525
mov r9, qword [rax + 0x78]
cmp rcx, r9
jae 0x634b65
mov r9, qword [rax + 0x70]
mov r12, rcx
shl rcx, 6
lea r13, [r9 + rcx]
lea r13, [r13 + 0x10]
lea r15, [rcx + r9]
lea r15, [r15 + 0x20]
lea rbx, [r9 + rcx]
lea rbx, [rbx + 0x30]
add r9, rcx
movups xmm0, xmmword [r9]
movups xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [r13]
movups xmmword [rsp + 0x150], xmm0
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x160], xmm0
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x170], xmm0
mov r9d, dword [rax]
mov dword [rsp + 0x140], r9d
mov byte [rsp + 0x144], 0x51
mov r9d, dword [rax + 0x14]
mov dword [rsp + 0x14c], r9d
mov rcx, qword [rax + 0xb0]
mov rbx, qword [rax + 0xa8]
inc rbx
mov r9, qword [rax + 0xa0]
cmp rcx, rbx
jae 0x634483
mov rax, r9
mov edi, 1
lea rsi, [0x00696dc0]
call fcn.0044f2e0
mov rdx, qword [rsp + 0x1e0]
mov qword [rdx + 0xb0], rcx
cmp dword [0x0091f380], 0
je 0x634447
call fcn.0046bac0
mov qword [r11], rax
mov r8, qword [rdx + 0xa0]
mov qword [r11 + 8], r8
mov qword [rdx + 0xa0], rax
mov rdx, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x4c]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x70]
mov r9, rax
mov rax, qword [rsp + 0x1e0]
mov qword [rax + 0xa8], rbx
lea r13, [rbx - 1]
shl r13, 6
lea rbx, [r9 + r13]
cmp dword [0x0091f380], 0
nop dword [rax]
je 0x6342f7
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0x190], r9
mov qword [rsp + 0x188], rbx
lea rax, [0x00696dc0]
lea rcx, [rsp + 0x140]
call fcn.004146a0
mov rax, qword [rsp + 0x1e0]
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x188]
mov rdi, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x4c]
mov r9, qword [rsp + 0x190]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x70]
mov r13, qword [rsp + 0xb0]
nop dword [rax]
jmp 0x6342f7
test rcx, rcx
jle 0x634637
mov rdx, qword [rax + 0x80]
mov r9, rdx
shr rdx, 1
mov rsi, qword [rax + 0x78]
mov rbx, qword [rax + 0x70]
cmp rcx, rdx
jle 0x6345e2
cmp rcx, rsi
ja 0x634b58
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0xb8], r9
mov rdx, rcx
sub rcx, r9
mov r8, rsi
sub r8, rdx
shl rdx, 6
sar rcx, 0x3f
and rcx, rdx
lea rdi, [rcx + rbx]
lea rax, [0x00696dc0]
mov rcx, rsi
mov rsi, r8
call fcn.004147e0
mov rdx, qword [rsp + 0xb8]
nop word [rax + rax]
cmp rax, rdx
ja 0x634b50
mov rdi, qword [rsp + 0x98]
mov r8d, dword [rsp + 0x4c]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x70]
mov rsi, rax
mov rbx, qword [rsp + 0x120]
mov rax, qword [rsp + 0x1e0]
nop
jmp 0x634608
cmp rcx, rsi
ja 0x634b45
sub r9, rcx
mov rdx, r9
neg r9
mov r12, rcx
shl rcx, 6
sar r9, 0x3f
and r9, rcx
sub rsi, r12
add rbx, r9
mov qword [rax + 0x78], rsi
mov qword [rax + 0x80], rdx
cmp dword [0x0091f380], 0
je 0x634633
mov rcx, r11
nop
call fcn.0046bac0
mov qword [r11], rbx
mov rdx, qword [rax + 0x70]
mov qword [r11 + 8], rdx
mov r11, rcx
mov qword [rax + 0x70], rbx
mov ecx, dword [rax + 0x64]
mov dword [rsp + 0x54], ecx
nop
call fcn.00631cc0
mov rcx, qword [rsp + 0x1e0]
mov edx, dword [rcx + 0x44]
mov rbx, qword [rcx + 0xa8]
mov qword [rsp + 0xb8], rbx
mov rsi, qword [rcx + 0xa0]
mov qword [rsp + 0x190], rsi
mov edi, dword [rsp + 0x54]
test edi, edi
mov r8d, 0xffffffff
cmovle edi, r8d
mov dword [rsp + 0x44], edi
mov r8, qword [rsp + 0x70]
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor r12d, r12d
xor r13d, r13d
jmp 0x6346a9
inc r15
mov rbx, qword [rsp + 0xb8]
mov edx, r9d
mov r9, r15
mov dword [rsp + 0x48], edx
cmp r9, rbx
jge 0x6349c5
mov r15, r9
shl r9, 6
mov ebx, dword [rsi + r9 + 0x24]
lea r8, [r9 + rsi]
cmp ebx, 1
jne 0x6346d5
mov r8, qword [rsp + 0x70]
mov r9d, edx
jmp 0x634698
mov qword [rsp + 0xd8], r8
mov ebx, dword [r9 + rsi + 0x18]
test ebx, ebx
jne 0x634705
mov ebx, dword [rcx + 0x28]
mov dword [rsi + r9 + 0x14], ebx
add ebx, eax
mov dword [rsi + r9 + 0x1c], ebx
mov r8, qword [rsp + 0x70]
mov ebx, 1
nop
jmp 0x6347e0
mov ebx, dword [rsi + r9 + 0x20]
cmp ebx, edi
jb 0x63473b
mov dword [rsi + r9 + 0x20], 0
mov ebx, dword [rcx + 0x28]
mov dword [rsi + r9 + 0x14], ebx
add ebx, eax
mov dword [rsi + r9 + 0x1c], ebx
inc r13
inc r11
mov r8, qword [rsp + 0x70]
mov ebx, 1
jmp 0x6347e0
test ebx, ebx
jbe 0x634771
mov rbx, r8
mov r8, qword [rsp + 0x70]
test r8, r8
jne 0x634779
mov dword [rsi + r9 + 0x20], 0
mov ebx, dword [rcx + 0x28]
mov dword [rsi + r9 + 0x14], ebx
add ebx, eax
mov dword [rsi + r9 + 0x1c], ebx
inc r13
inc r12
mov ebx, 1
jmp 0x6347e0
mov rbx, r8
mov r8, qword [rsp + 0x70]
mov dword [rsp + 0x50], eax
mov ebx, dword [r9 + rsi + 0x1c]
sub eax, ebx
test eax, eax
jl 0x6347c9
cmp dword [rcx + 0x4c], 0
jne 0x63479d
mov ebx, dword [r9 + rsi + 0x14]
add ebx, dword [rcx + 0x28]
mov dword [rsi + r9 + 0x14], ebx
jmp 0x6347a7
mov ebx, dword [rcx + 0x28]
shr ebx, 1
add dword [rsi + r9 + 0x14], ebx
mov dword [rsi + r9 + 0x20], 0
mov ebx, dword [r9 + rsi + 0x14]
mov r8d, dword [rsp + 0x50]
add ebx, r8d
mov dword [rsi + r9 + 0x1c], ebx
inc r10
test eax, eax
jmp 0x6347ce
mov r8d, dword [rsp + 0x50]
setge al
mov r8, qword [rsp + 0x70]
mov ebx, eax
mov eax, dword [rsp + 0x50]
nop dword [rax]
test bl, bl
je 0x6349a5
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x68], r10
call fcn.00631cc0
mov dword [rsp + 0x5c], eax
mov rcx, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0x190]
inc dword [rdx + rcx + 0x18]
mov dword [rdx + rcx + 8], eax
movzx ebx, word [rsp + 0xe6]
mov word [rdx + rcx + 6], bx
mov ebx, dword [rsp + 0xf0]
mov dword [rdx + rcx + 0x10], ebx
mov rbx, qword [rcx + rdx + 0x30]
add rbx, 0x18
mov rsi, qword [rsp + 0x1a0]
mov rax, rbx
lea rdx, [rsp + 0x1a0]
call rsi
mov rbx, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
mov rax, qword [rsp + 0xd8]
call fcn.00631d20
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], rcx
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rdx + rcx + 0x30]
mov rdi, qword [rcx + rdx + 0x28]
cmp rbx, rsi
cmovg rbx, rsi
cmp rax, rdi
je 0x6348ea
mov rcx, rbx
mov rbx, rdi
call fcn.0046c860
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x130]
mov rax, qword [rdx + rcx + 0x30]
nop word [rax + rax]
cmp rsi, rax
jb 0x634b3a
sub rsi, rax
mov r8, qword [rsp + 0x138]
sub r8, rax
mov r9, r8
neg r8
sar r8, 0x3f
and r8, rax
mov r10, qword [rsp + 0x128]
add r8, r10
mov qword [rsp + 0x128], r8
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0x138], r9
mov esi, dword [rdx + rcx + 0x18]
mov r8, qword [rsp + 0x1e0]
cmp dword [r8 + 0x5c], esi
ja 0x634961
mov dword [r8 + 0xc], 0xffffffff
mov rcx, r8
mov rsi, qword [rsp + 0x190]
mov edi, dword [rsp + 0x44]
mov r8, qword [rsp + 0x70]
mov r9, rdx
mov r10, qword [rsp + 0x68]
mov r11, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov r13, qword [rsp + 0x90]
mov r15, qword [rsp + 0xa8]
mov eax, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x48]
mov r9d, dword [r9 + rsi + 0x1c]
sub r9d, eax
test r9d, r9d
jle 0x6349bb
cmp edx, r9d
jg 0x634698
mov r9d, edx
nop
jmp 0x634698
mov rsi, qword [rsp + 0x130]
mov rbx, qword [rsp + 0x98]
mov r8, rbx
sub r8, rsi
nop
nop dword [rax]
cmp qword [rcx + 0x100], r8
jge 0x634a52
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0x60], r10
mov rdx, qword [rcx + 0x108]
mov rsi, qword [rdx]
mov rax, qword [rsp + 0x180]
mov rdi, r8
mov rcx, qword [rsp + 0xa0]
call rsi
mov rcx, qword [rsp + 0x1e0]
mov edx, dword [rsp + 0x48]
mov edi, dword [rsp + 0x44]
mov r10, qword [rsp + 0x60]
mov r11, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xc8]
mov r13, qword [rsp + 0xd0]
test r10, r10
jbe 0x634a6c
mov rbx, qword [0x00898ac8]
mov rsi, r10
lock xadd qword [rbx + 0x90], r10
jmp 0x634a6f
mov rsi, r10
test r11, r11
jbe 0x634a8d
mov rbx, qword [0x00898ac8]
mov r8, r11
lock xadd qword [rbx + 0x80], r11
lea r10, [rsi + r8]
jmp 0x634a90
mov r10, rsi
test r12, r12
jbe 0x634aab
mov rbx, qword [0x00898ac8]
mov r8, r12
lock xadd qword [rbx + 0x88], r12
add r10, r8
test r10, r10
jbe 0x634abd
mov rbx, qword [0x00898ac8]
lock xadd qword [rbx + 0x78], r10
cmp dword [rcx + 0x68], 0
jne 0x634b2f
test r13, r13
jbe 0x634af5
mov ebx, dword [rcx + 0x14]
sub ebx, dword [rcx + 0x10]
shr ebx, 1
mov dword [rcx + 0x1c], ebx
cmp ebx, 2
jae 0x634adf
mov dword [rcx + 0x1c], 2
mov ebx, dword [rcx + 0x1c]
add ebx, edi
mov dword [rcx + 0x3c], ebx
mov edi, dword [rcx + 8]
imul ebx, edi
mov dword [rcx + 0x60], ebx
test rsi, rsi
jmp 0x634af8
test rsi, rsi
jbe 0x634b1c
mov ebx, dword [rsp + 0x4c]
shr ebx, 1
mov dword [rcx + 0x1c], ebx
cmp ebx, 2
jae 0x634b0f
mov dword [rcx + 0x1c], 2
mov dword [rcx + 0x3c], 1
mov ebx, dword [rcx + 8]
mov dword [rcx + 0x60], ebx
cmp dword [rcx + 0x3c], 0
jne 0x634b2f
mov dword [rcx + 0x3c], 1
mov ebx, dword [rcx + 8]
mov dword [rcx + 0x60], ebx
mov eax, edx
add rsp, 0x1d0
pop rbp
ret
mov rcx, rsi
nop dword [rax]
call fcn.0046bf20
mov rax, rcx
mov rcx, rsi
call fcn.0046bf20
mov rcx, rax
call fcn.0046bee0
mov rax, rcx
mov rcx, rsi
nop
call fcn.0046bf20
mov rax, rcx
mov rcx, r9
call fcn.0046be60
mov rax, r8
call fcn.0046bf20
nop
mov qword [rsp + 8], rax
mov byte [rsp + 0x10], bl
call fcn.00469b80
mov rax, qword [rsp + 8]
movzx ebx, byte [rsp + 0x10]
jmp fcn.00633e40