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

Disassembly:
push r15
push r14
mov eax, 0x3188
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.005e8740
sub rsp, rax
movaps xmmword [rsp + 0x3170], xmm6
mov rsi, rdx
mov r14, rcx
mov ecx, 0x60
mov r15, qword [0x00670bd0]
lea rbp, [rsp + 0x260]
mov rax, qword [r15]
call qword [rax + 0x28]
mov rdi, rax
mov qword [rsp + 0xc8], rax
mov rax, qword [rsi]
mov r8, rbp
mov rdx, rsi
mov rcx, r14
mov qword [rdi], rax
mov rax, qword [rsi + 8]
mov qword [rdi + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [rdi + 0x10], rax
mov rax, qword [rsi + 0x18]
mov dword [rdi + 0x20], 0
mov dword [rdi + 0x28], 0
mov dword [rdi + 0x2c], 0
mov dword [rdi + 0x30], 0
mov qword [rdi + 0x18], rax
mov eax, dword [rsi + 0x10]
mov dword [rdi + 0x34], 0
mov qword [rdi + 0x48], 0
mov qword [rdi + 0x50], 0
mov dword [rdi + 0x58], 0x12
mov dword [rdi + 0x24], 0
mov dword [rsp + 0x128], eax
call fcn.0048ec50
test eax, eax
je 0x491945
mov edi, dword [rsi + 0x10]
test edi, edi
jne 0x491945
mov rbx, qword [rsp + 0x270]
xor edi, edi
test rbx, rbx
je 0x4918d0
mov r12, qword [0x00670de0]
mov r13, qword [0x00670df0]
jmp 0x491853
test eax, eax
je 0x491945
add edi, edx
mov rbx, qword [rbx + 8]
test rbx, rbx
je 0x4918cc
mov edx, dword [rbx + 0x10]
test edx, edx
jg 0x491840
mov rdx, qword [rbx]
cmp rdx, r12
je 0x491867
cmp rdx, r13
jne 0x49184a
mov rcx, qword [rbx + 0x18]
cmp qword [rcx + 0x128], 0
je 0x49184a
movsxd r8, dword [rcx + 0x10]
mov rdx, qword [rsp + 0x3160]
add dword [rdx + r8*4], 1
movsxd r9, dword [rcx + 0x10]
test byte [rdx + r9*4], 1
mov r8, r9
je 0x4918a0
mov rdx, qword [rsp + 0x3168]
mov qword [rdx + r9*8], rcx
mov edx, dword [rsp + 0x268]
cmp r8d, edx
jl 0x49184a
cmp qword [rbx], r12
je 0x492d20
mov rbx, qword [rbx + 8]
mov eax, dword [rcx + 0x130]
mov dword [rsp + 0x268], r8d
test rbx, rbx
jne 0x491853
test eax, eax
je 0x491945
mov rax, qword [rsp + 0xc8]
mov esi, dword [rax + 0x10]
mov dword [rax + 0x20], edi
mov dword [rax + 0x40], 0
mov dword [rax + 0x3c], 0
mov dword [rax + 0x38], 0
test esi, esi
jne 0x491938
mov rdx, qword [rax + 8]
mov rax, qword [r14 + 0x100]
mov r8d, dword [rax + 0xd0]
mov eax, dword [r14 + 0x20]
mov rcx, qword [rdx + 0x18]
lea eax, [rax + rax + 1]
cdqe
mov dword [rcx + rax*4], r8d
mov eax, dword [r14 + 0x20]
add eax, eax
cdqe
mov ebx, dword [rcx + rax*4]
test ebx, ebx
je 0x491938
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
call fcn.0048dfb0
mov rcx, rbp
call fcn.0048efa0
jmp 0x49296f
mov rcx, rbp
xor r12d, r12d
xor ebp, ebp
call fcn.0048efa0
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
mov r13, r14
mov rcx, qword [rsi + 0x18]
movsd xmm6, qword [0x00644e88]
mov dword [rsp + 0xf8], 0xffffffff
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x140], rax
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x148], rdx
mov qword [rsp + 0x158], rcx
mov dword [rsp + 0x108], 0
mov dword [rsp + 0x110], 0
mov qword [rsp + 0x150], rax
mov qword [rsp + 0xe8], 0
mov qword [rsp + 0x120], 0
mov dword [rsp + 0xc4], 0
mov dword [rsp + 0xbc], 0
mov dword [rsp + 0xfc], 0
mov dword [rsp + 0x12c], 0
mov dword [rsp + 0x10c], 0
mov dword [rsp + 0xc0], 1
mov dword [rsp + 0x114], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xa8], 0
mov rbx, qword [rdx + 0x10]
mov dword [rsp + 0x134], eax
mov ecx, eax
mov r14, rbx
jmp 0x491a6d
mov edx, dword [r14 + 0x10]
cmp edx, eax
jg 0x492993
mov r14, qword [r14 + 8]
sub eax, edx
mov ecx, eax
test r14, r14
je 0x4929c5
test eax, eax
jg 0x491a50
test r14, r14
mov qword [rsp + 0xa0], r14
mov dword [rsp + 0x134], ecx
je 0x492d73
lea rax, [rsp + 0x138]
mov qword [rsp + 0x100], rax
nop dword [rax]
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x491abc
test ebp, ebp
je 0x491abc
cmp qword [rax + 0x18], 0
je 0x492ac1
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax]
cmp qword [rax + 0x30], 0
je 0x492580
test r12, r12
je 0x492be4
lea rax, [rsp + 0x140]
mov r8, qword [rsp + 0x100]
lea rdi, [rsp + 0x180]
mov rdx, r13
mov rcx, rax
mov qword [rsp + 0xf0], rax
call fcn.0048e9c0
mov ecx, 0xe
mov qword [rsp + 0xb0], rax
xor eax, eax
mov qword [rsp + 0xd0], rdi
mov r11d, dword [rsp + 0x138]
rep stosq qword [rdi], rax
mov rax, qword [r13 + 0x88]
test r11d, r11d
mov qword [rsp + 0x198], rax
mov rax, qword [r13 + 0x90]
mov qword [rsp + 0x1a0], rax
mov eax, dword [r13 + 0xa0]
mov dword [rsp + 0x1c8], eax
mov eax, dword [r13 + 0xa4]
mov dword [rsp + 0x1cc], eax
mov eax, dword [r13 + 0xa8]
mov dword [rsp + 0x1d0], eax
mov rax, qword [r13 + 0xb8]
mov qword [rsp + 0x1d8], rax
mov eax, dword [r13 + 0xc0]
mov dword [rsp + 0x1e0], eax
mov eax, dword [r13 + 0xc4]
mov dword [rsp + 0x1ec], eax
jle 0x491fab
mov rdi, qword [rsp + 0xb0]
mov esi, 0xffffffff
xor ebx, ebx
mov qword [rsp + 0x31d0], r13
mov dword [rsp + 0x6c], esi
mov r14d, esi
mov dword [rsp + 0x94], esi
mov dword [rsp + 0x90], esi
mov r13d, esi
mov dword [rsp + 0x88], esi
mov dword [rsp + 0x84], esi
mov dword [rsp + 0x80], esi
mov dword [rsp + 0x8c], esi
mov dword [rsp + 0x74], esi
mov dword [rsp + 0x7c], esi
mov dword [rsp + 0x78], esi
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x9c], esi
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x64], esi
mov dword [rsp + 0x98], esi
mov dword [rsp + 0x60], esi
mov dword [rsp + 0xb8], esi
mov dword [rsp + 0x5c], esi
mov qword [rsp + 0xe0], r12
mov r12d, esi
mov esi, ebx
mov rbx, rdi
mov rdi, qword [rsp + 0x31d0]
jmp 0x491f59
test rax, rax
je 0x491c5b
mov ecx, dword [rbp + 0x10]
cmp ecx, dword [rsp + 0x5c]
jle 0x491c5b
mov qword [rsp + 0x180], rax
mov dword [rsp + 0x5c], ecx
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x491c90
mov rax, qword [r15]
call qword [rax + 0xab0]
cmp byte [rax], 0
je 0x491c90
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0xb8]
jle 0x491c90
mov ecx, dword [rbp + 0x30]
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x188], ecx
nop
cmp qword [rbp + 0x40], 0
je 0x491cbd
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x60]
jle 0x491cbd
cmp qword [rsp + 0x180], 0
je 0x492465
mov ecx, dword [rbp + 0x48]
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x18c], ecx
mov rax, qword [rbp + 0x50]
test rax, rax
je 0x491ce1
mov ecx, dword [rbp + 0x10]
cmp ecx, dword [rsp + 0x98]
jle 0x491ce1
mov qword [rsp + 0x190], rax
mov dword [rsp + 0x98], ecx
mov rax, qword [rbp + 0x58]
test rax, rax
je 0x491cff
mov ecx, dword [rbp + 0x10]
cmp ecx, dword [rsp + 0x64]
jle 0x491cff
mov qword [rsp + 0x198], rax
mov dword [rsp + 0x64], ecx
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x491d1d
mov ecx, dword [rbp + 0x10]
cmp ecx, dword [rsp + 0x68]
jle 0x491d1d
mov qword [rsp + 0x1a0], rax
mov dword [rsp + 0x68], ecx
mov rax, qword [rbp + 0x68]
test rax, rax
je 0x491d41
mov ecx, dword [rbp + 0x10]
cmp ecx, dword [rsp + 0x9c]
jle 0x491d41
mov qword [rsp + 0x1a8], rax
mov dword [rsp + 0x9c], ecx
cmp qword [rbp + 0x70], 0
je 0x491d5f
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x70]
jle 0x491d5f
mov ecx, dword [rbp + 0x78]
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x1b0], ecx
cmp qword [rbp + 0x80], 0
je 0x491d83
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x78]
jle 0x491d83
mov ecx, dword [rbp + 0x88]
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x1b4], ecx
cmp qword [rbp + 0x90], 0
je 0x491da7
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x7c]
jle 0x491da7
mov ecx, dword [rbp + 0x98]
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x1b8], ecx
cmp qword [rbp + 0xa0], 0
je 0x491dcb
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x74]
jle 0x491dcb
mov ecx, dword [rbp + 0xa8]
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x1bc], ecx
cmp qword [rbp + 0xb0], 0
je 0x491df5
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x8c]
jle 0x491df5
mov ecx, dword [rbp + 0xb8]
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x1c0], ecx
cmp qword [rbp + 0xc0], 0
je 0x491e1f
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x80]
jle 0x491e1f
mov ecx, dword [rbp + 0xc8]
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x1c4], ecx
cmp qword [rbp + 0xd0], 0
je 0x491e49
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x84]
jle 0x491e49
mov ecx, dword [rbp + 0xd8]
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x1c8], ecx
cmp qword [rbp + 0xe0], 0
je 0x491e6b
mov eax, dword [rbp + 0x10]
cmp eax, r12d
jle 0x491e6b
mov ecx, dword [rbp + 0xe8]
mov r12d, eax
mov dword [rsp + 0x1cc], ecx
cmp qword [rbp + 0xf0], 0
je 0x491e95
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x88]
jle 0x491e95
mov ecx, dword [rbp + 0xf8]
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x1d0], ecx
cmp qword [rbp + 0x100], 0
je 0x491ec1
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x90]
jle 0x491ec1
mov rcx, qword [rbp + 0x108]
mov dword [rsp + 0x90], eax
mov qword [rsp + 0x1d8], rcx
mov eax, dword [rbp + 0x110]
cmp eax, 2
je 0x491ee6
mov ecx, dword [rbp + 0x10]
cmp ecx, dword [rsp + 0x94]
jle 0x491ee6
mov dword [rsp + 0x1e0], eax
mov dword [rsp + 0x94], ecx
cmp qword [rbp + 0x118], 0
je 0x491f08
mov eax, dword [rbp + 0x10]
cmp eax, r14d
jle 0x491f08
mov ecx, dword [rbp + 0x120]
mov r14d, eax
mov dword [rsp + 0x1e4], ecx
cmp qword [rbp + 0x128], 0
je 0x491f2c
mov eax, dword [rbp + 0x10]
cmp eax, dword [rsp + 0x6c]
jle 0x491f2c
mov ecx, dword [rbp + 0x130]
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x1e8], ecx
mov eax, dword [rbp + 0x124]
cmp eax, 3
je 0x491f49
mov edx, dword [rbp + 0x10]
cmp edx, r13d
jle 0x491f49
mov dword [rsp + 0x1ec], eax
mov r13d, edx
add esi, 1
add rbx, 8
cmp esi, dword [rsp + 0x138]
jge 0x491fa0
mov rbp, qword [rbx]
cmp rbp, qword [rdi + 0x108]
mov rax, qword [rbp + 0x28]
jne 0x491c41
test byte [rdi + 0x218], 4
jne 0x491c41
mov rax, qword [rdi + 0x118]
test rax, rax
jne 0x491c46
add esi, 1
add rbx, 8
cmp esi, dword [rsp + 0x138]
jl 0x491f59
nop word [rax + rax]
mov r12, qword [rsp + 0xe0]
mov r13, rdi
cmp qword [rsp + 0xb0], 0
je 0x491fc4
mov rax, qword [r15]
mov rcx, qword [rsp + 0xb0]
call qword [rax + 0x30]
mov rax, qword [r13 + 0x100]
lea r8, [rsp + 0x13c]
mov rdx, qword [rsp + 0xd0]
mov rcx, rax
call qword [rax + 0x48]
mov r10d, dword [rsp + 0x13c]
mov rbx, rax
test r10d, r10d
jne 0x492480
mov rsi, qword [rax + 0x18]
add dword [rsi], 1
mov rax, qword [rsi + 0x18]
mov r9d, dword [rsp + 0xc0]
mov qword [r12 + 0x10], rsi
mov ebp, dword [rax + 0x68]
test ebp, ebp
sete sil
test r9d, r9d
je 0x4920a3
test sil, sil
je 0x4920a3
mov ebx, dword [rax + 0x60]
mov r8d, dword [rsp + 0x128]
mov rdi, qword [rax + 0x58]
mov edx, dword [rax + 0x38]
mov dword [rsp + 0xc4], 0xffffffff
mov dword [rsp + 0x110], ebx
mov ebx, dword [rax + 0x44]
test r8d, r8d
cmove edx, dword [rax + 0x34]
mov qword [rsp + 0xe8], rdi
mov edi, dword [rax + 0x30]
mov ecx, ebx
mov dword [rsp + 0x12c], ebx
mov ebx, dword [rax + 0x6c]
mov dword [rsp + 0x10c], edi
mov dword [rsp + 0xbc], edx
mov edi, edx
cmp ebx, 1
mov dword [rsp + 0xfc], ebx
je 0x4920a3
mov rdx, qword [r13 + 0x100]
mov eax, dword [rdx + 0x80]
sub eax, dword [rdx + 0x78]
sub eax, ecx
cmp edi, eax
cmovge eax, edi
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0xa0]
mov r9d, dword [rsp + 0x134]
mov edi, dword [rax + 0x10]
mov rax, qword [rax]
mov ebx, edi
mov dword [rsp + 0x5c], edi
sub ebx, r9d
cmp rax, qword [0x00670d90]
je 0x4926c2
mov edi, dword [rsp + 0xbc]
test ebp, ebp
mov dword [r12], edi
je 0x4925a4
lea rax, [0x00490750]
mov dword [r12 + 0x38], ebx
mov dword [r12 + 0x4c], ebx
mov dword [r12 + 0x48], 0
mov dword [r12 + 0x44], 0
mov edx, ebx
mov qword [r12 + 0x28], rax
lea rax, [0x00490720]
mov dword [r12 + 0x40], 0
mov dword [r12 + 0x3c], 0
mov qword [r12 + 0x18], 0
xor ecx, ecx
mov qword [r12 + 0x30], rax
mov qword [r12 + 0x20], 0
mov eax, ebx
xor edi, edi
test sil, sil
je 0x492174
test eax, eax
mov rsi, qword [rsp + 0x118]
mov r8d, 0
cmovle r8d, dword [rsp + 0xc0]
cmovg rsi, r12
mov qword [rsp + 0x118], rsi
mov dword [rsp + 0xc0], r8d
cmp qword [rsp + 0xa8], 0
je 0x492a15
mov rsi, qword [rsp + 0xa8]
mov qword [rsi + 8], r12
add dword [rsp + 0xbc], ecx
test edx, edx
jle 0x4921e9
mov rcx, qword [rsp + 0x140]
mov dword [rsp + 0x114], edx
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0x160], rcx
mov rcx, qword [rsp + 0x148]
mov qword [rsp + 0x168], rcx
mov rcx, qword [rsp + 0x150]
mov qword [rsp + 0x170], rcx
mov rcx, qword [rsp + 0x158]
mov qword [rsp + 0x178], rcx
cmp eax, ebx
jne 0x492cf0
test edi, edi
je 0x4923b6
mov r9d, dword [rsp + 0xf8]
cmp r9d, 0xffffffff
je 0x492252
mov rdi, qword [rsp + 0x120]
mov r8, qword [rsp + 0xe8]
lea rdx, [r13 + 0xc0]
lea rcx, [r13 + 0x90]
mov rax, rdi
add rax, 0x48
mov qword [rsp + 0x28], rax
mov rax, rdi
add rax, 8
mov qword [rsp + 0x20], rax
call fcn.00491460
mov eax, dword [r12 + 0x48]
add eax, dword [r12]
mov dword [rsp + 0xbc], eax
mov rbx, qword [rsp + 0xe8]
test rbx, rbx
je 0x492267
mov edx, dword [rbx]
xor eax, eax
test edx, edx
jne 0x49228d
mov rcx, qword [r13 + 0x90]
lea rdx, [0x00644c01]
mov r8d, 1
call fcn.0044ee90
shl eax, 3
mov edx, 1
test eax, eax
cmove eax, edx
mov edi, dword [rsp + 0xf8]
cmp dword [rsp + 0x110], 1
mov esi, dword [rsp + 0xbc]
mov r11, qword [rsp + 0xe8]
lea ecx, [rdi + 2]
movsxd r10, edi
sete r9b
imul ecx, eax
jmp 0x4922e2
cmp ebx, edx
jge 0x492430
lea rdx, [r11 + r10*8]
mov r8d, dword [rdx + 0x20]
mov edx, dword [rdx + 0x24]
add ecx, eax
cmp esi, r8d
movsxd r10, ebx
jl 0x492301
test r9b, r9b
je 0x492301
test r11, r11
lea ebx, [r10 + 1]
je 0x4922f2
mov edx, dword [r11]
test edx, edx
jne 0x4922c0
mov r8d, ecx
xor edx, edx
add ecx, eax
cmp esi, r8d
movsxd r10, ebx
jge 0x4922dd
cmp edx, 2
je 0x492a87
cmp edx, 1
je 0x492b63
mov eax, dword [rsp + 0xbc]
cmp r8d, eax
jle 0x492b63
mov esi, r8d
sub esi, eax
mov rcx, qword [r13 + 0x90]
lea rdi, [rsp + 0x1f0]
lea rdx, [0x00644c03]
xor r8d, r8d
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0xffffffff
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x20], 0
mov r9d, 1
call fcn.00490cd0
mov eax, dword [rsp + 0x1f0]
cmp esi, eax
cmovge eax, esi
mov dword [rsp + 0x108], eax
mov eax, dword [rsp + 0xc4]
test eax, eax
js 0x4923a2
mov eax, dword [rsp + 0xc4]
sub eax, dword [rsp + 0xbc]
cmp eax, dword [rsp + 0x108]
jle 0x492d7b
mov eax, dword [r12 + 0x38]
mov dword [rsp + 0xf8], ebx
mov qword [rsp + 0x120], r12
mov rdi, qword [rsp + 0xa0]
add dword [rsp + 0x150], eax
add eax, dword [rsp + 0x134]
cmp eax, dword [rdi + 0x10]
mov dword [rsp + 0x134], eax
jl 0x4923fc
mov rax, qword [rdi + 8]
mov dword [rsp + 0x134], 0
test rax, rax
mov qword [rsp + 0xa0], rax
jne 0x4923fc
test ebp, ebp
jne 0x492a30
mov qword [rsp + 0xa8], r12
xor r12d, r12d
cmp qword [rsp + 0xa0], 0
jne 0x491aa0
mov r14, r13
mov r13, qword [rsp + 0xa0]
jmp 0x492625
pxor xmm0, xmm0
add r10d, 2
sub r10d, edx
sub edx, 1
movsxd rdx, edx
cvtsi2sd xmm0, r10d
mov edx, dword [r11 + rdx*8 + 0x1c]
mulsd xmm0, qword [r11 + 0x10]
addsd xmm0, qword [r11 + 8]
addsd xmm0, xmm6
cvttsd2si r8d, xmm0
jmp 0x4922d3
mov rcx, qword [rdi + 0x50]
mov qword [rsp + 0x180], rcx
jmp 0x491caf
mov rax, qword [r15]
mov ecx, 0x28
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x180]
mov rsi, rax
mov dword [rax], 1
test rcx, rcx
je 0x4929b0
call fcn.00432020
mov eax, dword [rax]
mov edx, 4
mov dword [rsp + 0x1f8], eax
mov rax, qword [rsp + 0x190]
test rax, rax
je 0x4924dc
mov qword [rsp + 0x228], rax
mov dword [rsp + 0x210], 2
mov dx, 0x904
lea rdi, [rsp + 0x1f0]
mov rcx, qword [r13 + 0x28]
mov r8, rdi
call fcn.00453b80
mov qword [rsi + 8], rax
mov rcx, qword [rsp + 0x1a0]
call fcn.0044e8d0
mov qword [rsp + 0x238], rax
mov rax, qword [rsp + 0x198]
mov edx, 0x4004
mov eax, dword [rax]
mov dword [rsp + 0x1f8], eax
mov rax, qword [rsp + 0x1a8]
test rax, rax
je 0x492543
mov qword [rsp + 0x228], rax
mov dword [rsp + 0x210], 2
mov dx, 0x4904
mov rcx, qword [r13 + 0x28]
mov r8, rdi
call fcn.00453b80
mov qword [rsi + 0x10], rax
mov rax, qword [r13 + 0x100]
lea rdx, [rbx + 0x20]
mov eax, dword [rax + 0x3c]
add eax, 1
and eax, 0xfffffffd
jne 0x49256d
mov rdx, qword [rbx + 0x20]
mov qword [rsi + 0x18], rdx
mov qword [rsi + 0x20], rbx
mov qword [rbx + 0x18], rsi
jmp 0x491ffc
mov rax, qword [rsp + 0xa0]
mov dword [rsp + 0x134], 0
mov rax, qword [rax + 8]
mov qword [rsp + 0xa0], rax
jmp 0x492407
xor edi, edi
mov ecx, dword [rsp + 0xfc]
mov edx, dword [rsp + 0xc4]
sub edx, dword [rsp + 0x108]
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x28], ebx
mov r8, qword [rsp + 0xa0]
mov dword [rsp + 0x38], ecx
mov ecx, dword [rsp + 0xc0]
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0xf0]
mov dword [rsp + 0x30], ecx
mov rcx, r13
call qword [rax + 0x30]
test eax, eax
jg 0x492cae
mov rdx, qword [r12 + 0x10]
mov edi, dword [rdx]
lea ecx, [rdi - 1]
test ecx, ecx
mov dword [rdx], ecx
je 0x492b6a
test eax, eax
jne 0x492580
mov rax, qword [r15]
mov r14, r13
mov rcx, r12
mov r13, qword [rsp + 0xa0]
call qword [rax + 0x30]
mov eax, dword [rsp + 0xc0]
test eax, eax
jne 0x492a65
cmp qword [rsp + 0xd8], 0
je 0x492c8f
mov rbx, qword [rsp + 0xd8]
cmp qword [rsp + 0xa8], rbx
je 0x492cc2
mov rax, qword [rsp + 0xd8]
mov rsi, qword [rax + 8]
test rsi, rsi
je 0x492730
lea rbx, [r14 + 0x30]
mov rdi, qword [rsp + 0xd8]
jmp 0x4926af
mov rax, qword [rsi + 8]
mov qword [rdi + 8], rax
mov rax, qword [rsi + 0x20]
test rax, rax
je 0x492699
mov rdx, rsi
mov rcx, r14
call rax
mov rax, qword [r15]
mov rcx, rsi
call qword [rax + 0x30]
mov rsi, qword [rdi + 8]
test rsi, rsi
je 0x492730
mov rdx, qword [rsi + 0x10]
sub dword [rdx], 1
jne 0x492680
mov rcx, rbx
call fcn.00490b00
jmp 0x492680
mov edi, dword [rsp + 0x10c]
or edi, ebp
jne 0x4920cf
mov rdi, qword [rsp + 0xa0]
movsxd rcx, r9d
lea rdx, [rdi + rcx + 0x18]
movzx ecx, byte [rdi + rcx + 0x18]
test cl, cl
jne 0x4926ff
jmp 0x492c3a
add rdx, 1
movzx ecx, byte [rdx]
test cl, cl
je 0x492c3a
cmp cl, 9
jne 0x4926f0
sub rdx, qword [rsp + 0xa0]
mov edi, 1
lea rbx, [rdx - 0x17]
sub ebx, r9d
mov ecx, dword [rsp + 0xbc]
mov dword [r12], ecx
jmp 0x4925a6
mov rax, qword [rsp + 0xd8]
mov edi, dword [rsp + 0x114]
cmp dword [rax + 0x38], edi
je 0x4927bf
mov rdx, qword [rsp + 0xd8]
mov rax, qword [rdx + 0x20]
test rax, rax
je 0x49275a
mov rcx, r14
call rax
lea rbx, [rsp + 0x160]
lea rdx, [rsp + 0x134]
mov rcx, rbx
call fcn.00499790
mov rdi, qword [rsp + 0xd8]
mov r8, rax
mov rax, qword [rax]
mov r9d, dword [rsp + 0x134]
mov dword [rsp + 0x30], 0
mov rdx, rbx
mov rcx, r14
mov qword [rsp + 0x40], rdi
mov edi, dword [rsp + 0xfc]
mov dword [rsp + 0x38], edi
mov edi, dword [rsp + 0x114]
mov dword [rsp + 0x28], edi
mov edi, dword [rsp + 0xc4]
mov dword [rsp + 0x20], edi
call qword [rax + 0x30]
xor ebx, ebx
mov r9d, dword [rsp + 0xf8]
cmp r9d, 0xffffffff
je 0x49280f
mov rdi, qword [rsp + 0x120]
test rdi, rdi
mov rax, rdi
je 0x49280f
add rax, 0x48
mov r8, qword [rsp + 0xe8]
lea rdx, [r14 + 0xc0]
mov qword [rsp + 0x28], rax
mov rax, rdi
lea rcx, [r14 + 0x90]
add rax, 8
mov qword [rsp + 0x20], rax
call fcn.00491460
cmp dword [rsp + 0xfc], 1
je 0x492c17
mov rax, qword [rsp + 0xd8]
mov r13d, dword [rsp + 0x10c]
xor r10d, r10d
mov rdi, qword [rsp + 0xc8]
mov r11d, dword [rax + 0x48]
mov r8d, dword [rax]
test r13d, r13d
lea eax, [r11 + r8]
mov dword [rdi + 0x40], eax
je 0x49286f
cmp dword [rsp + 0x10c], 1
je 0x492c07
mov edi, dword [rsp + 0xc4]
sub edi, eax
mov r10d, edi
shr r10d, 0x1f
add r10d, edi
sar r10d, 1
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rbp + 0x48]
test rdi, rdi
je 0x492d15
mov esi, dword [rbp + 0x20]
mov rax, rdi
xor ecx, ecx
xor edx, edx
nop
mov r8d, dword [rax + 0x3c]
add esi, dword [rax + 0x38]
add dword [rax], r10d
cmp edx, r8d
cmovl edx, r8d
mov r8d, dword [rax + 0x40]
mov r9d, esi
cmp ecx, r8d
cmovl ecx, r8d
mov r8d, dword [rax + 0x44]
cmp r8d, dword [rbp + 0x30]
jle 0x4928bd
mov dword [rbp + 0x30], r8d
mov r8, qword [rax + 0x10]
mov r8, qword [r8 + 0x18]
mov r12d, dword [r8 + 8]
test r12d, r12d
jle 0x4928db
mov r8d, dword [r8 + 0xc]
test r8d, r8d
je 0x4928db
or dword [rbp + 0x58], 1
mov rax, qword [rax + 8]
test rax, rax
jne 0x492890
mov rsi, qword [rsp + 0xd8]
mov rax, qword [rsp + 0xc8]
mov r8d, dword [rsi]
mov dword [rax + 0x20], r9d
lea eax, [rdx + rcx]
mov rsi, qword [rsp + 0xc8]
mov r9d, dword [rsi + 0x30]
cmp r9d, eax
jge 0x492bc2
mov dword [rsi + 0x30], eax
mov dword [rsi + 0x34], edx
mov r9d, eax
mov rax, qword [rdi + 0x10]
mov rdi, qword [rsp + 0xc8]
mov ecx, dword [rdi + 0x10]
mov rax, qword [rax + 0x18]
test ecx, ecx
jne 0x492b9f
mov ecx, dword [rax + 0x48]
mov dword [rdi + 0x38], ecx
test ebx, ebx
je 0x492b80
mov eax, dword [rax + 0x50]
mov rbx, qword [rsp + 0xc8]
mov dword [rbx + 0x3c], eax
mov rbx, qword [rsp + 0xc8]
add eax, ecx
add edx, ecx
add eax, r9d
add r8d, r11d
mov dword [rbx + 0x30], eax
mov dword [rbx + 0x34], edx
mov dword [rbx + 0x40], r8d
mov rax, qword [rsp + 0xc8]
movaps xmm6, xmmword [rsp + 0x3170]
add rsp, 0x3188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0xa0], r14
mov dword [rsp + 0x134], ecx
jmp 0x491a89
mov qword [rax + 8], 0
lea rdi, [rsp + 0x1f0]
jmp 0x4924f4
mov rdx, qword [rsp + 0x148]
xor ecx, ecx
mov dword [rsp + 0x134], eax
call fcn.0048df50
test rax, rax
je 0x492d73
mov rbx, qword [rsp + 0xc8]
mov qword [rsp + 0x148], rax
mov r14, qword [rax + 0x10]
mov eax, dword [rsp + 0x134]
mov dword [rsp + 0x150], 0
add dword [rbx + 0x24], 1
mov ecx, eax
jmp 0x491a6d
mov rsi, qword [rsp + 0xc8]
mov qword [rsi + 0x48], r12
jmp 0x49218f
mov rdx, qword [rsp + 0x148]
xor ecx, ecx
call fcn.0048df50
test rax, rax
jne 0x492db9
mov r14, r13
mov qword [rsp + 0xa8], r12
mov eax, dword [rsp + 0xc0]
xor r13d, r13d
test eax, eax
je 0x492634
mov rax, qword [rsp + 0xc8]
mov dword [rax + 0x38], 0
mov dword [rax + 0x3c], 0
mov dword [rax + 0x40], 0
jmp 0x49296f
mov edx, dword [rsp + 0xc4]
mov eax, r8d
sub eax, dword [rsp + 0xbc]
xor esi, esi
sub edx, r8d
cmp edx, eax
jge 0x492328
mov edi, dword [rsp + 0xc4]
mov eax, edi
sub eax, dword [rsp + 0xbc]
sub r8d, edi
lea esi, [rax + r8*2]
jmp 0x492328
mov rax, qword [rsp + 0xa0]
mov eax, dword [rax + 0x10]
sub eax, dword [rsp + 0x134]
test eax, eax
jle 0x492c41
mov rbx, qword [rsp + 0xa8]
add dword [rsp + 0x150], eax
add eax, dword [rbx + 0x38]
mov dword [rsp + 0x114], eax
mov dword [rbx + 0x38], eax
mov dword [rbx + 0x4c], eax
mov rax, qword [rsp + 0xa0]
mov dword [rsp + 0x134], 0
mov rax, qword [rax + 8]
test rax, rax
mov qword [rsp + 0xa0], rax
jne 0x491aa0
mov rdx, qword [rsp + 0x148]
xor ecx, ecx
call fcn.0048df50
test rax, rax
je 0x492416
mov rbx, qword [rsp + 0xc8]
mov qword [rsp + 0x148], rax
mov rdx, rax
mov dword [rsp + 0x150], 0
xor eax, eax
add dword [rbx + 0x24], 1
jmp 0x491a36
xor esi, esi
jmp 0x492328
lea rcx, [r13 + 0x30]
mov dword [rsp + 0x5c], eax
call fcn.00490b00
mov eax, dword [rsp + 0x5c]
jmp 0x492609
mov eax, dword [rax + 0x4c]
mov rbx, qword [rsp + 0xc8]
mov r10d, eax
shr r10d, 0x1f
add eax, r10d
sar eax, 1
mov dword [rbx + 0x3c], eax
jmp 0x492953
mov ecx, dword [rax + 0x4c]
mov rdi, qword [rsp + 0xc8]
mov r10d, ecx
shr r10d, 0x1f
add r10d, ecx
sar r10d, 1
sub ecx, r10d
mov dword [rdi + 0x38], ecx
jmp 0x49293d
mov eax, r9d
sub eax, edx
sub eax, ecx
mov ecx, eax
shr ecx, 0x1f
add eax, ecx
sar eax, 1
add edx, eax
mov rax, qword [rsp + 0xc8]
mov dword [rax + 0x34], edx
jmp 0x49291c
mov rax, qword [r15]
mov ecx, 0x58
call qword [rax + 0x28]
mov r12, rax
mov qword [rax + 8], 0
mov qword [rax + 0x50], 0
jmp 0x491adb
mov r10d, dword [rsp + 0xc4]
sub r10d, eax
jmp 0x49286f
mov rdx, qword [r14 + 0x100]
mov eax, dword [rdx + 0x80]
sub eax, dword [rdx + 0x78]
sub eax, dword [rsp + 0x12c]
mov dword [rsp + 0xc4], eax
jmp 0x49281d
xor edi, edi
jmp 0x492718
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax]
cmp rax, qword [0x00670de0]
sete dl
je 0x492c65
cmp rax, qword [0x00670df0]
jne 0x492afa
mov rax, qword [rsp + 0xa0]
mov rax, qword [rax + 0x18]
cmp qword [rax + 0x128], 0
je 0x492afa
movzx edx, dl
xor edx, dword [rax + 0x130]
mov ebp, edx
jmp 0x492afa
mov rax, qword [rsp + 0x118]
mov ebx, dword [rax + 0x38]
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0x114], ebx
jmp 0x492643
mov eax, dword [r12 + 0x38]
mov ecx, dword [r12 + 0x48]
mov edx, dword [r12 + 0x4c]
jmp 0x492142
mov rax, rbx
mov ebx, dword [rsp + 0x114]
cmp dword [rax + 0x38], ebx
je 0x492d08
mov rax, qword [rsp + 0xd8]
mov rsi, qword [rax + 8]
test rsi, rsi
jne 0x49266e
jmp 0x492744
mov r14, r13
mov qword [rsp + 0xa8], r12
mov r13, qword [rsp + 0xa0]
jmp 0x492625
xor ebx, ebx
test r13, r13
sete bl
jmp 0x4927c1
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x4928fe
cmp r8d, edx
je 0x492d39
mov rax, qword [r15]
lea rcx, [0x00644c08]
call qword [rax + 0x20]
mov edx, dword [rsp + 0x268]
movsxd rax, edx
mov r8, qword [rsp + 0x3160]
sub rax, 1
jmp 0x492d5e
test byte [r8 + rax*4], 1
lea rcx, [rax - 1]
jne 0x492da2
mov rax, rcx
sub edx, 1
test edx, edx
mov dword [rsp + 0x268], edx
jg 0x492d50
xor eax, eax
jmp 0x49184a
mov r14, r13
jmp 0x492a53
mov r14, r13
mov dword [rsp + 0xf8], ebx
mov r13, qword [rsp + 0xa0]
mov qword [rsp + 0x120], r12
mov qword [rsp + 0xa8], r12
jmp 0x492625
mov rdx, qword [rsp + 0x3168]
mov rax, qword [rdx + rax*8]
mov eax, dword [rax + 0x130]
jmp 0x49184a
mov rbx, qword [rsp + 0xc8]
mov qword [rsp + 0x148], rax
mov rdx, rax
mov qword [rsp + 0xa8], r12
mov dword [rsp + 0x150], 0
xor r12d, r12d
xor eax, eax
add dword [rbx + 0x24], 1
jmp 0x491a36