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

Disassembly:
lea r12, [rsp - 0x2a0]
cmp r12, qword [r14 + 0x10]
jbe 0x520748
push rbp
mov rbp, rsp
sub rsp, 0x318
mov qword [rsp + 0xa0], 0
mov r9, qword [rax + 0x318]
cmp rcx, r9
jne 0x51e6be
mov r10, qword [rax + 0x338]
jmp 0x51e6c1
mov r10, r9
mov qword [rsp + 0x328], rax
mov qword [rsp + 0x330], rbx
mov qword [rsp + 0x338], rcx
mov dword [rsp + 0x340], edi
mov qword [rsp + 0x348], rsi
mov qword [rsp + 0x350], r8
mov qword [rsp + 0xc8], r10
nop dword [rax + rax]
cmp edi, 0x128
ja 0x51efe6
cmp edi, 0x4e
ja 0x51ee50
cmp edi, 0x14
jne 0x51e727
mov r9, r8
mov edx, 1
jmp 0x51f3b7
cmp edi, 0x47
jne 0x51e7a6
mov r9, r8
mov r10d, dword [r8 + 0x20]
bt r10d, 0
jae 0x51e745
xor edx, edx
nop dword [rax]
jmp 0x51f3b7
mov qword [rsp + 0x250], r8
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rcx + 0x48]
mov rax, rdx
call rcx
mov rdx, qword [rsp + 0x250]
movsxd rdx, dword [rdx + 0x18]
cmp rcx, rdx
setg cl
mov rax, qword [rsp + 0x328]
mov rbx, qword [rsp + 0x330]
mov edi, dword [rsp + 0x340]
mov r9, qword [rsp + 0x350]
mov edx, ecx
mov rsi, qword [rsp + 0x348]
mov rcx, qword [rsp + 0x338]
jmp 0x51f3b7
cmp edi, 0x4e
jne 0x51f17b
mov r11, r8
mov r12, qword [r8]
cmp qword [rax + 0x320], r12
je 0x51e7c9
nop
cmp qword [rax + 0x340], r12
jne 0x51e806
cmp dword [r8 + 0x10], 0xfffffff4
je 0x51e7d5
cmp rcx, r9
jmp 0x51e809
mov rax, r12
mov ebx, 0x4e
mov rcx, rsi
mov rdi, r11
call fcn.00520c60
mov qword [rsp + 0xa0], rax
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp rcx, r9
mov qword [rsp + 0x250], r8
sete r9b
mov r12d, dword [r8 + 0x10]
nop dword [rax]
cmp r12d, 0xffffff8d
ja 0x51ea81
cmp r12d, 0xffffff4c
ja 0x51e985
nop word [rax + rax]
cmp r12d, 0xfffffebf
je 0x51e946
cmp r12d, 0xffffff4c
jne 0x51f79b
cmp byte [rax + 0x5c0], 0
jne 0x51f79b
mov byte [rax + 0x5c0], 1
lea rcx, [0x005208a0]
mov qword [rsp + 0x2b0], rcx
mov qword [rsp + 0x2b8], rax
lea rcx, [rsp + 0x2b0]
mov qword [rsp + 0x1a0], rcx
lea rax, [rsp + 0x188]
nop dword [rax]
call fcn.004342e0
test eax, eax
jne 0x51e930
movups xmmword [rsp + 0x58], xmm15
lea rdi, [rsp + 0x58]
mov rax, qword [rsp + 0x338]
mov ebx, 0x100e
xor ecx, ecx
call fcn.004d3380
mov rdx, qword [rsp + 0x350]
mov edx, dword [rdx + 0x1c]
mov r8d, dword [rsp + 0x64]
sub r8d, dword [rsp + 0x5c]
imul edx, r8d
movsxd rdi, edx
mov rax, qword [rsp + 0xc8]
mov ebx, 0x1014
xor ecx, ecx
call fcn.004d3380
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
jmp 0x51f79b
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
xor ebx, ebx
call fcn.00521c40
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
nop dword [rax]
jmp 0x51f79b
cmp r12d, 0xffffff4f
jne 0x51e9ab
mov r10, qword [rax + 0x360]
mov r12d, dword [r8 + 0x20]
mov r13, qword [r10 + 8]
mov r10, qword [r10 + 0x10]
xor edx, edx
xor r15d, r15d
jmp 0x51ffb1
cmp r12d, 0xffffff8d
jne 0x51f79b
mov r8, qword [rax + 0x4a8]
nop dword [rax]
test r8, r8
je 0x51e9ce
cmp rcx, r8
jne 0x51f79b
mov qword [rax + 0x4a8], rcx
lea rdx, [0x00520860]
mov qword [rsp + 0x290], rdx
mov qword [rsp + 0x298], rax
lea rdx, [rsp + 0x290]
mov qword [rsp + 0x140], rdx
lea rax, [rsp + 0x128]
call fcn.004342e0
test eax, eax
jne 0x51ea6b
mov rax, qword [rsp + 0x328]
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x338]
call fcn.0051daa0
mov rax, qword [rsp + 0x328]
call fcn.0051d960
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
jmp 0x51f79b
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp r12d, 0xffffff94
ja 0x51eb60
cmp r12d, 0xffffff8e
je 0x51eab9
cmp r12d, 0xffffff94
jne 0x51f79b
mov rdx, qword [rax + 0x360]
mov r8d, dword [r8 + 0x1c]
mov r10, qword [rdx + 8]
mov rdx, qword [rdx + 0x10]
xor r12d, r12d
xor r13d, r13d
jmp 0x51fd6d
cmp qword [rax + 0x560], 0
jle 0x51eaca
mov byte [rax + 0x58d], 1
movsxd rdx, dword [r8 + 0x18]
cmp qword [rax + 0x498], rdx
je 0x51eb15
mov rbx, rdx
call fcn.0051d080
mov rax, qword [rsp + 0x328]
lea rcx, [rax + 0x4b0]
mov rax, rcx
call fcn.00512dc0
mov rax, qword [rsp + 0x328]
lea rcx, [rax + 0x5d0]
mov rax, rcx
call fcn.00512dc0
mov rax, qword [rsp + 0x328]
lea rcx, [rax + 0x4e0]
mov rax, rcx
nop
call fcn.00512dc0
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
jmp 0x51f79b
cmp r12d, 0xffffff9b
jne 0x51ee00
mov r9, qword [rax + 0x4a8]
test r9, r9
je 0x51eb7f
cmp rcx, r9
jne 0x51f79b
mov qword [rax + 0x4a8], rcx
lea rdx, [0x00520880]
mov qword [rsp + 0x2a0], rdx
mov qword [rsp + 0x2a8], rax
lea rdx, [rsp + 0x2a0]
mov qword [rsp + 0x170], rdx
lea rax, [rsp + 0x158]
call fcn.004342e0
nop word [rax + rax]
test eax, eax
jne 0x51ede5
mov rax, qword [rsp + 0x328]
mov rbx, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x338]
call fcn.0051daa0
mov rdx, qword [rsp + 0x250]
cmp dword [rdx + 0x18], 0xffffffff
jne 0x51ec30
mov rax, qword [rsp + 0x328]
cmp byte [rax + 0x558], 0
jne 0x51ec38
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
jmp 0x51f79b
mov rax, qword [rsp + 0x328]
mov byte [rax + 0x558], 0
mov r8d, dword [rdx + 0x20]
mov dword [rsp + 0x84], r8d
mov r9d, dword [rdx + 0x24]
mov dword [rsp + 0x80], r9d
test r8d, 2
cmp qword [rax + 0x4a0], 0xffffffffffffffff
je 0x51ecb2
test r8d, 2
jbe 0x51ecae
test r9d, 2
jbe 0x51ec80
xor ecx, ecx
jmp 0x51ecb4
call fcn.00516a20
test al, 3
sete al
mov rdx, qword [rsp + 0x250]
mov r8d, dword [rsp + 0x84]
mov r9d, dword [rsp + 0x80]
mov ecx, eax
mov rax, qword [rsp + 0x328]
jmp 0x51ecb4
xor ecx, ecx
jmp 0x51ecb4
xor ecx, ecx
test cl, cl
jne 0x51ecc5
test r8d, 2
nop
jmp 0x51ed6d
mov rsi, qword [rax + 0x498]
mov qword [rax + 0x490], rsi
movsxd rsi, dword [rdx + 0x18]
mov qword [rax + 0x498], rsi
cmp qword [rax + 0x560], 0
jle 0x51ed47
mov byte [rax + 0x58d], 0
mov rdx, qword [rax + 0x28]
mov rcx, qword [rax + 0x560]
mov ebx, 1
xor edi, edi
mov rax, rdx
call fcn.004d37e0
test rax, rax
jne 0x51ed1f
lea rax, [0x005a0248]
mov ebx, 8
call fcn.00512ac0
mov rcx, qword [rsp + 0x250]
movsxd rbx, dword [rcx + 0x18]
mov rax, qword [rsp + 0x328]
call fcn.0051d080
mov ecx, dword [rsp + 0x84]
test ecx, 2
jmp 0x51ed5d
movsxd rbx, dword [rdx + 0x18]
call fcn.0051d080
mov ecx, dword [rsp + 0x84]
test ecx, 2
mov rax, qword [rsp + 0x328]
mov r9d, dword [rsp + 0x80]
seta r8b
test r9d, 2
seta r9b
nop dword [rax]
cmp r9b, r8b
je 0x51edb7
cmp byte [rax + 0x559], 0
jne 0x51edb7
call fcn.0051d900
test al, al
jne 0x51eda2
mov rax, qword [rsp + 0x328]
nop
jmp 0x51edb7
mov rax, qword [rsp + 0x328]
call fcn.0051d960
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
nop
jmp 0x51f79b
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp r12d, 0xfffffff4
jne 0x51f79b
cmp dword [r8 + 0x68], 0
jne 0x51ee2e
mov r10, qword [rax + 0x360]
mov r12d, dword [r8 + 0x58]
mov r13, qword [r10 + 8]
mov r10, qword [r10 + 0x10]
xor edx, edx
xor r15d, r15d
jmp 0x51f7b0
mov qword [rsp + 0xa0], 0x100
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp edi, 0x100
ja 0x51ef60
nop dword [rax]
cmp edi, 0x87
jne 0x51eea0
cmp rsi, 0xd
je 0x51ee78
mov r9, r8
xor edx, edx
jmp 0x51f3b7
mov qword [rsp + 0xa0], 4
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp edi, 0x100
jne 0x51f17b
cmp rsi, 0x20
jne 0x51ef15
cmp qword [rax + 0x498], 0
jl 0x51ef15
cmp qword [rax + 0x388], 0
je 0x51ef15
call fcn.0051d020
test al, al
jne 0x51eee9
mov rax, qword [rsp + 0x328]
mov rsi, qword [rsp + 0x348]
mov r8, qword [rsp + 0x350]
jmp 0x51ef15
mov rax, qword [rsp + 0x328]
mov rbx, qword [rax + 0x498]
call fcn.0051dfc0
mov rax, qword [rsp + 0x328]
mov rsi, qword [rsp + 0x348]
mov r8, qword [rsp + 0x350]
mov rbx, rsi
mov rcx, r8
nop dword [rax + rax]
call fcn.0052c000
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov edi, dword [rsp + 0x340]
mov r9, qword [rsp + 0x350]
xor edx, edx
mov rsi, qword [rsp + 0x348]
jmp 0x51f3b7
cmp edi, 0x101
je 0x51ef9e
cmp edi, 0x128
jne 0x51f17b
cmp si, 1
jne 0x51ef83
or rsi, 0x10000
jmp 0x51ef94
lea r9d, [rsi - 2]
cmp r9w, 1
ja 0x51ef94
and esi, 0x10000
mov r9, r8
xor edx, edx
jmp 0x51f3b7
lea rcx, [rax + 0xe8]
mov rbx, rsi
mov rax, rcx
call fcn.00516be0
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov edi, dword [rsp + 0x340]
mov r9, qword [rsp + 0x350]
xor edx, edx
mov rsi, qword [rsp + 0x348]
jmp 0x51f3b7
cmp edi, 0x202
ja 0x51f020
cmp edi, 0x200
je 0x51f07d
nop word [rax + rax]
cmp edi, 0x201
je 0x51f185
cmp edi, 0x202
je 0x51f04c
jmp 0x51f17b
cmp edi, 0x205
ja 0x51f065
cmp edi, 0x204
jbe 0x51f185
nop word [rax + rax]
nop dword [rax]
cmp edi, 0x205
jne 0x51f17b
mov qword [rax + 0x4a0], 0xffffffffffffffff
mov r9, r8
xor edx, edx
nop dword [rax]
jmp 0x51f3b7
cmp edi, 0x206
je 0x51f185
cmp edi, 0x2a3
jne 0x51f17b
cmp byte [rax + 0x5c2], 0
je 0x51f090
mov r9, r8
xor edx, edx
jmp 0x51f3b7
mov byte [rax + 0x5c2], 1
lea rcx, [0x00520c40]
mov qword [rsp + 0x2f8], rcx
mov qword [rsp + 0x300], rax
lea rcx, [rsp + 0x2f8]
mov qword [rsp + 0x200], rcx
lea rax, [rsp + 0x1e8]
call fcn.004342e0
test eax, eax
jne 0x51f165
mov ebx, dword [rsp + 0x340]
nop word [rax + rax]
cmp ebx, 0x200
jne 0x51f102
mov rdx, qword [rsp + 0x350]
shr edx, 0x10
movsx rdx, dx
movzx r8d, dx
nop
shl r8d, 0x10
jmp 0x51f10a
mov r8, qword [rsp + 0x350]
mov qword [rsp + 0xf0], r8
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x348]
mov rdi, r8
call fcn.004d3380
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov edi, dword [rsp + 0x340]
mov r9, qword [rsp + 0xf0]
xor edx, edx
mov rsi, qword [rsp + 0x348]
nop dword [rax + rax]
jmp 0x51f3b7
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov r9, r8
xor edx, edx
jmp 0x51f3b7
movups xmmword [rsp + 0x68], xmm15
movups xmmword [rsp + 0x70], xmm15
movsx rdx, r8w
shr r8d, 0x10
movsx r8, r8w
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], r8d
lea rdi, [rsp + 0x68]
mov rax, rcx
mov ebx, 0x1012
xor ecx, ecx
call fcn.004d3380
movsxd rdx, dword [rsp + 0x74]
mov rax, qword [rsp + 0x328]
mov qword [rax + 0x4a0], rdx
cmp dword [rsp + 0x70], 1
jne 0x51f23b
call fcn.0051d900
test al, al
je 0x51f1ef
mov rax, qword [rsp + 0x328]
mov byte [rax + 0x558], 1
jmp 0x51f22e
mov rax, qword [rsp + 0x328]
call fcn.0051d020
nop dword [rax]
test al, al
je 0x51f381
mov rax, qword [rsp + 0x328]
cmp qword [rax + 0x498], 0
jl 0x51f22e
mov rbx, 0xffffffffffffffff
call fcn.0051d080
mov rax, qword [rsp + 0x328]
cmp byte [rax + 0x5c6], 0
jne 0x51f35f
mov ecx, dword [rsp + 0x340]
cmp ecx, 0x203
ja 0x51f260
cmp ecx, 0x201
je 0x51f268
cmp ecx, 0x203
je 0x51f2d0
jmp 0x51f334
cmp ecx, 0x204
jne 0x51f2c8
cmp dword [rsp + 0x70], 8
jne 0x51f334
cmp qword [rax + 0x388], 0
nop dword [rax + rax]
je 0x51f334
call fcn.0051d020
test al, al
jne 0x51f2a5
mov rax, qword [rsp + 0x328]
mov ecx, dword [rsp + 0x340]
nop
jmp 0x51f334
movsxd rbx, dword [rsp + 0x74]
mov rax, qword [rsp + 0x328]
call fcn.0051dfc0
mov rax, qword [rsp + 0x328]
mov ecx, dword [rsp + 0x340]
jmp 0x51f334
cmp ecx, 0x206
jne 0x51f334
mov r8, qword [rax + 0x498]
nop word [rax + rax]
cmp qword [rax + 0x490], r8
je 0x51f334
cmp qword [rax + 0x560], 0
jle 0x51f334
mov qword [rax + 0x490], r8
lea rcx, [rax + 0x4b0]
mov rax, rcx
call fcn.00512dc0
mov rax, qword [rsp + 0x328]
lea rcx, [rax + 0x5d0]
mov rax, rcx
nop dword [rax + rax]
call fcn.00512dc0
mov rax, qword [rsp + 0x328]
mov ecx, dword [rsp + 0x340]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov edi, dword [rsp + 0x340]
mov r9, qword [rsp + 0x350]
xor edx, edx
mov rsi, qword [rsp + 0x348]
jmp 0x51f3b7
mov qword [rsp + 0xa0], 0
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov rcx, qword [rsp + 0x328]
mov rax, qword [rcx + 0x318]
call fcn.004d3540
mov qword [rsp + 0xa0], 0
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov qword [rsp + 0xf0], r9
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xb0], r9
lea r8, [0x005207c0]
mov qword [rsp + 0x268], r8
mov qword [rsp + 0x270], rcx
mov qword [rsp + 0x278], rax
mov qword [rsp + 0x280], r9
lea r8, [rsp + 0xb0]
mov qword [rsp + 0x288], r8
mov r8d, edi
add r8, 0xfffffffffffffe00
cmp r8, 0xa
ja 0x51f619
mov byte [rsp + 0x57], dl
lea r10, [0x005de900]
jmp qword [r10 + r8*8]
test dl, dl
je 0x51f646
cmp byte [rax + 0x55a], 0
je 0x51f677
cmp byte [rax + 0x5c4], 0
jne 0x51f677
mov rdx, qword [rax + 0x360]
mov r8, qword [rdx + 8]
mov rdx, qword [rdx + 0x10]
xor r10d, r10d
xor r11d, r11d
jmp 0x51f6b9
mov rax, rbx
mov rbx, rcx
mov ecx, edi
mov rdi, rsi
mov rsi, r9
call fcn.004d11c0
mov qword [rsp + 0xa0], rax
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp edi, 0x14
jne 0x51f646
mov qword [rsp + 0xa0], 1
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov r12, qword [r8 + r10*8]
movzx r12d, byte [r12 + 0x80]
lea r13, [r11 + 1]
inc r10
test r12, r12
cmovne r11, r13
cmp r10, rdx
jl 0x51f69e
xor r10d, r10d
xor r12d, r12d
jmp 0x51f6c9
inc r10
cmp r10, rdx
jge 0x51f6eb
mov r13, qword [r8 + r10*8]
cmp byte [r13 + 0x81], 0
je 0x51f6c6
cmp byte [r13 + 0x80], 0
je 0x51f6c6
inc r12
jmp 0x51f6c6
sub r11, r12
test r11, r11
je 0x51f70a
setg dl
cmp qword [rax + 0x338], rcx
sete r8b
cmp dl, r8b
jne 0x51f677
mov byte [rax + 0x5c4], 1
lea rcx, [0x005207a0]
mov qword [rsp + 0x258], rcx
mov qword [rsp + 0x260], rax
lea rcx, [rsp + 0x258]
mov qword [rsp + 0x110], rcx
lea rax, [rsp + 0xf8]
call fcn.004342e0
test eax, eax
jne 0x51f785
mov rax, qword [rsp + 0x328]
call fcn.0051dc80
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0xe8]
mov edi, dword [rsp + 0x340]
mov r9, qword [rsp + 0xf0]
nop dword [rax]
jmp 0x51f677
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov r9, r11
xor edx, edx
jmp 0x51f3b7
inc rdx
mov rbx, qword [rsp + 0x330]
cmp rdx, r10
jge 0x51f7e6
mov rbx, qword [r13 + rdx*8]
nop word [rax + rax]
cmp byte [rbx + 0x81], r9b
jne 0x51f7a5
cmp byte [rbx + 0x80], 0
je 0x51f7a5
cmp r15d, r12d
je 0x51f7dc
inc r15d
jmp 0x51f7a5
mov rbx, qword [rsp + 0x330]
jmp 0x51f7ed
mov rdx, 0xffffffffffffffff
cmp rdx, 0xffffffffffffffff
je 0x51f79b
mov rsi, qword [r8 + 0x38]
lea r9, [0x00520920]
mov qword [rsp + 0x2d0], r9
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x2e0], rsi
mov qword [rsp + 0x2e8], rdx
mov qword [rsp + 0x2f0], r8
mov r9d, dword [r8 + 0x18]
cmp r9d, 0x10001
ja 0x51fc20
nop word [rax + rax]
cmp r9d, 1
je 0x51fbf6
cmp r9d, 0x10001
jne 0x51fce9
mov qword [rsp + 0xf0], rsi
mov rdx, qword [r8 + 0x38]
mov rax, rcx
mov ebx, 0x102c
mov rcx, rdx
mov edi, 2
call fcn.004d3380
bt eax, 1
jae 0x51f8a2
mov rcx, qword [rsp + 0x328]
mov edx, dword [rcx + 0x570]
mov dword [rcx + 0x57c], edx
mov edx, dword [rcx + 0x574]
mov dword [rcx + 0x580], edx
nop
jmp 0x51f8c2
mov rcx, qword [rsp + 0x328]
mov edx, dword [rcx + 0x568]
mov dword [rcx + 0x57c], edx
mov edx, dword [rcx + 0x56c]
mov dword [rcx + 0x580], edx
jae 0x51f8ce
mov rsi, qword [rsp + 0xf0]
jmp 0x51f91b
cmp byte [rcx + 0x58c], 0
je 0x51f913
mov rdx, qword [rsp + 0xf0]
mov rbx, rdx
shr rdx, 0x3f
add rdx, rbx
and rdx, 0xfffffffffffffffe
mov rsi, rbx
sub rbx, rdx
cmp rbx, 1
jne 0x51f91b
mov edx, dword [rcx + 0x584]
mov dword [rcx + 0x57c], edx
mov edx, dword [rcx + 0x588]
mov dword [rcx + 0x580], edx
jmp 0x51f91b
mov rsi, qword [rsp + 0xf0]
mov edx, dword [rcx + 0x57c]
mov dword [rcx + 0x400], edx
mov edx, dword [rcx + 0x580]
mov dword [rcx + 0x404], edx
cmp qword [rcx + 0x3a8], 0
jne 0x51f946
bt eax, 1
jmp 0x51fa6b
mov qword [rsp + 0xb8], rax
mov qword [rcx + 0x3b8], rsi
mov qword [rcx + 0x3c0], 0xffffffffffffffff
mov rdx, qword [rsp + 0x250]
mov ebx, dword [rdx + 0x28]
mov esi, dword [rdx + 0x2c]
mov edi, dword [rdx + 0x30]
mov r8d, dword [rdx + 0x34]
movsxd r9, ebx
movsxd r10, esi
sub edi, ebx
movsxd rbx, edi
sub r8d, esi
movsxd rsi, r8d
mov qword [rcx + 0x3c8], r9
mov qword [rcx + 0x3d0], r10
mov qword [rcx + 0x3d8], rbx
mov qword [rcx + 0x3e0], rsi
mov rax, qword [rcx + 0x28]
call fcn.004d2160
mov ecx, eax
mov rbx, qword [rsp + 0x328]
mov qword [rbx + 0x3f0], rcx
mov qword [rbx + 0x3e8], 0
cmp dword [0x00737650], 0
je 0x51f9ea
mov rcx, qword [rbx + 0x408]
call fcn.0046efa0
mov qword [r11], rcx
mov rcx, qword [rbx + 0x418]
mov qword [r11 + 8], rcx
movups xmmword [rbx + 0x408], xmm15
mov qword [rbx + 0x418], 0
mov rcx, qword [rbx + 0x3a8]
mov rax, qword [rbx + 0x3b0]
mov rcx, qword [rcx + 0x18]
lea rdx, [rbx + 0x3b8]
mov rbx, rdx
call rcx
mov rcx, qword [rsp + 0x328]
mov rdx, qword [rcx + 0x408]
cmp dword [0x00737650], 0
jne 0x51fa42
mov rbx, qword [rsp + 0xb8]
bt ebx, 1
nop
jmp 0x51fa61
call fcn.0046efa0
mov qword [r11], rdx
mov rbx, qword [rcx + 0x420]
mov qword [r11 + 8], rbx
mov rbx, qword [rsp + 0xb8]
bt ebx, 1
mov qword [rcx + 0x420], rdx
mov rax, rbx
jae 0x51fa87
mov edx, dword [rcx + 0x57c]
mov dword [rcx + 0x400], edx
mov edx, dword [rcx + 0x580]
mov dword [rcx + 0x404], edx
jmp 0x51fa9f
mov edx, dword [rcx + 0x400]
mov dword [rcx + 0x57c], edx
mov edx, dword [rcx + 0x404]
mov dword [rcx + 0x580], edx
mov edx, dword [rcx + 0x400]
cmp dword [rcx + 0x568], edx
je 0x51fbb6
bt eax, 1
jae 0x51fad6
call fcn.004d22e0
mov rcx, qword [rsp + 0x328]
cmp qword [rcx + 0x318], rax
je 0x51fad6
cmp qword [rcx + 0x338], rax
jne 0x51fade
mov edx, dword [rcx + 0x400]
jmp 0x51fae4
mov edx, dword [rcx + 0x578]
mov eax, edx
call fcn.0050d740
test rax, rax
je 0x51fb93
mov qword [rsp + 0x230], rax
lea rcx, [0x005208c0]
mov qword [rsp + 0x2c0], rcx
mov qword [rsp + 0x2c8], rax
lea rcx, [rsp + 0x2c0]
mov qword [rsp + 0x1d0], rcx
lea rax, [rsp + 0x1b8]
call fcn.004342e0
test eax, eax
jne 0x51fb9d
mov rcx, qword [rsp + 0x250]
mov rax, qword [rcx + 0x20]
call fcn.0050dc20
mov rcx, qword [rsp + 0x250]
mov edx, dword [rcx + 0x28]
mov ebx, dword [rcx + 0x30]
mov esi, dword [rcx + 0x34]
mov edi, dword [rcx + 0x2c]
movsxd r8, edx
movsxd r9, edi
sub ebx, edx
movsxd r10, ebx
sub esi, edi
movsxd r11, esi
mov rdi, qword [0x006f13b0]
mov rsi, qword [0x006f13b8]
mov qword [rsp], 1
lea rbx, [0x005de4f0]
mov rcx, qword [rsp + 0x230]
call fcn.0050e5c0
mov rcx, qword [rsp + 0x328]
jmp 0x51fbb6
nop dword [rax]
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov eax, dword [rcx + 0x404]
mov rdx, qword [rsp + 0x250]
mov dword [rdx + 0x50], eax
mov eax, dword [rcx + 0x400]
mov dword [rdx + 0x54], eax
mov qword [rsp + 0xa0], 0x20
nop dword [rax]
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov qword [rsp + 0xa0], 0x20
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp r9d, 0x30001
jne 0x51fce0
cmp qword [rax + 0x420], 0
je 0x51fc75
mov rcx, qword [rax + 0x28]
mov rax, rcx
nop
call fcn.004d2160
mov rcx, qword [rsp + 0x328]
mov rcx, qword [rcx + 0x420]
mov ebx, eax
mov rax, rcx
call fcn.00513460
mov rcx, qword [rsp + 0x250]
mov rcx, qword [rcx + 0x20]
mov rbx, rax
mov rax, rcx
call fcn.004c8fe0
mov rax, qword [rsp + 0x2d0]
lea rdx, [rsp + 0x2d0]
call rax
cmp rax, 4
jne 0x51fc96
call fcn.004d4300
test al, al
jne 0x51fcb8
mov qword [rsp + 0xa0], 0x112
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov qword [rsp + 0xa0], 4
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
cmp r9d, 0x30002
je 0x51fd0b
mov qword [rsp + 0xa0], 0x100
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov rax, qword [rsp + 0x2d0]
lea rdx, [rsp + 0x2d0]
call rax
nop dword [rax]
cmp rax, 4
jne 0x51fd48
mov qword [rsp + 0xa0], 4
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
mov qword [rsp + 0xa0], 0x102
call fcn.00434860
mov rax, qword [rsp + 0xa0]
add rsp, 0x318
pop rbp
ret
inc r12
cmp r12, rdx
jge 0x51fd93
mov r15, qword [r10 + r12*8]
cmp byte [r15 + 0x81], r9b
jne 0x51fd6a
cmp byte [r15 + 0x80], 0
je 0x51fd6a
cmp r13d, r8d
je 0x51fd9a
inc r13d
jmp 0x51fd6a
mov r12, 0xffffffffffffffff
mov qword [rsp + 0x88], r12
mov rdx, qword [rax + 0x368]
mov r8, qword [rax + 0x370]
mov qword [rsp + 0x220], r8
test rdx, rdx
je 0x51fdd3
mov r9, qword [rdx + 8]
mov r10, qword [0x006dee00]
mov r13, qword [r10]
mov edx, dword [rdx + 0x10]
jmp 0x51ff21
mov qword [rsp + 0x248], rdx
nop dword [rax + rax]
test rdx, rdx
jne 0x51fdea
xor r9d, r9d
jmp 0x51fe40
mov rcx, qword [rdx + 0x18]
mov rax, r8
mov rbx, r12
call rcx
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x248]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r8, qword [rsp + 0x220]
mov r11, qword [rsp + 0x350]
mov r12, qword [rsp + 0x88]
mov r9d, eax
mov rax, qword [rsp + 0x328]
test r9b, r9b
je 0x51fed3
mov rcx, qword [rdx + 0x38]
mov rax, r8
call rcx
mov rbx, qword [rsp + 0x88]
cmp rax, rbx
jne 0x51fe83
mov rcx, qword [rsp + 0x248]
mov rdx, qword [rcx + 0x30]
mov rax, qword [rsp + 0x220]
call rdx
cmp rax, 1
jne 0x51fe87
mov rbx, qword [rsp + 0x88]
xor eax, eax
jmp 0x51fe94
mov rbx, qword [rsp + 0x88]
mov eax, 1
mov rdx, qword [rsp + 0x328]
mov qword [rdx + 0x590], rbx
mov qword [rdx + 0x598], rax
mov rsi, qword [rsp + 0x248]
mov rsi, qword [rsi + 0x20]
mov rcx, rax
mov rax, qword [rsp + 0x220]
call rsi
mov rax, qword [rsp + 0x328]
mov r12, qword [rsp + 0x88]
lea rcx, [rax + 0x4f8]
mov rbx, r12
mov rax, rcx
call fcn.00516840
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
jmp 0x51f79b
mov rbx, qword [rsp + 0x330]
mov r15, rdx
and rdx, r13
shl rdx, 4
mov rbx, qword [rdx + r10 + 8]
cmp rbx, r9
je 0x51ff94
lea rdx, [r15 + 1]
test rbx, rbx
jne 0x51ff19
lea rax, [0x006dee00]
mov rbx, r9
call fcn.0040b1a0
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r8, qword [rsp + 0x220]
mov r11, qword [rsp + 0x350]
mov r12, qword [rsp + 0x88]
mov rdx, rax
mov rax, qword [rsp + 0x328]
jmp 0x51fdd3
mov rdx, qword [rdx + r10 + 0x10]
mov rbx, qword [rsp + 0x330]
jmp 0x51fdd3
inc rdx
mov rbx, qword [rsp + 0x330]
cmp rdx, r10
jge 0x51ffe6
mov rbx, qword [r13 + rdx*8]
nop dword [rax + rax]
cmp byte [rbx + 0x81], r9b
jne 0x51ffa6
cmp byte [rbx + 0x80], 0
je 0x51ffa6
cmp r15d, r12d
je 0x51ffdc
inc r15d
jmp 0x51ffa6
mov rbx, qword [rsp + 0x330]
jmp 0x51ffed
mov rdx, 0xffffffffffffffff
cmp rdx, 0xffffffffffffffff
je 0x51f79b
mov qword [rsp + 0x98], rdx
mov r9d, dword [r8 + 0x18]
movsxd r10, dword [r8 + 0x1c]
mov qword [rsp + 0xe0], r10
test r9d, 1
jbe 0x5203d4
mov rsi, qword [rax + 0x368]
mov rdi, qword [rax + 0x370]
mov rsi, qword [rsi + 0x48]
mov rbx, r10
mov rcx, rdx
mov rax, rdi
call rsi
mov rdx, qword [rsp + 0x328]
mov rsi, qword [rdx + 0x360]
mov rcx, qword [rsi + 0x10]
mov rdi, qword [rsp + 0x98]
cmp rdi, rcx
jae 0x52073f
mov r8, qword [rsi + 8]
mov r8, qword [r8 + rdi*8]
mov r9, qword [r8 + 0x78]
test r9, r9
jne 0x5202e6
test rax, rax
je 0x52027d
mov r9d, dword [rax + 0x10]
shr r9d, 0xc
and r9d, 7
lea rcx, [0x005de000]
jmp qword [rcx + r9*8]
mov qword [rsp + 0x308], rax
mov qword [rsp + 0x310], rbx
mov r8, qword [rdx + 0x360]
mov rcx, qword [r8 + 0x10]
nop dword [rax + rax]
cmp rdi, rcx
jae 0x520732
mov rdx, qword [r8 + 8]
mov rdx, qword [rdx + rdi*8]
mov rax, qword [rdx + 0x30]
mov rbx, qword [rdx + 0x38]
lea rcx, [rsp + 0x308]
mov esi, 1
mov rdi, rsi
call fcn.004af140
mov rdx, qword [rsp + 0x328]
mov rdi, qword [rsp + 0x98]
mov rsi, rbx
mov rcx, rax
jmp 0x5202f4
mov rcx, qword [r9]
mov rdx, r9
call rcx
mov rsi, rbx
mov rcx, rax
mov rax, rcx
mov rbx, rsi
call fcn.004977e0
nop
test rdi, rdi
jne 0x52071f
mov r8, qword [rsp + 0x250]
movsxd r9, dword [r8 + 0x38]
cmp rbx, r9
cmovl r9, rbx
nop dword [rax]
cmp rcx, r9
jb 0x520714
mov r10, qword [r8 + 0x30]
test byte [r10], al
cmp r9, 0x108
mov ecx, 0x108
cmovl rcx, r9
cmp rax, r10
je 0x52037d
mov qword [rsp + 0x238], r10
mov qword [rsp + 0x90], r9
shl rcx, 1
mov rbx, rax
mov rax, r10
nop
call fcn.0046fcc0
mov r8, qword [rsp + 0x250]
mov r9, qword [rsp + 0x90]
mov r10, qword [rsp + 0x238]
lea rax, [r9 - 1]
cmp rax, 0x108
jae 0x52070a
mov word [r10 + r9*2 - 2], 0
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r10, qword [rsp + 0xe0]
mov r11, qword [rsp + 0x350]
mov r9, qword [rax + 0x398]
nop dword [rax + rax]
test r9, r9
jne 0x5203f3
cmp qword [rax + 0x3a8], 0
je 0x52066f
mov r12d, dword [r8 + 0x18]
nop word [rax + rax]
test r12d, 2
jbe 0x52066f
cmp dword [r8 + 0x20], 0
jne 0x520484
test r9, r9
jne 0x520422
xor r9d, r9d
xor r12d, r12d
nop
jmp 0x52048a
mov rcx, qword [rax + 0x3a0]
mov rdx, qword [r9 + 0x18]
mov rbx, r10
mov rax, rcx
call rdx
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r8, qword [rsp + 0x250]
mov r10, qword [rsp + 0xe0]
mov r11, qword [rsp + 0x350]
mov r9, rax
mov r12, rbx
mov rax, qword [rsp + 0x328]
mov rbx, qword [rsp + 0x330]
jmp 0x52048a
xor r9d, r9d
xor r12d, r12d
mov r13, qword [rax + 0x3a8]
mov r15, qword [rax + 0x3b0]
nop dword [rax + rax]
test r13, r13
je 0x5205a0
test r9, r9
jne 0x5205a0
mov qword [rsp + 0x218], r15
mov qword [rsp + 0xa8], r13
mov qword [rax + 0x3b8], r10
mov qword [rax + 0x3c0], rdx
movups xmmword [rax + 0x3c8], xmm15
movups xmmword [rax + 0x3d8], xmm15
mov rcx, qword [rax + 0x28]
mov rax, rcx
call fcn.004d2160
mov ecx, eax
mov rbx, qword [rsp + 0x328]
mov qword [rbx + 0x3f0], rcx
mov qword [rbx + 0x410], 0
cmp dword [0x00737650], 0
je 0x520520
mov rcx, qword [rbx + 0x418]
call fcn.0046ef80
mov qword [r11], rcx
mov qword [rbx + 0x418], 0
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rcx + 0x18]
lea rdx, [rbx + 0x3b8]
mov rax, qword [rsp + 0x218]
mov rbx, rdx
call rcx
mov rax, qword [rsp + 0x328]
mov r9, qword [rax + 0x410]
mov r12, qword [rax + 0x418]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r8, qword [rsp + 0x250]
mov r10, qword [rsp + 0xe0]
mov r11, qword [rsp + 0x350]
nop dword [rax + rax]
test r9, r9
je 0x52066f
mov qword [rsp + 0x228], r12
mov qword [rsp + 0xc0], r9
cmp qword [rax + 0x428], 0
jne 0x5205d6
mov rbx, r9
mov rcx, r12
call fcn.0051e0e0
mov rax, qword [rsp + 0x328]
mov rcx, qword [rax + 0x28]
nop
mov rax, rcx
nop
call fcn.004d2160
mov rcx, qword [rsp + 0x328]
mov rdx, qword [rcx + 0x428]
movzx edi, byte [rcx + 0x430]
mov rsi, qword [rcx + 0x438]
mov r8, qword [rcx + 0x440]
mov r9d, eax
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x228]
mov rcx, rdx
nop
call fcn.005164c0
mov rcx, qword [rsp + 0x250]
mov dword [rcx + 0x3c], eax
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r8, qword [rsp + 0x250]
mov r10, qword [rsp + 0xe0]
mov r11, qword [rsp + 0x350]
cmp dword [r8 + 0x20], 0
jne 0x51f79b
mov r9d, dword [r8 + 0x28]
nop
test r9d, 0xf000
jbe 0x51f79b
mov r9, qword [rax + 0x388]
test r9, r9
je 0x51f79b
mov rcx, qword [rax + 0x390]
mov rdx, qword [r9 + 0x18]
mov rbx, r10
mov rax, rcx
call rdx
test al, al
je 0x5206c6
mov r8, qword [rsp + 0x250]
mov dword [r8 + 0x24], 0x2000
jmp 0x5206d6
mov r8, qword [rsp + 0x250]
mov dword [r8 + 0x24], 0x1000
mov rax, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x338]
mov rbx, qword [rsp + 0x330]
mov rsi, qword [rsp + 0x348]
mov edi, dword [rsp + 0x340]
mov r11, qword [rsp + 0x350]
jmp 0x51f79b
mov ecx, 0x108
call fcn.0046f340
mov rdx, rcx
mov rcx, r9
call fcn.0046f3c0
lea rax, [0x005500c0]
lea rbx, [0x005dcf00]
call fcn.00467520
mov rax, rdi
call fcn.0046f340
call fcn.0046f340
mov rax, rdi
call fcn.0046f340
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov dword [rsp + 0x20], edi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call fcn.0046d060
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov edi, dword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp fcn.0051e680