Function at 0x46b960
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2e8
movaps xmmword [rsp + 0x2d0], xmm6
mov r12, rcx
lea rax, [rcx + 0x98]
mov qword [rsp + 0x230], rax
mov r15, qword [rcx + 0x88]
xorps xmm6, xmm6
xor eax, eax
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x68], rcx
jmp 0x46b9e2
call fcn.00430480
mov al, byte [r12 + 0x54]
add al, 0xff
mov byte [r12 + 0x54], al
movsx rax, al
lea rax, [r12 + rax*8]
add rax, 0x90
mov r15, qword [rax]
mov qword [r12 + 0x88], r15
test ebp, ebp
jne 0x46f89e
cmp dword [r15 + 0x14], 0
jns 0x46b9f9
mov rcx, r15
call fcn.0046b220
test eax, eax
jne 0x46f8ce
cmp byte [r15 + 0xc], 0
je 0x46ba50
mov bl, byte [r12 + 0x54]
test bl, bl
jne 0x46ba78
mov rax, qword [r12 + 0x20]
mov rax, qword [rax + 0x10]
jmp 0x46ba24
mov rax, qword [rax + 0x28]
test rax, rax
je 0x46bb20
cmp rax, r12
je 0x46ba20
cmp byte [rax], 0
jne 0x46ba20
mov rcx, qword [rax + 0x88]
cmp rcx, qword [r12 + 0x88]
jne 0x46ba20
jmp 0x46f86f
mov eax, dword [r15 + 0x14]
lea eax, [rax + rax*2]
mov rcx, qword [r12 + 0x20]
mov ecx, dword [rcx + 0x38]
add ecx, ecx
xor ebp, ebp
cmp eax, ecx
jle 0x46f89e
mov bl, byte [r12 + 0x54]
test bl, bl
je 0x46f89e
movsx rax, bl
mov ecx, 1
sub rcx, rax
lea rax, [rcx*8]
neg rax
mov rsi, qword [r12 + rax + 0x90]
add rcx, rcx
neg rcx
movzx edi, word [r12 + rcx + 0x58]
mov rcx, qword [rsi + 0x70]
mov rax, qword [rcx + 0x28]
mov ebp, dword [rcx + 0x34]
mov edx, ebp
xor edx, 0xfffb
test dx, bp
je 0x46bac3
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x46bb00
mov ebp, dword [rax + 0x30]
test ebp, ebp
jne 0x46bee0
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x46bb77
call fcn.0043fc70
mov ebp, eax
test eax, eax
jne 0x46bee0
jmp 0x46bb90
cmp dword [rax + 0x80], 0
je 0x46bb90
call fcn.00432ba0
mov ebp, eax
test eax, eax
jne 0x46bee0
jmp 0x46bb90
mov qword [rsp + 0x100], 0
mov dword [rsp + 0x178], 0
mov rdi, qword [r15 + 0x48]
mov rcx, qword [r15 + 0x70]
mov rax, qword [rcx + 0x28]
mov edx, dword [rcx + 0x34]
not edx
or edx, 0xfffb
cmp dx, 0xffff
je 0x46bb60
mov edx, dword [rax + 0x20]
cmp edx, dword [rcx + 0x30]
jae 0x46bf41
mov ebp, dword [rax + 0x30]
test ebp, ebp
je 0x46bf80
mov dword [rsp + 0x1b0], ebp
jmp 0x46bfb4
call fcn.00440110
mov ebp, eax
test eax, eax
jne 0x46bee0
nop word cs:[rax + rax]
cmp dword [rsi + 0x14], 0
js 0x46bebf
cmp byte [r15 + 2], 0
mov qword [rsp + 0xa0], rsi
je 0x46bde3
cmp byte [r15 + 0xc], 1
jne 0x46bde3
movzx eax, word [r15 + 0x1c]
cmp ax, word [r15 + 0x18]
jne 0x46bde3
cmp dword [rsi + 4], 1
je 0x46bde3
cmp word [rsi + 0x18], di
jne 0x46bde3
test ax, ax
je 0x46d968
mov r14, qword [r15 + 0x48]
mov byte [rsp + 0x20], 0
mov rcx, r14
lea rdx, [rsp + 0x178]
lea r8, [rsp + 0x240]
xor r9d, r9d
call fcn.00441dd0
mov ebp, eax
mov dword [rsp + 0xb0], eax
test eax, eax
jne 0x46d016
mov rdx, qword [r15 + 0x28]
mov qword [rsp + 0x190], rdx
mov rcx, r15
call qword [r15 + 0x78]
mov word [rsp + 0xd0], ax
mov rdi, qword [rsp + 0x178]
mov rbp, qword [rdi + 0x48]
mov rsi, qword [rdi + 0x50]
movzx ebx, byte [rdi + 9]
mov eax, dword [rbp + 0x28]
not eax
or eax, 0xfff3
cmp ax, 0xffff
je 0x46bc6b
lea rcx, [rsi + rbx]
mov r8d, dword [rbp + 0x38]
sub r8d, ebx
xor edx, edx
call fcn.005f4c10
mov byte [rsi + rbx], 0xd
lea eax, [rbx + 8]
lea ecx, [rbx + 1]
mov dword [rsi + rcx], 0
lea ecx, [rbx + 7]
mov byte [rsi + rcx], 0
mov cl, byte [rbp + 0x39]
add ebx, 5
mov byte [rsi + rbx], cl
mov cl, byte [rbp + 0x38]
mov byte [rsi + rbx + 1], cl
mov ecx, dword [rbp + 0x38]
sub ecx, eax
mov edx, ecx
xor edx, 0xffff0000
and edx, ecx
mov dword [rdi + 0x14], edx
mov byte [rdi + 8], 1
mov byte [rdi + 0xa], 0
mov rcx, qword [rdi + 0x48]
mov word [rdi + 1], 0x101
lea rdx, [0x0043bc40]
mov qword [rdi + 0x78], rdx
lea rdx, [0x0043bef0]
mov qword [rdi + 0x80], rdx
movzx edx, word [rcx + 0x2e]
mov word [rdi + 0xe], dx
movzx edx, word [rcx + 0x30]
mov word [rdi + 0x10], dx
mov cl, byte [rcx + 0x25]
mov byte [rdi + 0xb], cl
mov word [rdi + 0x12], ax
mov ecx, dword [rbp + 0x34]
lea rdx, [rsi + rcx]
mov qword [rdi + 0x58], rdx
add rax, rsi
mov qword [rdi + 0x60], rax
mov qword [rdi + 0x68], rsi
mov byte [rdi + 0xc], 0
add ecx, 0xffffffff
mov word [rdi + 0x1a], cx
mov word [rdi + 0x18], 0
mov byte [rdi], 1
mov dword [rsp + 0x100], 1
mov qword [rsp + 0x108], r15
lea rax, [rsp + 0x190]
mov qword [rsp + 0x110], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x118], rax
mov rax, qword [r15 + 0x58]
mov qword [rsp + 0x120], rax
mov dword [rsp + 0x150], 2
lea rcx, [rsp + 0x100]
xor edx, edx
mov r8d, 1
mov r9, rdi
call fcn.00470590
mov dword [rsp + 0xb0], eax
test eax, eax
je 0x46e077
mov ebp, eax
mov rcx, qword [rdi + 0x70]
mov eax, dword [rcx + 0x34]
mov edx, eax
xor edx, 0xffdf
test dx, ax
je 0x46e70e
mov rbx, qword [rcx + 0x28]
add dword [rbx + 0x98], 0xffffffff
mov rax, qword [rbx + 0xa8]
mov qword [rcx + 0x20], rax
mov qword [rbx + 0xa8], rcx
mov rax, qword [rbx + 0x48]
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
add edx, 0xffffffff
imul rdx, qword [rbx + 0xc8]
mov rbx, qword [rax]
mov rcx, rax
call qword [rbx + 0x90]
jmp 0x46d016
mov rax, qword [r12 + 0x20]
mov ecx, dword [rax + 0x34]
call fcn.0043cb40
mov cl, byte [r12 + 3]
mov dword [rsp + 0x44], 0
mov dword [rsp + 0x1a8], 0
mov byte [rsp + 0x1ac], 0
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x150], xmm6
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x1e8], rax
test rax, rax
je 0x46bf65
mov eax, ecx
xor al, 0xfe
and al, cl
mov r13, qword [rsi + 0x48]
movzx r9d, word [rsi + 0x18]
movzx ecx, byte [rsi + 0xc]
lea r8d, [rcx + r9]
xor edx, edx
mov qword [rsp + 0x88], rdx
cmp r8d, 2
mov qword [rsp + 0x78], rdi
jb 0x46c243
movzx edx, al
test di, di
je 0x46c22b
cmp r8d, edi
jne 0x46c22f
mov ebp, edx
and ebp, 0xfffffffe
mov edi, edx
xor edi, 0xfffffffe
or edi, ebp
add edi, dword [rsp + 0x78]
mov qword [rsp + 0x88], rdi
jmp 0x46c23a
mov rcx, rsi
call fcn.0046b220
mov ebp, eax
test eax, eax
je 0x46bb9a
nop word cs:[rax + rax]
nop dword [rax + rax]
mov byte [r15 + 0xc], 0
mov rcx, qword [r15 + 0x70]
mov eax, dword [rcx + 0x34]
not eax
or eax, 0xffdf
cmp ax, 0xffff
je 0x46b9b0
mov rbx, qword [rcx + 0x28]
add dword [rbx + 0x98], 0xffffffff
mov rax, qword [rbx + 0xa8]
mov qword [rcx + 0x20], rax
mov qword [rbx + 0xa8], rcx
mov rax, qword [rbx + 0x48]
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
add edx, 0xffffffff
imul rdx, qword [rbx + 0xc8]
mov rbx, qword [rax]
mov rcx, rax
call qword [rbx + 0x90]
jmp 0x46b9b5
cmp dword [rax + 0x80], 0
je 0x46c004
call fcn.00432ba0
mov ebp, eax
mov dword [rsp + 0x1b0], eax
test eax, eax
jne 0x46bfb4
jmp 0x46c00f
mov ebp, 7
mov rcx, qword [rsp + 0x238]
test rcx, rcx
jne 0x46d001
jmp 0x46d006
mov edx, dword [rax + 0xb8]
cmp edx, dword [rax + 0xc8]
jbe 0x46bfa2
call fcn.0043fc70
mov ebp, eax
mov dword [rsp + 0x1b0], eax
test eax, eax
jne 0x46bfb4
jmp 0x46c00f
call fcn.00440110
mov ebp, eax
mov dword [rsp + 0x1b0], eax
test eax, eax
je 0x46c00f
mov rax, qword [rsp + 0x230]
mov qword [rax], 0
test ebp, ebp
jne 0x46f89e
mov byte [r12 + 0x54], 1
mov dword [r12 + 0x56], 0
mov qword [r12 + 0x90], r15
xor ebp, ebp
mov rax, qword [rsp + 0x230]
mov r15, qword [rax]
mov qword [r12 + 0x88], r15
test ebp, ebp
je 0x46b9e2
jmp 0x46f89e
mov dword [rsp + 0x1b0], 0
mov r9d, dword [r15 + 4]
mov byte [rsp + 0x20], 0
mov rcx, rdi
lea rdx, [rsp + 0x100]
lea r8, [rsp + 0x178]
call fcn.00441dd0
mov ebp, eax
mov dword [rsp + 0x1b0], eax
mov rbx, qword [rsp + 0x100]
test eax, eax
jne 0x46c111
mov r14, qword [r15 + 0x48]
mov rbp, qword [r15 + 0x50]
mov r13, r15
mov r15, qword [rbx + 0x50]
movzx esi, byte [r13 + 9]
mov rax, rsi
movabs rcx, 0xfa9af622b7283c8b
sub rax, rcx
add rax, rbp
mov r12d, dword [rbx + 4]
movzx eax, word [rcx + rax + 5]
shl eax, 0x10
bswap eax
lea rcx, [r15 + rax]
lea rdx, [rax + rbp]
mov r8d, dword [r14 + 0x38]
sub r8d, eax
call fcn.005f4c20
movzx r8d, word [r13 + 0x18]
mov qword [rsp + 0x90], r13
movzx eax, word [r13 + 0x12]
add rbp, rsi
cmp r12d, 1
mov ecx, 0
mov edx, 0x64
cmove rcx, rdx
add rcx, r15
add r8, r8
movabs rdx, 0xbdf6b556de0e88cd
sub r8, rdx
add r8, rax
add r8, rdx
mov rdx, rbp
call fcn.005f4c20
mov byte [rbx], 0
mov rcx, rbx
call fcn.0043b940
mov ebp, eax
test eax, eax
jne 0x46c0fd
mov rcx, rbx
call fcn.0046b220
mov ebp, eax
test eax, eax
je 0x46d19c
mov dword [rsp + 0x1b0], ebp
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x90]
cmp byte [rdi + 0x21], 0
je 0x46c141
mov edx, dword [rsp + 0x178]
mov r9d, dword [r15 + 4]
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov r8b, 5
call fcn.00444820
mov ebp, dword [rsp + 0x1b0]
test ebp, ebp
je 0x46c1b9
mov rax, qword [rsp + 0x230]
mov qword [rax], 0
test rbx, rbx
je 0x46bfc3
mov rcx, qword [rbx + 0x70]
mov eax, dword [rcx + 0x34]
mov edx, eax
xor edx, 0xffdf
test dx, ax
je 0x46d029
mov rbx, qword [rcx + 0x28]
add dword [rbx + 0x98], 0xffffffff
mov rax, qword [rbx + 0xa8]
mov qword [rcx + 0x20], rax
mov qword [rbx + 0xa8], rcx
mov rax, qword [rbx + 0x48]
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
add edx, 0xffffffff
imul rdx, qword [rbx + 0xc8]
mov rbx, qword [rax]
mov rcx, rax
call qword [rbx + 0x90]
jmp 0x46bfc3
lea rcx, [rbx + 0x1c]
lea rdx, [r15 + 0x1c]
movzx r8d, byte [r15 + 0xc]
add r8, r8
call fcn.005f4c20
lea rcx, [rbx + 0x28]
lea rdx, [r15 + 0x28]
movzx r8d, byte [r15 + 0xc]
shl r8, 3
call fcn.005f4c20
mov al, byte [r15 + 0xc]
mov byte [rbx + 0xc], al
mov rax, qword [rbx + 0x50]
mov al, byte [rax]
mov ecx, eax
xor cl, 8
and cl, al
movzx edx, cl
mov rcx, r15
call fcn.0043f960
mov rax, qword [r15 + 0x50]
movzx ecx, byte [r15 + 9]
mov edx, dword [rsp + 0x178]
bswap edx
mov dword [rcx + rax + 8], edx
mov rax, qword [rsp + 0x230]
mov qword [rax], rbx
xor ebp, ebp
jmp 0x46bfc3
xor ebp, ebp
jmp 0x46c232
lea ebp, [rdi - 1]
mov qword [rsp + 0x88], rbp
mov r8d, 2
sub r8d, edx
mov rdx, qword [rsp + 0x88]
sub edx, ecx
add edx, r8d
mov rdi, qword [rsi + 0x50]
cmp edx, r9d
mov byte [rsp + 0x5f], bl
mov qword [rsp + 0x90], r15
mov byte [rsp + 0x77], al
jne 0x46c273
movzx ebx, byte [rsi + 9]
add rbx, 8
jmp 0x46c292
movzx ebx, word [rsi + 0x1a]
mov rax, qword [rsi + 0x60]
movsxd rcx, edx
movzx eax, word [rax + rcx*2]
shl eax, 0x10
bswap eax
not eax
not rbx
or rbx, rax
not rbx
lea eax, [r8 + 1]
mov dword [rsp + 0xe4], eax
movzx eax, byte [rdi + rbx]
shl eax, 0x18
movzx ecx, byte [rdi + rbx + 1]
shl ecx, 0x10
mov edx, ecx
not edx
mov ebp, eax
not ebp
and edx, 0x30a966a6
and ecx, 0x560000
or ecx, edx
and ebp, 0x30a966a6
and eax, 0xcf000000
or eax, ebp
xor eax, ecx
movzx ecx, byte [rdi + rbx + 2]
shl ecx, 8
or ecx, eax
mov qword [rsp + 0x210], rdi
mov qword [rsp + 0x288], rbx
movzx eax, byte [rdi + rbx + 3]
mov r12d, ecx
not r12d
mov edx, eax
not edx
mov ebx, r12d
and ebx, 0x44643ad9
and ecx, 0xbb9bc500
or ecx, ebx
or r12d, edx
and edx, 0x44643ad9
and eax, 0x26
or eax, edx
xor eax, ecx
not r12d
or r12d, eax
mov dword [rsp + 0xac], r12d
mov qword [rsp + 0x260], r8
mov r15d, r8d
movsxd rax, dword [rsp + 0x88]
add rax, 0xffffffffffffffff
mov qword [rsp + 0x60], rax
lea rbp, [r15*8]
xor r14d, r14d
mov qword [rsp + 0xe8], r15
mov qword [rsp + 0xf0], r13
jmp 0x46c3b8
or r12d, ebx
movzx eax, byte [rsi + 0xc]
sub edi, eax
mov rcx, rsi
mov edx, edi
mov r8d, r14d
lea r9, [rsp + 0x44]
call fcn.0046b410
mov eax, dword [rsp + 0x44]
mov r13, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0x98]
mov r14, qword [rsp + 0x50]
add rbp, 0xfffffffffffffff8
mov r8, qword [rsp + 0x48]
mov r15, r8
test eax, eax
jne 0x46c692
lea r8, [rsp + rbp]
add r8, 0x190
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, r12d
xor r9d, r9d
call fcn.004681b0
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x46c68f
mov rdi, qword [rsp + r15*8 + 0x190]
cmp dword [rdi + 0x14], 0
jns 0x46c407
mov rcx, rdi
call fcn.0046b220
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x46cebc
movzx eax, word [rdi + 0x18]
add r14d, eax
add r14d, 4
cmp r15, 1
jb 0x46c755
movabs r12, 0x48b70da7f3f190f5
lea rax, [r15 + r12]
not r12
add r12, rax
movzx edx, byte [rsi + 0xc]
test edx, edx
mov qword [rsp + 0x48], r12
je 0x46c530
movzx eax, word [rsi + 0x1c]
mov rcx, qword [rsp + 0x60]
lea rdi, [rcx + r15]
cmp edi, eax
jne 0x46c550
mov rdx, qword [rsi + 0x28]
mov qword [rsp + r15*8 + 0x268], rdx
movzx eax, byte [rdx]
shl eax, 0x18
movzx ecx, byte [rdx + 1]
shl ecx, 0x10
mov ebx, ecx
not ebx
mov edi, eax
not edi
and ebx, 0x974675a7
and ecx, 0xb90000
or ecx, ebx
and edi, 0x974675a7
and eax, 0x68000000
or eax, edi
xor eax, ecx
movzx ebx, byte [rdx + 2]
shl ebx, 8
mov ecx, eax
not ecx
mov edi, ebx
not edi
mov esi, ecx
and esi, 0x1d783abe
and eax, 0xe2870000
or eax, esi
or ecx, edi
and edi, 0x1d783abe
and ebx, 0xc500
or ebx, edi
xor ebx, eax
not ecx
or ecx, ebx
movzx eax, byte [rdx + 3]
mov r12d, ecx
not r12d
mov ebx, eax
not ebx
mov esi, r12d
and esi, 0x56d2f2a7
and ecx, 0xa92d0d18
or ecx, esi
mov rsi, qword [rsp + 0xa0]
or r12d, ebx
and ebx, 0x56d2f2a7
and eax, 0x58
or eax, ebx
xor eax, ecx
not r12d
or r12d, eax
mov rcx, rsi
call qword [rsi + 0x78]
movzx eax, ax
mov dword [rsp + r15*4 + 0xcc], eax
mov byte [rsi + 0xc], 0
xor eax, eax
jmp 0x46c3a4
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x98], rbp
mov rax, qword [rsp + 0x88]
lea edi, [rax + r12]
jmp 0x46c55d
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x98], rbp
movzx eax, word [rsi + 0x1a]
mov rcx, qword [rsi + 0x50]
mov rbp, qword [rsi + 0x60]
mov ebx, edi
sub ebx, edx
movsxd rdx, ebx
movzx edx, word [rbp + rdx*2]
shl edx, 0x10
bswap edx
not edx
not eax
or eax, edx
movabs rbp, 0x1f414d2d294bb61a
mov edx, ebp
not edx
or edx, ebp
not eax
and eax, edx
lea r13, [rcx + rax]
mov qword [rsp + r15*8 + 0x268], r13
movzx edx, byte [rcx + rax]
shl edx, 0x18
movzx ebp, byte [rcx + rax + 1]
shl ebp, 0x10
mov ebx, ebp
not ebx
mov esi, edx
not esi
and ebx, 0x3c76df89
and ebp, 0x890000
or ebp, ebx
and esi, 0x3c76df89
and edx, 0xc3000000
or edx, esi
mov rsi, qword [rsp + 0xa0]
xor edx, ebp
movzx ebx, byte [rcx + rax + 2]
shl ebx, 8
or ebx, edx
movzx eax, byte [rcx + rax + 3]
mov r12d, ebx
and r12d, eax
xor ebx, eax
mov rcx, rsi
mov rdx, r13
call qword [rsi + 0x78]
movzx r14d, ax
mov dword [rsp + r15*4 + 0xcc], r14d
mov rax, qword [rsp + 0xf0]
mov eax, dword [rax + 0x28]
not eax
or eax, 0xfff3
cmp ax, 0xffff
je 0x46c370
mov ecx, dword [rsi + 0x50]
mov eax, r13d
sub eax, ecx
lea ecx, [rax + r14]
mov rdx, qword [rsp + 0xf0]
cmp ecx, dword [rdx + 0x38]
jg 0x46c370
movsxd rcx, eax
mov rsi, qword [rsp + 0x1e8]
add rcx, rsi
mov r8d, r14d
mov rdx, r13
call fcn.005f4c20
movabs rax, 0xae56c971e17fb06a
add r13, rax
mov rcx, qword [rsp + 0xa0]
sub r13, qword [rcx + 0x50]
sub r13, rax
add r13, rsi
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + r15*8 + 0x268], r13
jmp 0x46c370
mov r8, r15
mov dword [rsp + 0xac], r12d
shl r8, 0x20
movabs rax, 0x100000000
add r8, rax
sar r8, 0x1d
xor ebx, ebx
lea rcx, [rsp + 0x190]
xor edx, edx
call fcn.005f4c10
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x110]
test rdi, rdi
je 0x46ceef
cmp dword [0x005f6010], 0
je 0x46ceb1
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x46c6fd
call qword [0x005f6090]
mov rcx, rdi
call qword [0x005f6048]
mov rcx, qword [0x0213b040]
cdqe
movabs rdx, 0x63e659de30420d9c
sub rcx, rdx
sub rcx, rax
add rcx, rdx
mov qword [0x0213b040], rcx
add qword [0x0213b088], 0xffffffffffffffff
mov rcx, rdi
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x46ceef
call qword [0x005f60a0]
jmp 0x46ceef
mov dword [rsp + 0xac], r12d
add r14d, 3
mov esi, r14d
xor esi, 0x80000003
and esi, r14d
lea eax, [rsi + rsi*4]
add eax, eax
add eax, dword [r13 + 0x34]
movsxd rcx, eax
call fcn.00404550
mov qword [rsp + 0x110], rax
test rax, rax
movabs rdi, 0xe6cc76c754a45b
je 0x46ced8
lea rcx, [rax + rsi*8]
mov qword [rsp + 0x118], rcx
lea rdx, [rcx + rsi*2]
mov qword [rsp + 0x290], rdx
mov r13, qword [rsp + 0x190]
mov qword [rsp + 0x108], r13
movzx edx, byte [r13 + 8]
mov qword [rsp + 0x268], rdx
shl rdx, 2
mov qword [rsp + 0x218], rdx
movzx edx, byte [r13 + 2]
mov dword [rsp + 0x58], edx
lea rbp, [r13 + 0x50]
mov edx, dword [rsp + 0xe4]
mov qword [rsp + 0x80], rdx
mov r14, qword [r13 + 0x50]
lea rdx, [r13 + 0x12]
mov qword [rsp + 0xf8], rdx
movzx r15d, word [r13 + 0x12]
add r15, r14
lea rdx, [rsi + rsi*4]
lea rax, [rax + rdx*2]
mov qword [rsp + 0x280], rax
xor ebx, ebx
mov rdx, r13
mov qword [rsp + 0x220], rbp
mov qword [rsp + 0x228], rbp
xor eax, eax
mov qword [rsp + 0x60], rax
nop word [rax + rax]
mov qword [rsp + 0x50], rdx
movzx esi, word [rdx + 0x18]
movzx eax, word [rdx + 0x1a]
mov qword [rsp + 0x98], rax
mov r12d, dword [rsp + 0x100]
movsxd rbp, r12d
lea rcx, [rcx + rbp*2]
mov rax, qword [rsp + 0x50]
movzx r8d, byte [rax + 0xc]
add r8, rsi
add r8, r8
xor edx, edx
call fcn.005f4c10
mov r8, qword [rsp + 0x50]
movzx r11d, byte [r8 + 0xc]
test r11d, r11d
je 0x46c8d0
movzx r10d, word [r8 + 0x1c]
cmp si, r10w
jb 0x46d163
test r10w, r10w
je 0x46c8f0
mov eax, r10d
and eax, 1
cmp r10w, 1
jne 0x46c8fd
mov rcx, r15
mov rsi, qword [rsp + 0x98]
test eax, eax
jne 0x46ca45
jmp 0x46ca89
mov r9, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x98]
jmp 0x46cc79
mov rsi, qword [rsp + 0x98]
jmp 0x46ca8f
mov dword [rsp + 0x168], eax
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x1e0], rbx
and r10d, 0xfffffffe
lea r11, [rbp*8]
xor esi, esi
mov qword [rsp + 0x170], rbp
mov rdi, rbp
mov rcx, r15
mov edx, r10d
movabs r8, 0x9d421a39f18a4020
mov r9, r14
movabs r14, 0x5a02e7ed34e5a93
nop word [rax + rax]
movzx ebp, byte [r15 + rsi*2]
shl rbp, 8
mov rbx, rbp
not rbx
mov eax, r8d
not eax
and rbx, r8
and ebp, eax
or rbp, rbx
movzx ebx, byte [r15 + rsi*2 + 1]
and eax, ebx
not rbx
and rbx, r8
or rax, rbx
xor rax, rbp
mov rbp, qword [rsp + 0x98]
not rbp
mov rbx, rax
xor rbx, rbp
and rbx, rax
add rbx, r9
mov rax, qword [rsp + 0x110]
add rax, r11
mov qword [rax + rsi*8], rbx
lea eax, [r12 + rsi]
add eax, 1
mov dword [rsp + 0x100], eax
movzx eax, word [r15 + rsi*2 + 2]
shl eax, 0x10
bswap eax
not eax
or ebp, eax
mov eax, r14d
not eax
or eax, r14d
not ebp
and ebp, eax
add rbp, r9
mov rax, qword [rsp + 0x110]
add rax, r11
mov qword [rax + rsi*8 + 8], rbp
lea eax, [r12 + rsi]
add eax, 2
mov dword [rsp + 0x100], eax
add rcx, 4
add rdi, 2
add edx, 0xfffffffe
add rsi, 2
cmp r10d, esi
jne 0x46c950
mov rbp, qword [rsp + 0x170]
add rbp, rsi
movabs rdi, 0xe6cc76c754a45b
mov rbx, qword [rsp + 0x1e0]
mov r8, qword [rsp + 0x50]
mov r14, r9
mov rsi, qword [rsp + 0x98]
mov r11, qword [rsp + 0x48]
mov eax, dword [rsp + 0x168]
test eax, eax
je 0x46ca89
movzx eax, word [rcx]
shl eax, 0x10
bswap eax
not eax
mov edx, esi
not edx
or edx, eax
movabs r9, 0x2e525f0dbbf7d19b
mov eax, r9d
not eax
or eax, r9d
not edx
and edx, eax
add rdx, r14
mov rax, qword [rsp + 0x110]
mov qword [rax + rbp*8], rdx
add rbp, 1
mov dword [rsp + 0x100], ebp
add rcx, 2
movsxd rbp, ebp
mov r15, rcx
cmp r11d, 1
mov eax, 1
cmovbe r11d, eax
lea rax, [r11 - 1]
movabs rcx, 0xc6853f2a8677944
mov r10d, ecx
not r10d
or r10d, ecx
and r10d, r11d
and r10d, 3
cmp rax, 3
jae 0x46cae0
mov rax, rbp
xor ebp, ebp
test r10, r10
mov r9, qword [rsp + 0x60]
jne 0x46cc3c
jmp 0x46cc71
mov qword [rsp + 0x168], r14
mov qword [rsp + 0x1e0], rbx
movabs rax, 0x6c60413b16abfe27
mov r12d, eax
not r12d
or r12d, eax
and r12d, r11d
and r12d, 0xfffffffc
lea r9, [rbp*8]
mov rsi, 0xffffffffffffffff
mov r11, rbp
xor ebp, ebp
mov qword [rsp + 0x170], r11
mov qword [rsp + 0x48], r12
movabs r14, 0x181b45c088fcce7b
nop word cs:[rax + rax]
nop
mov rbx, qword [r8 + rbp*8 + 0x28]
mov rdi, qword [rsp + 0x110]
add rdi, r9
mov qword [rdi + rbp*8], rbx
mov ebx, ebp
and ebx, 1
mov rax, rbp
xor rax, 1
or rax, rbx
mov rax, qword [r8 + rax*8 + 0x28]
mov rbx, qword [rsp + 0x110]
add rbx, r9
mov qword [rbx + rbp*8 + 8], rax
mov rbx, r14
not rbx
mov rax, rsi
and rax, r14
mov edi, esi
not edi
mov rcx, rbp
and rcx, rbx
or rcx, rax
mov rax, r14
and rax, 0xfffffffffffffffd
mov edx, ebx
and edx, 2
or rdx, rax
xor rdx, rcx
or ebx, r14d
and ebx, edi
and ebx, 2
or rbx, rdx
mov rax, qword [r8 + rbx*8 + 0x28]
mov rcx, qword [rsp + 0x110]
add rcx, r9
mov qword [rcx + rbp*8 + 0x10], rax
mov eax, ebp
and eax, 3
mov rcx, rbp
xor rcx, 3
or rcx, rax
mov rax, qword [r8 + rcx*8 + 0x28]
mov rcx, qword [rsp + 0x110]
add rcx, r9
mov qword [rcx + rbp*8 + 0x18], rax
add r11, 4
add rbp, 4
add r12, 0xfffffffffffffffc
add rsi, 0xfffffffffffffffc
cmp qword [rsp + 0x48], rbp
jne 0x46cb40
mov r12, qword [rsp + 0x170]
add r12, rbp
mov rax, r12
movabs rdi, 0xe6cc76c754a45b
mov rbx, qword [rsp + 0x1e0]
mov r14, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x98]
test r10, r10
mov r9, qword [rsp + 0x60]
je 0x46cc71
lea rdx, [r8 + rbp*8]
add rdx, 0x28
mov r12, rax
nop word [rax + rax]
mov rax, qword [rdx]
mov rcx, qword [rsp + 0x110]
mov qword [rcx + r12*8], rax
add r12, 1
add rbp, 1
add rdx, 8
add r10, 0xffffffffffffffff
jne 0x46cc50
mov dword [rsp + 0x100], r12d
mov rax, qword [rsp + 0xf8]
movzx eax, word [rax]
add rax, r14
movzx ecx, word [r8 + 0x18]
lea rax, [rax + rcx*2]
cmp r15, rax
jae 0x46cce4
movsxd r12, r12d
nop dword [rax]
mov ecx, r12d
movzx edx, word [r15]
shl edx, 0x10
bswap edx
not edx
mov ebp, esi
not ebp
or ebp, edx
mov edx, edi
not edx
or edx, edi
not ebp
and ebp, edx
add rbp, r14
mov rdx, qword [rsp + 0x110]
mov qword [rdx + r12*8], rbp
add r12, 1
add ecx, 1
mov dword [rsp + 0x100], ecx
add r15, 2
cmp r15, rax
jb 0x46cca0
mov rbp, rbx
cmp byte [rsp + 0x58], 0
setne dl
sete al
mov dword [rsp + r9*4 + 0x240], r12d
cmp r9, qword [rsp + 0xe8]
setae bl
setb cl
cmp dl, bl
mov r15, qword [rsp + 0x90]
jne 0x46ce00
or al, cl
xor al, 1
mov rbx, rbp
jne 0x46ce44
mov eax, dword [rsp + r9*4 + 0xd0]
mov rcx, qword [rsp + 0x118]
movsxd rbp, r12d
mov word [rcx + rbp*2], ax
movsxd rbx, ebx
mov rcx, qword [rsp + 0x290]
lea rdi, [rcx + rbx]
mov r14, r8
mov r8d, eax
xor r8d, 0xffff0000
and r8d, eax
add ebx, r8d
mov rdx, qword [rsp + r9*8 + 0x270]
mov rcx, rdi
call fcn.005f4c20
mov rax, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x218]
add rdi, rdx
mov qword [rax + rbp*8], rdi
mov rcx, qword [rsp + 0x118]
movzx eax, word [rcx + rbp*2]
movzx edx, dx
sub eax, edx
mov word [rcx + rbp*2], ax
cmp byte [r14 + 8], 0
je 0x46ce05
cmp ax, 3
ja 0x46ce29
movsxd rbx, ebx
mov rax, qword [rsp + 0x280]
add rax, rbx
movabs rdi, 0xe6cc76c754a45b
mov r9, qword [rsp + 0x60]
nop dword [rax]
add rbx, 1
mov byte [rax], 0
mov rcx, qword [rsp + 0x118]
movsxd r12, dword [rsp + 0x100]
movzx edx, word [rcx + r12*2]
add edx, 1
mov word [rcx + r12*2], dx
add rax, 1
cmp dx, 4
jb 0x46cdd0
jmp 0x46ce38
mov rbx, rbp
jmp 0x46ce44
mov rax, qword [rsp + 0x228]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x110]
mov rcx, qword [rcx + rbp*8]
mov eax, dword [rax + 8]
mov dword [rcx], eax
mov r12d, dword [rsp + 0x100]
movabs rdi, 0xe6cc76c754a45b
mov r9, qword [rsp + 0x60]
add r12d, 1
mov dword [rsp + 0x100], r12d
add r9, 1
cmp r9, qword [rsp + 0x80]
mov r12, qword [rsp + 0x260]
je 0x46d033
mov rdx, qword [rsp + r9*8 + 0x190]
mov r14, qword [rdx + 0x50]
mov al, byte [r14]
mov rcx, qword [rsp + 0x220]
mov rcx, qword [rcx]
cmp al, byte [rcx]
jne 0x46d125
mov qword [rsp + 0x60], r9
lea rax, [rdx + 0x50]
mov qword [rsp + 0x228], rax
lea rax, [rdx + 0x12]
mov qword [rsp + 0xf8], rax
movzx r15d, word [rax]
add r15, r14
mov rcx, qword [rsp + 0x118]
jmp 0x46c840
mov rcx, rdi
call qword [0x005f6038]
jmp 0x46ceef
mov dword [rsp + 0xac], r12d
xor ebx, ebx
lea rcx, [rsp + 0x190]
xor edx, edx
mov r8, rbp
jmp 0x46c6bb
mov dword [rsp + 0x44], 7
xor ebx, ebx
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x90]
mov esi, dword [rsp + 0xe4]
xor edi, edi
jmp 0x46cf0e
call fcn.00430480
add rdi, 1
cmp rsi, rdi
je 0x46cf70
mov rax, qword [rsp + rdi*8 + 0x190]
test rax, rax
je 0x46cf05
mov rcx, qword [rax + 0x70]
mov eax, dword [rcx + 0x34]
not eax
or eax, 0xffdf
cmp ax, 0xffff
je 0x46cf00
mov rbp, qword [rcx + 0x28]
add dword [rbp + 0x98], 0xffffffff
mov rax, qword [rbp + 0xa8]
mov qword [rcx + 0x20], rax
mov qword [rbp + 0xa8], rcx
mov rax, qword [rbp + 0x48]
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
add edx, 0xffffffff
imul rdx, qword [rbp + 0xc8]
mov rbp, qword [rax]
mov rcx, rax
call qword [rbp + 0x90]
jmp 0x46cf05
test ebx, ebx
jle 0x46cff0
mov esi, ebx
xor edi, edi
jmp 0x46cfc8
mov rbp, qword [rcx + 0x28]
add dword [rbp + 0x98], 0xffffffff
mov rax, qword [rbp + 0xa8]
mov qword [rcx + 0x20], rax
mov qword [rbp + 0xa8], rcx
mov rax, qword [rbp + 0x48]
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
add edx, 0xffffffff
imul rdx, qword [rbp + 0xc8]
mov rbp, qword [rax]
mov rcx, rax
call qword [rbp + 0x90]
add rdi, 1
cmp rsi, rdi
je 0x46cff0
mov rax, qword [rsp + rdi*8 + 0x1b0]
test rax, rax
je 0x46cfbf
mov rcx, qword [rax + 0x70]
mov eax, dword [rcx + 0x34]
not eax
or eax, 0xffdf
cmp ax, 0xffff
jne 0x46cf80
call fcn.00430480
jmp 0x46cfbf
mov ebp, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x238]
test rcx, rcx
je 0x46d006
call fcn.004378f0
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x238], rax
mov byte [r15 + 0xc], 0
test r15, r15
jne 0x46bee5
jmp 0x46b9b5
call fcn.00430480
jmp 0x46bfc3
mov rax, qword [rsp + 0xf0]
mov eax, dword [rax + 0x38]
movzx edx, word [rsp + 0x218]
mov rcx, rdx
mov qword [rsp + 0xf8], rdx
add eax, edx
add eax, 0xfffffff4
mov dword [rsp + 0x98], eax
cmp byte [rsp + 0x58], 0
je 0x46d1bd
xor esi, esi
xor eax, eax
nop dword [rax]
mov rcx, qword [r13 + 0x58]
movsxd rdx, eax
mov qword [rsp + rdx*8 + 0x120], rcx
mov r14d, dword [rsp + rsi*4 + 0x240]
mov dword [rsp + rdx*4 + 0x150], r14d
mov ebx, 0
test edx, edx
je 0x46d0ab
lea ecx, [rax - 1]
movsxd rcx, ecx
cmp r14d, dword [rsp + rcx*4 + 0x150]
cmove eax, ecx
mov ebx, eax
mov eax, dword [rsp + 0x98]
mov ebp, eax
sub ebp, dword [r13 + 0x14]
mov dword [rsp + rsi*4 + 0xd0], ebp
cmp byte [r13 + 0xc], 0
je 0x46d0f9
xor edi, edi
nop dword [rax]
mov rdx, qword [r13 + rdi*8 + 0x28]
mov rcx, r13
call qword [r13 + 0x78]
movzx eax, ax
add ebp, eax
add ebp, 2
mov dword [rsp + rsi*4 + 0xd0], ebp
add rdi, 1
movzx eax, byte [r13 + 0xc]
cmp rdi, rax
jb 0x46d0d0
mov dword [rsp + rsi*4 + 0xb0], r14d
add rsi, 1
cmp rsi, qword [rsp + 0x80]
je 0x46d2a1
add ebx, 1
mov r13, qword [rsp + rsi*8 + 0x190]
mov eax, ebx
jmp 0x46d070
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x1246d
call fcn.00408970
mov dword [rsp + 0x44], 0xb
xor ebx, ebx
mov r12, qword [rsp + 0x68]
jmp 0x46c6cd
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x12485
call fcn.00408970
mov dword [rsp + 0x44], 0xb
xor ebx, ebx
jmp 0x46c6c0
cmp byte [r14 + 0x21], 0
je 0x46dd86
mov rcx, rbx
call fcn.00444510
mov ebp, eax
mov dword [rsp + 0x1b0], eax
jmp 0x46c104
xor esi, esi
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax + rax]
mov rcx, qword [r13 + 0x58]
movsxd rdx, eax
mov qword [rsp + rdx*8 + 0x120], rcx
mov r14d, dword [rsp + rsi*4 + 0x240]
mov dword [rsp + rdx*4 + 0x150], r14d
mov ebx, 0
test edx, edx
je 0x46d20b
lea ecx, [rax - 1]
movsxd rcx, ecx
cmp r14d, dword [rsp + rcx*4 + 0x150]
cmove eax, ecx
mov ebx, eax
lea eax, [rbx + 1]
mov rcx, qword [rsp + 0xa0]
mov rcx, qword [rcx + 0x58]
cdqe
mov qword [rsp + rax*8 + 0x120], rcx
lea ecx, [r14 + 1]
mov dword [rsp + rax*4 + 0x150], ecx
mov eax, dword [rsp + 0x98]
mov ebp, eax
sub ebp, dword [r13 + 0x14]
mov dword [rsp + rsi*4 + 0xd0], ebp
cmp byte [r13 + 0xc], 0
je 0x46d279
xor edi, edi
mov rdx, qword [r13 + rdi*8 + 0x28]
mov rcx, r13
call qword [r13 + 0x78]
movzx eax, ax
add ebp, eax
add ebp, 2
mov dword [rsp + rsi*4 + 0xd0], ebp
add rdi, 1
movzx eax, byte [r13 + 0xc]
cmp rdi, rax
jb 0x46d250
mov dword [rsp + rsi*4 + 0xb0], r14d
add rsi, 1
cmp rsi, qword [rsp + 0x80]
je 0x46d2a1
add ebx, 2
mov r13, qword [rsp + rsi*8 + 0x190]
mov eax, ebx
jmp 0x46d1d0
mov eax, dword [rsp + 0xe4]
mov qword [rsp + 0x48], rax
test r12d, r12d
mov r13d, dword [rsp + 0x98]
mov rdi, qword [rsp + 0x78]
js 0x46d7e1
xor r12d, r12d
mov eax, dword [rsp + 0xe4]
mov qword [rsp + 0x48], rax
jmp 0x46d2f7
add r12, 1
mov eax, r12d
mov qword [rsp + 0x48], rax
cdqe
cmp r12, rax
jge 0x46d7e1
mov esi, dword [rsp + r12*4 + 0xd0]
cmp esi, r13d
jle 0x46d430
lea rbx, [r12 + 1]
cmp r12, 4
jb 0x46d570
movsxd rax, dword [rsp + 0x48]
cmp rbx, rax
jge 0x46de89
mov ebp, dword [rsp + r12*4 + 0xb0]
cmp byte [rsp + 0x58], 0
jne 0x46d368
movsxd rdi, ebp
jmp 0x46d3ac
movzx eax, ax
add eax, 2
sub esi, eax
mov dword [rsp + r12*4 + 0xd0], esi
add dword [rsp + rbx*4 + 0xd0], eax
mov dword [rsp + r12*4 + 0xb0], ebp
cmp esi, r13d
jle 0x46d438
add ebp, 0xffffffff
mov rax, qword [rsp + 0x118]
movsxd rcx, ebp
movzx eax, word [rax + rcx*2]
test ax, ax
jne 0x46d340
lea rcx, [rsp + 0x100]
mov edx, ebp
call fcn.00470880
jmp 0x46d340
movzx eax, ax
add eax, 2
add rbp, r14
add dword [rsp + rbx*4 + 0xd0], eax
mov rdi, rbp
cmp esi, r13d
jle 0x46d7c2
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rdi*2 - 2]
test ax, ax
jne 0x46d3ce
lea edx, [rdi - 1]
lea rcx, [rsp + 0x100]
call fcn.00470880
movabs rbp, 0x684bd3854d11253
lea r14, [rdi + rbp]
not rbp
movzx eax, ax
sub esi, eax
add esi, 0xfffffffe
mov dword [rsp + r12*4 + 0xd0], esi
movsxd rcx, dword [rsp + 0x100]
xor eax, eax
cmp rdi, rcx
jge 0x46d396
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rdi*2]
test ax, ax
jne 0x46d390
lea rcx, [rsp + 0x100]
mov edx, edi
call fcn.00470880
jmp 0x46d390
mov ebp, dword [rsp + r12*4 + 0xb0]
cmp ebp, dword [rsp + 0x100]
jge 0x46d720
lea rdi, [r12 + 1]
movsxd rbp, ebp
cmp byte [rsp + 0x58], 0
je 0x46d4e9
nop dword [rax + rax]
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rbp*2]
test ax, ax
jne 0x46d480
lea rcx, [rsp + 0x100]
mov edx, ebp
call fcn.00470880
movzx eax, ax
add esi, eax
add esi, 2
cmp esi, r13d
jg 0x46d740
add eax, 2
mov dword [rsp + r12*4 + 0xd0], esi
mov rcx, rbp
add rcx, 1
sub dword [rsp + rdi*4 + 0xd0], eax
lea eax, [rbp + 1]
mov dword [rsp + r12*4 + 0xb0], eax
movsxd rax, dword [rsp + 0x100]
mov rbp, rcx
cmp rcx, rax
jl 0x46d460
mov ebp, ecx
jmp 0x46d740
movzx eax, ax
add eax, 2
sub dword [rsp + rdi*4 + 0xd0], eax
mov rbp, rbx
cmp rbx, rcx
jge 0x46d72f
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rbp*2]
test ax, ax
jne 0x46d509
lea rcx, [rsp + 0x100]
mov edx, ebp
call fcn.00470880
movzx eax, ax
add esi, eax
add esi, 2
cmp esi, r13d
jg 0x46d740
mov dword [rsp + r12*4 + 0xd0], esi
lea rbx, [rbp + 1]
lea edx, [rbp + 1]
mov dword [rsp + r12*4 + 0xb0], edx
movsxd rcx, dword [rsp + 0x100]
xor eax, eax
cmp rbx, rcx
jge 0x46d4d6
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rbp*2 + 2]
test ax, ax
jne 0x46d4d0
lea rcx, [rsp + 0x100]
call fcn.00470880
movsxd rcx, dword [rsp + 0x100]
jmp 0x46d4d0
lea r13, [r12 + 2]
cmp byte [rsp + 0x58], 0
je 0x46d612
movsxd rbp, dword [rsp + r12*4 + 0xb0]
lea rdi, [rbp - 1]
jmp 0x46d5cd
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rdi*2]
test ax, ax
je 0x46d600
movzx eax, ax
add eax, 2
sub esi, eax
mov dword [rsp + r12*4 + 0xd0], esi
add dword [rsp + rbx*4 + 0xd0], eax
add rbp, 0xffffffffffffffff
add rdi, 0xffffffffffffffff
cmp esi, dword [rsp + 0x98]
jle 0x46d6f0
movsxd rax, dword [rsp + 0x48]
cmp rbx, rax
jl 0x46d590
mov dword [rsp + rbx*4 + 0xd0], 0
mov eax, dword [rsp + 0x100]
mov dword [rsp + rbx*4 + 0xb0], eax
mov eax, r13d
mov qword [rsp + 0x48], rax
jmp 0x46d590
lea edx, [rbp - 1]
lea rcx, [rsp + 0x100]
call fcn.00470880
jmp 0x46d5a1
movsxd rdi, dword [rsp + r12*4 + 0xb0]
jmp 0x46d640
movzx eax, ax
add eax, 2
add rbp, r14
add dword [rsp + rbx*4 + 0xd0], eax
mov rdi, rbp
cmp esi, dword [rsp + 0x98]
jle 0x46d6f0
mov rcx, qword [rsp + 0x48]
movsxd rax, ecx
cmp rbx, rax
jl 0x46d669
mov dword [rsp + rbx*4 + 0xd0], 0
mov eax, dword [rsp + 0x100]
mov dword [rsp + rbx*4 + 0xb0], eax
mov ecx, r13d
mov qword [rsp + 0x48], rcx
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rdi*2 - 2]
test ax, ax
jne 0x46d690
lea edx, [rdi - 1]
lea rcx, [rsp + 0x100]
call fcn.00470880
movabs rbp, 0x1eb281baf699cde
lea r14, [rdi + rbp]
not rbp
movzx eax, ax
sub esi, eax
add esi, 0xfffffffe
mov dword [rsp + r12*4 + 0xd0], esi
movsxd rcx, dword [rsp + 0x100]
xor eax, eax
cmp rdi, rcx
jge 0x46d626
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rdi*2]
test ax, ax
jne 0x46d620
lea rcx, [rsp + 0x100]
mov edx, edi
call fcn.00470880
jmp 0x46d620
mov dword [rsp + r12*4 + 0xb0], ebp
mov r13d, dword [rsp + 0x98]
mov rdi, qword [rsp + 0x78]
cmp ebp, dword [rsp + 0x100]
jl 0x46d445
nop word cs:[rax + rax]
nop dword [rax]
cmp ebp, dword [rsp + 0x100]
jge 0x46d2e0
jmp 0x46d752
mov ebp, ebx
nop word cs:[rax + rax]
nop dword [rax + rax]
mov rdi, qword [rsp + 0x78]
cmp ebp, dword [rsp + 0x100]
jge 0x46d2e0
test r12, r12
je 0x46d79d
movabs rdx, 0x9efda182432527d4
lea eax, [r12 + rdx]
mov ecx, 0xffffffff
add eax, ecx
sub eax, edx
not eax
mov ecx, 0xffffffff
not ecx
or ecx, eax
movabs rdx, 0xdf692d8464dde133
mov eax, edx
not eax
or eax, edx
not ecx
and ecx, eax
mov eax, dword [rsp + rcx*4 + 0xb0]
cmp ebp, eax
jg 0x46d7a7
jmp 0x46dd5c
xor eax, eax
cmp ebp, eax
jle 0x46dd5c
add r12, 1
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x48], rax
cdqe
cmp r12, rax
jl 0x46d2f7
jmp 0x46d7e1
mov dword [rsp + r12*4 + 0xb0], ebp
mov rdi, qword [rsp + 0x78]
cmp ebp, dword [rsp + 0x100]
jge 0x46d720
jmp 0x46d445
mov rax, qword [rsp + 0x48]
lea r14d, [rax - 1]
cmp byte [rsp + 0x77], 0
je 0x46d99c
mov r12, qword [rsp + 0x68]
jmp 0x46d815
add r14, 0xffffffffffffffff
cmp r15d, eax
mov r15, qword [rsp + 0x90]
jle 0x46dd23
test r14d, r14d
jle 0x46db53
mov ebx, dword [rsp + r14*4 + 0xd0]
mov r13, r14
mov eax, r14d
movabs rdx, 0xbd57d171df494738
sub eax, edx
mov ecx, 0xffffffff
add eax, ecx
add eax, edx
not eax
mov r14d, 0xffffffff
not r14d
or r14d, eax
movabs rcx, 0x53033ea696bde304
mov eax, ecx
not eax
or eax, ecx
not r14d
and r14d, eax
mov ebp, dword [rsp + r14*4 + 0xd0]
movsxd r15, dword [rsp + r14*4 + 0xb0]
mov edx, r15d
sub edx, dword [rsp + 0x58]
mov rax, qword [rsp + 0x118]
movsxd rsi, edx
cmp word [rax + rsi*2], 0
jne 0x46d8a3
lea rcx, [rsp + 0x100]
call fcn.00470880
mov rax, qword [rsp + 0x118]
lea rdi, [r15 - 1]
nop word [rax + rax]
cmp word [rax + rdi*2], 0
jne 0x46d8c8
lea edx, [r15 - 1]
lea rcx, [rsp + 0x100]
call fcn.00470880
test ebx, ebx
jne 0x46d91e
lea r8d, [r15 - 1]
movabs rcx, 0xf4729a49a1530e66
add r15, rcx
not rcx
add rcx, r15
mov rax, qword [rsp + 0x118]
movzx ebx, word [rax + rsi*2]
add ebx, 2
movzx edx, word [rax + rdi*2]
sub ebp, edx
add ebp, 0xfffffffe
mov dword [rsp + r14*4 + 0xb0], r8d
add rsi, 0xffffffffffffffff
lea rdx, [rdi - 1]
add rdi, 1
mov r15, rcx
cmp rdi, 1
mov rdi, rdx
jg 0x46d8b0
mov r15d, ecx
mov dword [rsp + r13*4 + 0xd0], ebx
mov dword [rsp + r14*4 + 0xd0], ebp
mov r14, r13
xor eax, eax
cmp r14d, 2
mov rdi, qword [rsp + 0x78]
jl 0x46d800
mov eax, 0xffffffff
add rax, r14
add rax, 0xffffffffffffffff
mov ecx, 0xffffffff
xor rcx, rax
not rcx
and rcx, rax
mov eax, dword [rsp + rcx*4 + 0xb0]
jmp 0x46d800
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ebp, 0xb
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x122c6
call fcn.00408970
jmp 0x46d016
mov rbp, r14
mov r12, qword [rsp + 0x68]
mov qword [rsp + 0x60], r14
jmp 0x46d9cb
movabs rcx, 0xc0886a5a0c64d61e
add rbp, rcx
not rcx
add rbp, rcx
cmp ebx, eax
jle 0x46dd23
test ebp, ebp
jle 0x46db53
mov edi, dword [rsp + rbp*4 + 0xd0]
mov eax, 0xffffffff
add eax, ebp
not eax
mov r13d, 0xffffffff
not r13d
or r13d, eax
movabs rcx, 0xaba7e548fe48744a
mov eax, ecx
not eax
or eax, ecx
not r13d
and r13d, eax
mov esi, dword [rsp + r13*4 + 0xd0]
movsxd rbx, dword [rsp + r13*4 + 0xb0]
mov edx, ebx
sub edx, dword [rsp + 0x58]
mov rax, qword [rsp + 0x118]
movsxd r15, edx
cmp word [rax + r15*2], 0
jne 0x46da43
lea rcx, [rsp + 0x100]
call fcn.00470880
mov rax, qword [rsp + 0x118]
xor ecx, ecx
mov qword [rsp + 0x50], rbp
cmp rbp, r14
sete cl
lea r14d, [rcx + rcx]
add r14d, 0xfffffffe
lea r12, [rbx - 1]
jmp 0x46da9a
movzx ebp, word [rax + r12*2]
add ecx, 2
mov rdx, rbx
add rdx, 0xffffffffffffffff
sub esi, ebp
add esi, 0xfffffffe
lea ebp, [rbx - 1]
mov dword [rsp + r13*4 + 0xb0], ebp
add r15, 0xffffffffffffffff
lea rbp, [r12 - 1]
add r12, 1
mov rbx, rdx
mov edi, ecx
cmp r12, 1
mov r12, rbp
jle 0x46dae9
cmp word [rax + r12*2], 0
je 0x46dab0
movzx ecx, word [rax + r15*2]
test edi, edi
jne 0x46dad1
jmp 0x46da60
lea edx, [rbx - 1]
lea rcx, [rsp + 0x100]
call fcn.00470880
mov rax, qword [rsp + 0x118]
movzx ecx, word [rax + r15*2]
test edi, edi
je 0x46da60
add ecx, edi
add ecx, 2
movzx ebp, word [rax + r12*2]
lea edx, [rsi + r14]
sub edx, ebp
cmp ecx, edx
jle 0x46da68
mov ecx, edi
jmp 0x46daeb
mov ebx, edx
mov rbp, qword [rsp + 0x50]
mov dword [rsp + rbp*4 + 0xd0], ecx
mov dword [rsp + r13*4 + 0xd0], esi
xor eax, eax
cmp ebp, 1
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x60]
jle 0x46d9b0
mov eax, 0xffffffff
add eax, ebp
neg eax
mov ecx, 0xffffffff
not ecx
or ecx, eax
movabs rdx, 0x1bd2e04750ee3d66
mov eax, edx
not eax
or eax, edx
not ecx
and ecx, eax
mov eax, dword [rsp + rcx*4 + 0xb0]
jmp 0x46d9b0
mov rax, qword [rsp + 0x220]
mov rax, qword [rax]
movzx eax, byte [rax]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x48]
test eax, eax
jle 0x46dd8d
sub edi, dword [rsp + 0x88]
mov qword [rsp + 0x78], rdi
mov r13d, eax
cmp byte [rsp + 0x77], 0
mov rsi, qword [rsp + 0xf0]
je 0x46deb3
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x46dbb4
test eax, eax
jne 0x46f114
add rbx, 1
cmp r13, rbx
je 0x46e16d
cmp rbx, qword [rsp + 0xe8]
jbe 0x46dc66
mov byte [rsp + 0x20], 0
mov rcx, rsi
lea rdx, [rsp + 0x178]
lea r8, [rsp + 0xac]
mov r9d, 1
call fcn.00441dd0
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x46f114
mov rdi, qword [rsp + 0x178]
mov rcx, rdi
mov edx, dword [rsp + 0x50]
call fcn.0043f960
mov qword [rsp + rbx*8 + 0x1b0], rdi
mov rax, qword [rsp + 0x48]
add eax, 1
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x100]
mov dword [rsp + rbx*4 + 0x240], eax
cmp byte [rsi + 0x21], 0
je 0x46dba7
mov edx, dword [rdi + 4]
mov rax, qword [rsp + 0xa0]
mov r9d, dword [rax + 4]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov r8b, 5
call fcn.00444820
cmp dword [rsp + 0x44], 0
je 0x46dba7
jmp 0x46f114
mov rdi, qword [rsp + rbx*8 + 0x190]
mov qword [rsp + rbx*8 + 0x1b0], rdi
mov qword [rsp + 0x178], rdi
mov qword [rsp + rbx*8 + 0x190], 0
mov rcx, qword [rdi + 0x70]
mov rdx, qword [rcx + 0x28]
mov ebp, dword [rcx + 0x34]
mov eax, ebp
xor eax, 0xfffb
test ax, bp
je 0x46dca9
mov eax, dword [rdx + 0x20]
cmp eax, dword [rcx + 0x30]
jae 0x46dcc5
mov eax, dword [rdx + 0x30]
test eax, eax
jne 0x46dcde
mov eax, dword [rdx + 0xb8]
cmp eax, dword [rdx + 0xc8]
jbe 0x46dcd5
call fcn.0043fc70
jmp 0x46dcde
cmp dword [rdx + 0x80], 0
je 0x46dcdc
call fcn.00432ba0
jmp 0x46dcde
call fcn.00440110
jmp 0x46dcde
xor eax, eax
mov dword [rsp + 0x44], eax
mov rcx, qword [rsp + 0x48]
add ecx, 1
mov qword [rsp + 0x48], rcx
mov rcx, qword [rdi + 0x70]
movsx ecx, word [rcx + 0x36]
xor edx, edx
cmp qword [rsp + 0x78], rbx
sete dl
add edx, 1
cmp edx, ecx
sete cl
test eax, eax
sete dl
cmp dl, cl
je 0x46db9f
test eax, eax
jne 0x46db9f
jmp 0x46e040
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x12535
call fcn.00408970
mov dword [rsp + 0x44], 0xb
xor ebx, ebx
jmp 0x46c6cd
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x1250b
jmp 0x46d14a
xor ebp, ebp
jmp 0x46c104
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x168], rax
mov rsi, qword [rsp + 0xf0]
mov r9, qword [rsp + 0x210]
mov qword [rsp + 0x48], rbx
lea eax, [rbx - 1]
mov dword [rsp + 0x78], eax
cdqe
mov rbp, qword [rsp + rax*8 + 0x1b0]
mov ecx, dword [rbp + 4]
bswap ecx
mov rax, qword [rsp + 0x288]
mov dword [r9 + rax], ecx
mov eax, dword [rsp + 0x50]
mov ecx, eax
xor ecx, 0xf7
test ecx, eax
sete cl
setne bl
mov rax, qword [rsp + 0x48]
cmp dword [rsp + 0xe4], eax
setne dl
sete al
xor al, bl
mov rbx, qword [rsp + 0x48]
jne 0x46de3b
or cl, dl
xor cl, 1
jne 0x46de3b
cmp ebx, dword [rsp + 0xe4]
lea rax, [rsp + 0x190]
lea rcx, [rsp + 0x1b0]
cmovg rax, rcx
mov rcx, qword [rsp + 0xe8]
mov rax, qword [rax + rcx*8]
mov rcx, qword [rbp + 0x50]
mov rax, qword [rax + 0x50]
mov eax, dword [rax + 8]
mov dword [rcx + 8], eax
cmp byte [rsi + 0x21], 0
je 0x46e545
mov r8d, dword [rsp + 0x100]
test r8d, r8d
jle 0x46e545
mov r9, qword [rsp + 0x1b0]
xor r14d, r14d
cmp byte [rsp + 0x58], 0
sete r14b
movzx eax, word [r9 + 0x18]
movzx esi, byte [r9 + 0xc]
add esi, eax
movsxd r15, ebx
xor ebp, ebp
xor r12d, r12d
xor r10d, r10d
mov r13, r9
jmp 0x46e2a5
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x124ea
jmp 0x46d14a
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x46ded3
test eax, eax
jne 0x46f114
add rbx, 1
cmp r13, rbx
je 0x46e16d
cmp rbx, qword [rsp + 0xe8]
jbe 0x46df87
mov r9d, dword [rsp + 0xac]
mov byte [rsp + 0x20], 0
mov rcx, rsi
lea rdx, [rsp + 0x178]
lea r8, [rsp + 0xac]
call fcn.00441dd0
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x46f114
mov rdi, qword [rsp + 0x178]
mov rcx, rdi
mov edx, dword [rsp + 0x50]
call fcn.0043f960
mov qword [rsp + rbx*8 + 0x1b0], rdi
mov rax, qword [rsp + 0x48]
add eax, 1
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0x100]
mov dword [rsp + rbx*4 + 0x240], eax
cmp byte [rsi + 0x21], 0
je 0x46dec6
mov edx, dword [rdi + 4]
mov rax, qword [rsp + 0xa0]
mov r9d, dword [rax + 4]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov r8b, 5
call fcn.00444820
cmp dword [rsp + 0x44], 0
je 0x46dec6
jmp 0x46f114
mov rdi, qword [rsp + rbx*8 + 0x190]
mov qword [rsp + rbx*8 + 0x1b0], rdi
mov qword [rsp + 0x178], rdi
mov qword [rsp + rbx*8 + 0x190], 0
mov rcx, qword [rdi + 0x70]
mov rdx, qword [rcx + 0x28]
mov eax, dword [rcx + 0x34]
not eax
or eax, 0xfffb
cmp ax, 0xffff
je 0x46dfcb
mov eax, dword [rdx + 0x20]
cmp eax, dword [rcx + 0x30]
jae 0x46dfe7
mov eax, dword [rdx + 0x30]
test eax, eax
jne 0x46e000
mov eax, dword [rdx + 0xb8]
cmp eax, dword [rdx + 0xc8]
jbe 0x46dff7
call fcn.0043fc70
jmp 0x46e000
cmp dword [rdx + 0x80], 0
je 0x46dffe
call fcn.00432ba0
jmp 0x46e000
call fcn.00440110
jmp 0x46e000
xor eax, eax
mov dword [rsp + 0x44], eax
mov rcx, qword [rsp + 0x48]
add ecx, 1
mov qword [rsp + 0x48], rcx
mov rcx, qword [rdi + 0x70]
movsx ecx, word [rcx + 0x36]
xor edx, edx
cmp qword [rsp + 0x78], rbx
sete dl
add edx, 1
cmp edx, ecx
sete cl
test eax, eax
sete dl
cmp dl, cl
je 0x46debe
test eax, eax
jne 0x46debe
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x12556
call fcn.00408970
mov dword [rsp + 0x44], 0xb
jmp 0x46f114
movzx eax, word [rsp + 0xd0]
movzx ecx, word [rdi + 0x12]
add ecx, eax
mov eax, dword [r14 + 0x38]
neg ecx
add eax, ecx
add eax, 0xfffffffe
mov dword [rdi + 0x14], eax
cmp byte [r14 + 0x21], 0
mov rsi, qword [rsp + 0xa0]
je 0x46f2d0
mov r9d, dword [rsi + 4]
mov edx, dword [rsp + 0x240]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov r8b, 5
call fcn.00444820
movzx eax, word [rsp + 0xd0]
cmp ax, word [rdi + 0x10]
jbe 0x46f2d0
cmp dword [rsp + 0xb0], 0
jne 0x46f2d0
mov rbx, qword [rsp + 0x190]
mov rcx, rdi
mov rdx, rbx
lea r8, [rsp + 0x1b0]
call qword [rdi + pe_nt_image_headers64]
movzx eax, word [rsp + 0x1c4]
cmp dword [rsp + 0x1c0], eax
jbe 0x46f2d0
mov rcx, qword [rdi + 0x58]
cmp rcx, rbx
jb 0x46f233
add rax, rbx
cmp rcx, rax
jae 0x46f233
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x10aa7
call fcn.00408970
mov dword [rsp + 0xb0], 0xb
jmp 0x46f2d0
mov rbx, qword [rsp + 0x48]
test ebx, ebx
jle 0x46e74f
mov r8d, ebx
xor eax, eax
jmp 0x46e18e
add rax, 1
cmp rax, r8
je 0x46f437
mov rdx, qword [rsp + rax*8 + 0x1b0]
mov ecx, dword [rdx + 4]
mov dword [rsp + rax*4 + 0x2b0], ecx
mov dword [rsp + rax*4 + 0x1f0], ecx
mov rdx, qword [rdx + 0x70]
movzx edx, word [rdx + 0x34]
mov word [rsp + rax*2 + 0x298], dx
test rax, rax
je 0x46e181
xor edx, edx
cmp dword [rsp + rdx*4 + 0x2b0], ecx
je 0x46e718
add rdx, 1
cmp rax, rdx
jne 0x46e1be
jmp 0x46e181
movzx r8d, word [rsp + 0x18e]
movzx eax, byte [r8 + rcx - 4]
shl eax, 0x18
movzx edx, byte [r8 + rcx - 3]
shl edx, 0x10
or edx, eax
movzx eax, byte [r8 + rcx - 2]
shl eax, 8
mov ebx, edx
not ebx
mov edi, eax
not edi
and ebx, 0xd6719891
and edx, 0x298e0000
or edx, ebx
and edi, 0xd6719891
and eax, 0x6700
or eax, edi
xor eax, edx
movzx ecx, byte [r8 + rcx - 1]
mov edx, eax
not edx
mov ebx, ecx
not ebx
mov edi, edx
and edi, 0x9ac20159
and eax, 0x653dfe00
or eax, edi
or edx, ebx
and ebx, 0x9ac20159
and ecx, 0xffffffa6
or ecx, ebx
mov rbx, qword [rsp + 0x48]
xor ecx, eax
not edx
or edx, ecx
mov rcx, qword [r9 + 0x48]
mov rax, qword [rsp + 0x60]
mov r9d, dword [rax + 4]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov r8b, 3
call fcn.00444820
mov r9, qword [rsp + 0x60]
mov r10d, dword [rsp + 0x80]
cmp dword [rsp + 0x44], 0
jne 0x46c6c0
mov r8d, dword [rsp + 0x100]
add rbp, 1
movsxd rax, r8d
cmp rbp, rax
jge 0x46e545
mov rax, qword [rsp + 0x110]
mov r11, qword [rax + rbp*8]
mov eax, esi
cmp rbp, rax
jne 0x46e318
movsxd r12, r12d
lea rcx, [r12 + 1]
lea rax, [rsp + 0x1b8]
lea rdx, [rax + r12*8]
lea rax, [rsp + 0x198]
lea rbx, [rax + r12*8]
nop dword [rax]
add r12, 1
cmp rcx, r15
mov rax, rbx
cmovl rax, rdx
mov r13, qword [rax]
movzx eax, word [r13 + 0x18]
movzx edi, byte [r13 + 0xc]
add esi, r14d
add esi, eax
add esi, edi
add rcx, 1
add rdx, 8
add rbx, 8
cmp rbp, rsi
je 0x46e2e0
mov rbx, qword [rsp + 0x48]
movsxd rax, r10d
mov eax, dword [rsp + rax*4 + 0xb0]
cmp rbp, rax
jne 0x46e341
add r10d, 1
movsxd rax, r10d
mov r9, qword [rsp + rax*8 + 0x1b0]
cmp byte [rsp + 0x58], 0
je 0x46e295
cmp r12d, ebx
jge 0x46e366
mov eax, dword [r9 + 4]
movsxd rcx, r12d
cmp eax, dword [rsp + rcx*4 + 0x2b0]
jne 0x46e366
cmp qword [r13 + 0x50], r11
ja 0x46e366
cmp qword [r13 + 0x58], r11
ja 0x46e295
cmp byte [rsp + 0x268], 0
je 0x46e395
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rbp*2]
test ax, ax
je 0x46e463
cmp ax, word [r9 + 0x10]
jbe 0x46e282
jmp 0x46e497
movzx eax, byte [r11]
shl eax, 0x18
movzx ecx, byte [r11 + 1]
shl ecx, 0x10
mov edx, ecx
not edx
mov ebx, eax
not ebx
and edx, 0xa48b9003
and ecx, 0x740000
or ecx, edx
and ebx, 0xa48b9003
and eax, 0x5b000000
or eax, ebx
xor eax, ecx
movzx ecx, byte [r11 + 2]
shl ecx, 8
mov edx, eax
not edx
mov ebx, ecx
not ebx
mov edi, edx
and edi, 0x568b506d
and eax, 0xa9740000
or eax, edi
or edx, ebx
and ebx, 0x568b506d
and ecx, 0xaf00
or ecx, ebx
mov rbx, qword [rsp + 0x48]
xor ecx, eax
not edx
or edx, ecx
movzx eax, byte [r11 + 3]
mov ecx, edx
and ecx, eax
xor edx, eax
or edx, ecx
mov rdi, r9
mov r9d, dword [r9 + 4]
lea rax, [rsp + 0x44]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0xf0]
mov r8b, 5
mov dword [rsp + 0x80], r10d
mov qword [rsp + 0x50], r11
call fcn.00444820
mov r11, qword [rsp + 0x50]
mov r10d, dword [rsp + 0x80]
mov r9, rdi
mov rax, qword [rsp + 0x118]
movzx eax, word [rax + rbp*2]
test ax, ax
jne 0x46e385
lea rcx, [rsp + 0x100]
mov edx, ebp
mov qword [rsp + 0x60], r9
mov edi, r10d
mov qword [rsp + 0x50], r11
call fcn.00470880
mov r11, qword [rsp + 0x50]
mov r10d, edi
mov r9, qword [rsp + 0x60]
cmp ax, word [r9 + 0x10]
jbe 0x46e282
cmp dword [rsp + 0x44], 0
jne 0x46e282
mov rcx, r9
mov rdx, r11
lea r8, [rsp + 0x178]
mov qword [rsp + 0x60], r9
mov rax, qword [rsp + 0x60]
mov dword [rsp + 0x80], r10d
mov rdi, r11
call qword [rax + pe_nt_image_headers64]
mov r10d, dword [rsp + 0x80]
mov r9, qword [rsp + 0x60]
movzx eax, word [rsp + 0x18c]
cmp dword [rsp + 0x188], eax
jbe 0x46e282
mov rcx, rdi
mov rdx, qword [r13 + 0x58]
cmp rdx, rdi
jb 0x46e1d6
add rax, rcx
cmp rdx, rax
jae 0x46e1d6
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x10aa7
call fcn.00408970
mov r9, qword [rsp + 0x60]
mov dword [rsp + 0x44], 0xb
jmp 0x46e27a
cmp ebx, 2
jl 0x46e892
mov eax, dword [rsp + 0x78]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x88]
mov qword [rsp + 0x50], rax
cmp byte [rsp + 0x58], 0
je 0x46e75e
xor esi, esi
xor ebp, ebp
mov r14, qword [rsp + rsi*8 + 0x1b0]
mov r13d, dword [rsp + rsi*4 + 0xb0]
mov rax, qword [rsp + 0x110]
movsxd r12, ebp
add r12, qword [rsp + 0x1e8]
cmp byte [r14 + 8], 0
je 0x46e5d5
add r13d, 0xffffffff
movsxd rcx, r13d
mov rdx, qword [rax + rcx*8]
mov rcx, r14
lea r8, [rsp + 0x178]
call qword [r14 + pe_nt_image_headers64]
lea rcx, [r12 + 4]
mov rdx, qword [rsp + 0x178]
cmp rdx, 0x7f
ja 0x46e5fb
mov byte [rcx], dl
mov edi, 1
jmp 0x46e63a
movsxd rcx, r13d
mov r8, qword [rax + rcx*8]
mov rax, qword [rsp + 0x118]
movzx edi, word [rax + rcx*2]
add edi, dword [rsp + 0xf8]
mov rax, qword [r14 + 0x50]
mov ecx, dword [r8]
mov dword [rax + 8], ecx
jmp 0x46e643
cmp rdx, 0x3fff
ja 0x46e633
mov rax, rdx
shr rax, 7
mov r8d, eax
not r8b
and r8b, 0xc
mov ebx, eax
and bl, 0xf3
or bl, r8b
xor bl, 0x8c
and al, 0x80
or al, bl
mov byte [rcx], al
and dl, 0x7f
mov byte [rcx + 1], dl
mov edi, 2
jmp 0x46e63a
call fcn.00467b20
mov edi, eax
add edi, 4
mov r8, r12
xor r12d, r12d
cmp dword [rsp + 0x150], r13d
jle 0x46e651
xor eax, eax
jmp 0x46e6a2
mov eax, 1
cmp dword [rsp + 0x154], r13d
jg 0x46e6a2
mov eax, 2
cmp dword [rsp + 0x158], r13d
jg 0x46e6a2
mov eax, 3
cmp dword [rsp + 0x15c], r13d
jg 0x46e6a2
mov eax, 4
cmp dword [rsp + 0x160], r13d
jg 0x46e6a2
xor ecx, ecx
cmp dword [rsp + 0x164], r13d
setg cl
mov eax, 6
sub rax, rcx
mov rax, qword [rsp + rax*8 + 0x120]
cmp rax, r8
jb 0x46e6be
movsxd rcx, edi
add rcx, r8
cmp rax, rcx
jb 0x46f0d5
mov eax, dword [r14 + 4]
mov rcx, qword [rsp + 0x50]
lea edx, [rcx + rsi]
lea rcx, [rsp + 0x44]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r12
mov rcx, qword [rsp + 0xa0]
mov r9d, edi
call fcn.0046b570
cmp dword [rsp + 0x44], 0
jne 0x46f107
add ebp, edi
add rsi, 1
cmp qword [rsp + 0x60], rsi
jne 0x46e572
jmp 0x46e892
call fcn.00430480
jmp 0x46d016
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x12584
call fcn.00408970
mov dword [rsp + 0x44], 0xb
jmp 0x46c6cd
xor eax, eax
mov qword [rsp + 0x168], rax
jmp 0x46dda1
xor esi, esi
xor ebx, ebx
mov r15, qword [rsp + rsi*8 + 0x1b0]
movsxd rbp, dword [rsp + rsi*4 + 0xb0]
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x118]
mov rdi, qword [rax + rbp*8]
movzx eax, word [rcx + rbp*2]
mov rcx, qword [rsp + 0xf8]
lea r12d, [rax + rcx]
cmp byte [r15 + 8], 0
je 0x46e7bb
add rdi, 0xfffffffffffffffc
cmp ax, 4
jne 0x46e7c4
mov rcx, qword [rsp + 0xa0]
mov rdx, rdi
call qword [rcx + 0x78]
movzx r12d, ax
jmp 0x46e7c4
mov rax, qword [r15 + 0x50]
mov ecx, dword [rdi]
mov dword [rax + 8], ecx
cmp dword [rsp + 0x150], ebp
jle 0x46e7d1
xor eax, eax
jmp 0x46e81d
mov eax, 1
cmp dword [rsp + 0x154], ebp
jg 0x46e81d
mov eax, 2
cmp dword [rsp + 0x158], ebp
jg 0x46e81d
mov eax, 3
cmp dword [rsp + 0x15c], ebp
jg 0x46e81d
mov eax, 4
cmp dword [rsp + 0x160], ebp
jg 0x46e81d
xor ecx, ecx
cmp dword [rsp + 0x164], ebp
setg cl
mov eax, 6
sub rax, rcx
mov rax, qword [rsp + rax*8 + 0x120]
cmp rax, rdi
jb 0x46e839
mov ecx, r12d
add rcx, rdi
cmp rax, rcx
jb 0x46f0d5
movsxd rax, ebx
add rax, qword [rsp + 0x1e8]
mov ecx, dword [r15 + 4]
mov rdx, qword [rsp + 0x50]
add edx, esi
lea rbp, [rsp + 0x44]
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0xa0]
mov r8, rdi
mov r9d, r12d
call fcn.0046b570
cmp dword [rsp + 0x44], 0
jne 0x46f107
add ebx, r12d
add rsi, 1
cmp qword [rsp + 0x60], rsi
jne 0x46e762
mov edx, 1
mov rax, qword [rsp + 0x48]
sub edx, eax
cmp edx, eax
mov r12, qword [rsp + 0x68]
mov rbp, qword [rsp + 0xa0]
mov bl, byte [rsp + 0x5f]
mov r13, qword [rsp + 0xf0]
jge 0x46efac
xor esi, esi
cmp byte [rsp + 0x58], 0
sete sil
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x218], eax
mov dword [rsp + 0x1e0], esi
jmp 0x46e95a
lea rcx, [rsp + 0x100]
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x50]
mov r9, rsi
call fcn.00470590
mov dword [rsp + 0x44], eax
test eax, eax
mov bl, byte [rsp + 0x5f]
jne 0x46f114
mov rcx, qword [rsp + 0x220]
mov byte [rsp + rcx + 0x1a8], 1
mov eax, dword [rsp + 0x98]
sub eax, dword [rsp + rcx*4 + 0xd0]
mov dword [rsi + 0x14], eax
mov rbp, qword [rsp + 0xa0]
mov edx, dword [rsp + 0x228]
mov esi, dword [rsp + 0x1e0]
add edx, 1
cmp edx, dword [rsp + 0x48]
je 0x46efac
mov edi, edx
neg edi
test edx, edx
cmovns edi, edx
cmp byte [rsp + rdi + 0x1a8], 0
jne 0x46e94d
test edx, edx
jns 0x46e986
lea eax, [rdi - 1]
cdqe
mov ecx, dword [rsp + rax*4 + 0x240]
cmp ecx, dword [rsp + rax*4 + 0xb0]
jl 0x46e94d
test edi, edi
je 0x46e9a1
cmp edi, dword [rsp + 0x260]
jle 0x46e9b2
mov ebp, dword [rsp + 0x100]
lea eax, [rdi - 1]
cdqe
jmp 0x46e9c0
xor r14d, r14d
xor ebp, ebp
mov eax, dword [rsp + 0x218]
mov r13d, eax
jmp 0x46e9d7
lea eax, [rdi - 1]
cdqe
mov ebp, dword [rsp + rax*4 + 0x240]
add ebp, esi
mov eax, dword [rsp + rax*4 + 0xb0]
add eax, esi
mov r14, rax
mov r13d, dword [rsp + rdi*4 + 0xb0]
sub r13d, r14d
mov rcx, qword [rsp + rdi*8 + 0x1b0]
mov rax, qword [rcx + 0x50]
mov qword [rsp + 0x60], rax
lea eax, [r13 + r13]
cdqe
add rax, qword [rcx + 0x60]
mov qword [rsp + 0xf8], rax
movzx eax, byte [rcx + 9]
mov qword [rsp + 0x78], rax
movzx ebx, word [rcx + 0x18]
movzx eax, byte [rcx + 0xc]
mov r8d, ebx
cmp ebp, r14d
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x80], r14
mov dword [rsp + 0x58], ebp
mov dword [rsp + 0x228], edx
mov qword [rsp + 0x220], rdi
jge 0x46eb93
mov dword [rsp + 0x170], eax
mov qword [rsp + 0xe8], rbx
mov rax, qword [rcx + 0x48]
mov esi, dword [rax + 0x38]
mov rdx, qword [rsp + 0x60]
add rsi, rdx
mov eax, dword [rsp + 0x78]
movzx ecx, byte [rcx + 0xa]
add rcx, rax
lea rdi, [rdx + rcx]
add rdi, 8
movsxd rbx, ebp
mov rbp, r14
movsxd rbp, ebp
xor r12d, r12d
xor r8d, r8d
xor edx, edx
jmp 0x46ea9d
add r8d, r14d
mov r14d, r8d
add r12d, 1
mov rdx, r15
mov r8d, r14d
add rbx, 1
cmp rbp, rbx
je 0x46eb19
mov rax, qword [rsp + 0x110]
mov r15, qword [rax + rbx*8]
cmp r15, rdi
setae al
cmp r15, rsi
setae cl
cmp al, cl
je 0x46ea94
cmp r15, rdi
jb 0x46ea94
mov rax, qword [rsp + 0x118]
movzx r14d, word [rax + rbx*2]
mov r13, r14
add r13, r15
cmp rdx, r13
je 0x46ea84
test rdx, rdx
je 0x46eaf7
movabs rax, 0xfb75657f795374e2
add edx, eax
sub edx, dword [rsp + 0x60]
sub edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.0046faa0
cmp r13, rsi
jbe 0x46ea8a
xor r12d, r12d
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xe8]
jmp 0x46eb63
test rdx, rdx
je 0x46eb3a
movabs rax, 0xf26f07a18f9de45
sub edx, eax
sub edx, dword [rsp + 0x60]
add edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.0046faa0
mov rbx, qword [rsp + 0xe8]
cmp r12d, ebx
mov r15, qword [rsp + 0x90]
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
jg 0x46f1f7
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsi + 0x60]
lea eax, [r12 + r12]
movsxd rdx, eax
add rdx, rcx
lea r8, [rbx + rbx]
call fcn.005f4c18
mov rcx, rsi
mov r8d, ebx
sub r8d, r12d
mov ebp, dword [rsp + 0x58]
mov eax, dword [rsp + 0x170]
add ebx, ebp
add ebx, eax
lea eax, [r14 + r13]
cmp ebx, eax
jle 0x46ec62
mov qword [rsp + 0x170], r8
mov rdx, qword [rcx + 0x48]
mov rdi, qword [rcx + 0x50]
mov esi, dword [rdx + 0x38]
add rsi, rdi
movzx ebp, byte [rcx + 9]
movzx edx, byte [rcx + 0xa]
add rdx, rbp
mov rcx, rdi
mov qword [rsp + 0xe8], rdi
lea r14, [rdi + rdx]
add r14, 8
movsxd r12, eax
movsxd r15, ebx
xor r13d, r13d
xor r8d, r8d
xor edx, edx
jmp 0x46ec00
add r8d, ebp
mov ebp, r8d
add r13d, 1
mov rdx, rbx
mov r8d, ebp
add r12, 1
cmp r15, r12
je 0x46ec77
mov rax, qword [rsp + 0x110]
mov rbx, qword [rax + r12*8]
cmp rbx, r14
jb 0x46ebf7
cmp rbx, rsi
jae 0x46ebf7
mov al, 1
test al, al
je 0x46ebf7
mov rax, qword [rsp + 0x118]
movzx ebp, word [rax + r12*2]
mov rdi, rbp
add rdi, rbx
cmp rdx, rdi
je 0x46ebe7
test rdx, rdx
je 0x46ec58
movabs rax, 0x18dcd5b5bb57badb
add edx, eax
sub edx, dword [rsp + 0xe8]
sub edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.0046faa0
cmp rdi, rsi
jbe 0x46ebed
xor r13d, r13d
jmp 0x46ec9b
mov rsi, r13
mov r12, qword [rsp + 0x68]
mov rbx, r13
mov r13, qword [rsp + 0xf0]
jmp 0x46eccc
test rdx, rdx
je 0x46ec9b
movabs rax, 0x8aaabe6a256ce4ce
sub edx, eax
sub edx, dword [rsp + 0xe8]
add edx, eax
mov rcx, qword [rsp + 0x50]
call fcn.0046faa0
mov r12, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
mov r8, qword [rsp + 0x170]
sub r8d, r13d
mov r13, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x50]
mov ebp, dword [rsp + 0x58]
mov rax, qword [rsp + 0x78]
add eax, 5
mov rdi, qword [rsp + 0x60]
mov qword [rsp + 0xe8], rax
movzx eax, word [rdi + rax]
shl rax, 0x30
bswap rax
add eax, 0xffff
mov edx, eax
xor edx, 0x10000
and edx, eax
lea rax, [rdx + rdi]
add rax, 1
mov qword [rsp + 0x178], rax
cmp rax, qword [rsp + 0xf8]
jb 0x46eee7
cmp rax, qword [rcx + 0x58]
ja 0x46eee7
mov esi, ebp
sub esi, r14d
jle 0x46ed98
cmp esi, ebx
cmovg esi, ebx
mov rdi, qword [rcx + 0x60]
lea eax, [rsi + rsi]
movsxd rcx, eax
add rcx, rdi
lea eax, [r8 + r8]
mov rbp, r8
movsxd r8, eax
mov rdx, rdi
call fcn.005f4c18
lea rax, [rsp + 0x100]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], r14d
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0xf8]
lea r8, [rsp + 0x178]
mov r9, rdi
call fcn.004708b0
mov r8, rbp
mov ebp, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
test eax, eax
jne 0x46eee7
add r8d, esi
mov al, byte [rcx + 0xc]
test al, al
je 0x46ee95
xor esi, esi
jmp 0x46edbf
mov rbx, qword [rsp + 0x88]
add rsi, 1
movzx edx, al
cmp rsi, rdx
jae 0x46ee95
movzx edi, word [rcx + rsi*2 + 0x1c]
add edi, ebp
mov ebx, edi
sub ebx, r14d
js 0x46eda7
cmp ebx, dword [rsp + 0x88]
jge 0x46eda7
mov dl, 1
test dl, dl
je 0x46eda7
lea eax, [rbx + rbx]
movsxd rbp, eax
add rbp, qword [rcx + 0x60]
mov r15, r8
mov eax, r8d
sub eax, ebx
jle 0x46ee06
add eax, eax
lea rcx, [rbp + 2]
movsxd r8, eax
mov rdx, rbp
call fcn.005f4c18
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x118]
movsxd rdx, edi
cmp word [rax + rdx*2], 0
mov rbx, qword [rsp + 0x88]
jne 0x46ee34
lea rcx, [rsp + 0x100]
mov edx, edi
call fcn.00470880
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x100]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x20], edi
mov dword [rsp + 0x28], 1
mov rdx, qword [rsp + 0xf8]
lea r8, [rsp + 0x178]
mov r9, rbp
call fcn.004708b0
mov rcx, qword [rsp + 0x50]
test eax, eax
mov r14, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x58]
jne 0x46eee7
mov r8, r15
add r8d, 1
movzx eax, byte [rcx + 0xc]
add rsi, 1
movzx edx, al
cmp rsi, rdx
jb 0x46edbf
mov eax, ebx
sub eax, r8d
mov rdx, qword [rsp + 0x80]
lea ebp, [r8 + rdx]
add r8d, r8d
movsxd r9, r8d
add r9, qword [rcx + 0x60]
lea rdx, [rsp + 0x100]
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ebp
mov rdx, qword [rsp + 0xf8]
lea r8, [rsp + 0x178]
call fcn.004708b0
mov rsi, qword [rsp + 0x50]
test eax, eax
je 0x46ef63
test ebx, ebx
mov r15, qword [rsp + 0x90]
jle 0x46e8e1
movsxd rsi, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x118]
lea rdi, [rsi + rsi]
mov rax, qword [rsp + 0x88]
lea ebx, [rax + 1]
mov ebp, eax
jmp 0x46ef37
add rsi, 1
add ebp, 0xffffffff
add rdi, 2
add ebx, 0xffffffff
cmp ebx, 1
jle 0x46e8e1
cmp word [rcx + rdi], 0
jne 0x46ef20
mov rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0x110]
mov rdx, qword [rax + rdi*4]
call qword [rcx + 0x78]
mov rcx, qword [rsp + 0x118]
mov word [rcx + rdi], ax
jmp 0x46ef20
mov word [rsi + 0x18], bx
mov byte [rsi + 0xc], 0
mov rdx, qword [rsp + 0x78]
add edx, 3
mov rcx, qword [rsp + 0x60]
mov byte [rcx + rdx], bh
mov al, byte [rsi + 0x18]
mov byte [rcx + rdx + 1], al
mov eax, dword [rsp + 0x178]
sub eax, ecx
rol ax, 8
mov rdx, qword [rsp + 0xe8]
mov word [rcx + rdx], ax
mov dword [rsp + 0x44], 0
mov bl, byte [rsp + 0x5f]
jmp 0x46e916
cmp bl, 1
jne 0x46efcd
cmp word [rbp + 0x18], 0
jne 0x46efcd
mov rdi, qword [rsp + 0x1b0]
movzx eax, byte [rbp + 9]
cmp dword [rdi + 0x14], eax
jge 0x46f11e
cmp byte [r13 + 0x21], 0
setne al
cmp byte [rsp + 0x268], 0
sete cl
xor al, cl
not al
and al, cl
mov rcx, qword [rsp + 0x168]
xor al, cl
not al
and al, cl
cmp al, 1
lea r15, [rsp + 0x44]
jne 0x46f076
mov r14d, dword [rsp + 0x48]
xor edi, edi
mov rax, qword [rsp + rdi*8 + 0x1b0]
mov rcx, qword [rax + 0x50]
movzx edx, byte [rcx + 8]
shl edx, 0x18
movzx ebp, byte [rcx + 9]
shl ebp, 0x10
or ebp, edx
movzx edx, byte [rcx + 0xa]
shl edx, 8
mov ebx, ebp
not ebx
mov esi, edx
not esi
and ebx, 0x9fa3e21c
and ebp, 0x605c0000
or ebp, ebx
and esi, 0x9fa3e21c
and edx, 0x1d00
or edx, esi
xor edx, ebp
movzx ecx, byte [rcx + 0xb]
mov ebp, edx
and ebp, ecx
xor edx, ecx
or edx, ebp
mov r9d, dword [rax + 4]
mov qword [rsp + 0x20], r15
mov rcx, r13
mov r8b, 5
call fcn.00444820
add rdi, 1
cmp r14, rdi
jne 0x46f004
mov rbp, qword [rsp + 0x260]
mov rbx, qword [rsp + 0x48]
cmp ebx, ebp
jg 0x46c6c5
movsxd rsi, ebx
mov eax, dword [rsp + 0x44]
sub ebp, ebx
add ebp, 1
lea rdi, [rsp + rsi*8]
add rdi, 0x190
xor ebx, ebx
mov r15, qword [rsp + 0x90]
jmp 0x46f0ba
add rsi, 1
add rbx, 1
cmp ebp, ebx
je 0x46f114
test eax, eax
jne 0x46f0ae
mov rdx, qword [rdi + rbx*8]
mov rcx, qword [rdx + 0x48]
mov r8d, dword [rdx + 4]
call fcn.004695a0
mov dword [rsp + 0x44], eax
jmp 0x46f0ae
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x12621
call fcn.00408970
mov dword [rsp + 0x44], 0xb
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x48]
jmp 0x46c6cd
mov rcx, rdi
mov edx, 0xffffffff
call fcn.00470020
mov dword [rsp + 0x44], eax
test eax, eax
jne 0x46f076
mov r15, qword [rdi + 0x48]
mov rbx, qword [rdi + 0x50]
mov r14, qword [rbp + 0x50]
movzx esi, byte [rdi + 9]
mov rax, qword [rsp + 0xa0]
mov r12d, dword [rax + 4]
movzx eax, byte [rbx + rsi + 5]
shl eax, 8
movzx ebp, byte [rbx + rsi + 6]
mov ecx, eax
not ecx
mov edx, ebp
not edx
and ecx, 0x88fb6747
and eax, 0x9800
or eax, ecx
and edx, 0x88fb6747
and ebp, 0xffffffb8
or ebp, edx
xor ebp, eax
lea rcx, [r14 + rbp]
lea rdx, [rbx + rbp]
mov r8d, dword [r15 + 0x38]
sub r8d, ebp
call fcn.005f4c20
movzx eax, word [rdi + 0x18]
movzx edx, word [rdi + 0x12]
add rbx, rsi
mov rsi, qword [rsp + 0xa0]
cmp r12d, 1
mov ecx, 0
mov ebp, 0x64
cmove rcx, rbp
add rcx, r14
lea r8, [rdx + rax*2]
mov rdx, rbx
call fcn.005f4c20
mov byte [rsi], 0
mov rcx, rsi
call fcn.0043b940
test eax, eax
jne 0x46f1e9
mov rcx, rsi
call fcn.0046b220
test eax, eax
je 0x46f82b
mov dword [rsp + 0x44], eax
mov r12, qword [rsp + 0x68]
jmp 0x46f076
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
mov ecx, 0xb
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov r9d, 0x12255
call fcn.00408970
mov dword [rsp + 0x44], 0xb
mov r12, qword [rsp + 0x68]
jmp 0x46f114
movzx eax, word [rsp + 0x1c6]
movzx ecx, byte [rax + rbx - 4]
shl ecx, 0x18
movzx edx, byte [rax + rbx - 3]
shl edx, 0x10
mov ebp, edx
not ebp
mov esi, ecx
not esi
and ebp, 0xbcc214be
and edx, 0x3d0000
or edx, ebp
and esi, 0xbcc214be
and ecx, 0x43000000
or ecx, esi
mov rsi, qword [rsp + 0xa0]
xor ecx, edx
movzx ebp, byte [rax + rbx - 2]
shl ebp, 8
or ebp, ecx
movzx eax, byte [rax + rbx - 1]
mov edx, ebp
not edx
mov ecx, eax
not ecx
mov ebx, edx
and ebx, 0xa9492d87
and ebp, 0x56b6d200
or ebp, ebx
or edx, ecx
and ecx, 0xa9492d87
and eax, 0x78
or eax, ecx
xor eax, ebp
not edx
or edx, eax
mov rcx, qword [rdi + 0x48]
mov r9d, dword [rdi + 4]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
mov r8b, 3
call fcn.00444820
mov rax, qword [r15 + 0x60]
movzx ecx, word [r15 + 0x18]
add ecx, ecx
add ecx, 0xfffffffe
movsxd rcx, ecx
movzx eax, word [rax + rcx]
shl rax, 0x30
bswap rax
movzx ecx, word [r15 + 0x1a]
xor ecx, eax
not ecx
and ecx, eax
add rcx, qword [r15 + 0x50]
mov qword [rsp + 0x190], rcx
xor edx, edx
lea rax, [rcx + 1]
mov qword [rsp + 0x190], rax
cmp rdx, 7
ja 0x46f329
cmp byte [rcx], 0
jns 0x46f329
add rdx, 1
mov rcx, rax
mov bl, 1
test bl, bl
jne 0x46f305
lea rbp, [rax + 9]
lea r9, [rsp + 0x2a7]
lea rdx, [rax + 1]
mov qword [rsp + 0x190], rdx
movzx edx, byte [rax]
mov byte [r9], dl
add r9, 1
test dl, dl
sets bl
mov rax, qword [rsp + 0x190]
cmp rax, rbp
setae cl
cmp bl, cl
je 0x46f366
test dl, dl
js 0x46f335
cmp dword [rsp + 0xb0], 0
jne 0x46f3a5
movzx edx, word [rsi + 0x18]
lea r8, [rsp + 0x2a3]
sub r9d, r8d
mov eax, dword [r15 + 4]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], 0
mov rcx, rsi
call fcn.0046b570
movzx eax, byte [rsi + 9]
mov rcx, qword [rsi + 0x50]
mov edx, dword [rsp + 0x240]
bswap edx
mov dword [rax + rcx + 8], edx
mov rax, qword [rsp + 0x178]
test rax, rax
je 0x46f42b
mov rcx, qword [rax + 0x70]
mov eax, dword [rcx + 0x34]
mov edx, eax
xor edx, 0xffdf
test dx, ax
je 0x46f426
mov rbp, qword [rcx + 0x28]
add dword [rbp + 0x98], 0xffffffff
mov rax, qword [rbp + 0xa8]
mov qword [rcx + 0x20], rax
mov qword [rbp + 0xa8], rcx
mov rax, qword [rbp + 0x48]
mov edx, dword [rcx + 0x30]
mov r8, qword [rcx + 8]
add edx, 0xffffffff
imul rdx, qword [rbp + 0xc8]
mov rbp, qword [rax]
mov rcx, rax
call qword [rbp + 0x90]
mov ebp, dword [rsp + 0xb0]
jmp 0x46d016
call fcn.00430480
mov ebp, dword [rsp + 0xb0]
jmp 0x46d016
movabs rax, 0xffd3862791079a79
mov r15, rax
not r15
add r15, r8
add r15, rax
mov rax, r8
movabs rcx, 0x39bc0e47f6d4b251
sub rax, rcx
add rax, rcx
add rax, 0xfffffffffffffffe
mov qword [rsp + 0x78], rax
mov rax, r15
xor rax, 0xfffffffffffffffc
and rax, r15
mov qword [rsp + 0x60], rax
and r15, 0xfffffffffffffffc
xor r13d, r13d
movabs rbx, 0xd728a50416598615
mov r9, qword [rsp + 0x210]
mov qword [rsp + 0x80], r8
jmp 0x46f4be
mov dword [r14 + 4], r12d
movabs rbx, 0xd728a50416598615
mov r8, qword [rsp + 0x80]
add r13, 1
cmp r13, r8
je 0x46f807
xor ebp, ebp
cmp dword [rsp + 0x48], 1
je 0x46f5d0
cmp qword [rsp + 0x78], 3
jae 0x46f4df
xor ecx, ecx
mov eax, 1
jmp 0x46f592
xor eax, eax
xor ecx, ecx
mov rdx, r15
jmp 0x46f4f9
add rdx, 0xfffffffffffffffc
add rax, 4
cmp r15, rax
je 0x46f58e
movsxd rdi, ecx
mov esi, dword [rsp + rax*4 + 0x1f4]
mov ebp, dword [rsp + rax*4 + 0x1f8]
cmp esi, dword [rsp + rdi*4 + 0x1f0]
jb 0x46f547
movsxd rdi, ecx
cmp ebp, dword [rsp + rdi*4 + 0x1f0]
jb 0x46f556
mov ebp, dword [rsp + rax*4 + 0x1fc]
movsxd rdi, ecx
cmp ebp, dword [rsp + rdi*4 + 0x1f0]
jb 0x46f56c
mov ebp, dword [rsp + rax*4 + 0x200]
movsxd rdi, ecx
cmp ebp, dword [rsp + rdi*4 + 0x1f0]
jae 0x46f4e8
jmp 0x46f586
lea ecx, [rax + 1]
movsxd rdi, ecx
cmp ebp, dword [rsp + rdi*4 + 0x1f0]
jae 0x46f51f
lea ecx, [rax + 2]
mov ebp, dword [rsp + rax*4 + 0x1fc]
movsxd rdi, ecx
cmp ebp, dword [rsp + rdi*4 + 0x1f0]
jae 0x46f532
lea ecx, [rax + 3]
mov ebp, dword [rsp + rax*4 + 0x200]
movsxd rdi, ecx
cmp ebp, dword [rsp + rdi*4 + 0x1f0]
jae 0x46f4e8
lea ecx, [rax + 4]
jmp 0x46f4e8
add rax, 1
mov ebp, ecx
cmp qword [rsp + 0x60], 0
je 0x46f5d0
mov rdx, qword [rsp + 0x60]
jmp 0x46f5b7
add rax, 1
add rdx, rbx
mov rdi, rbx
not rdi
mov ecx, ebp
add rdx, rdi
je 0x46f5d0
mov edi, dword [rsp + rax*4 + 0x1f0]
movsxd rsi, ecx
mov ebp, eax
cmp edi, dword [rsp + rsi*4 + 0x1f0]
jb 0x46f5a3
mov ebp, ecx
jmp 0x46f5a3
movsxd rsi, ebp
mov r12d, dword [rsp + rsi*4 + 0x1f0]
mov dword [rsp + rsi*4 + 0x1f0], 0xffffffff
mov eax, esi
cmp r13, rax
je 0x46f4b1
mov ebx, r12d
cmp r13, rsi
jge 0x46f702
mov rax, qword [rsp + 0xf0]
mov eax, dword [rax + 0x40]
lea edi, [rsi + rax]
add edi, 1
mov rax, qword [rsp + rsi*8 + 0x1b0]
mov r12, qword [rax + 0x70]
mov word [r12 + 0x34], 0
mov rdx, qword [r12]
mov rax, qword [r12 + 0x18]
mov rcx, qword [rax + 0x40]
mov r8d, dword [r12 + 0x30]
mov r9d, edi
call qword [0x005f6100]
mov dword [r12 + 0x30], edi
mov ecx, dword [r12 + 0x34]
mov eax, ecx
xor eax, 0xfffffff5
and eax, ecx
cmp ax, 0xa
jne 0x46f702
mov rax, qword [r12 + 0x18]
mov rdx, qword [r12 + 0x40]
mov rbp, qword [rax + 0x10]
cmp rbp, r12
jne 0x46f672
mov qword [rax + 0x10], rdx
mov rbp, rdx
mov rdi, qword [r12 + 0x38]
test rdi, rdi
je 0x46f698
mov qword [rdi + 0x40], rdx
mov rdx, qword [r12 + 0x40]
test rdx, rdx
jne 0x46f6a1
mov qword [rax], rdi
mov qword [r12 + 0x40], 0
jmp 0x46f6bb
mov qword [rax + 8], rdx
test rdx, rdx
je 0x46f6c1
mov qword [rdx + 0x38], rdi
mov rdi, qword [rax]
mov qword [r12 + 0x40], 0
mov qword [r12 + 0x38], rdi
test rdi, rdi
je 0x46f6d4
mov qword [rdi + 0x40], r12
jmp 0x46f6e2
lea rdx, [r12 + 0x38]
mov qword [rax], 0
mov byte [rax + 0x2d], 2
movups xmmword [rdx], xmm6
mov qword [rax + 8], r12
cmp byte [rax + 0x2c], 0
je 0x46f6e2
mov byte [rax + 0x2d], 1
mov qword [rax], r12
not ecx
or ecx, 0xfff7
cmp cx, 0xffff
jne 0x46f702
test rbp, rbp
jne 0x46f702
mov cl, 1
test cl, cl
je 0x46f702
mov qword [rax + 0x10], r12
movzx eax, word [rsp + rsi*2 + 0x298]
mov r14, qword [rsp + r13*8 + 0x1b0]
mov rdi, qword [r14 + 0x70]
mov word [rdi + 0x34], ax
mov rdx, qword [rdi]
mov rax, qword [rdi + 0x18]
mov rcx, qword [rax + 0x40]
mov r8d, dword [rdi + 0x30]
mov r12d, ebx
mov r9d, ebx
call qword [0x005f6100]
mov dword [rdi + 0x30], ebx
mov eax, dword [rdi + 0x34]
mov ecx, eax
xor ecx, 0xfffffff5
and ecx, eax
cmp cx, 0xa
mov r9, qword [rsp + 0x210]
jne 0x46f49b
mov rsi, qword [rdi + 0x18]
mov rdx, qword [rdi + 0x40]
mov r8, qword [rsi + 0x10]
cmp r8, rdi
jne 0x46f76c
mov qword [rsi + 0x10], rdx
mov r8, rdx
mov rbp, qword [rdi + 0x38]
test rbp, rbp
je 0x46f78f
mov qword [rbp + 0x40], rdx
mov rdx, qword [rdi + 0x40]
test rdx, rdx
jne 0x46f798
mov qword [rsi], rbp
mov qword [rdi + 0x40], 0
jmp 0x46f7b0
mov qword [rsi + 8], rdx
test rdx, rdx
je 0x46f7b6
mov qword [rdx + 0x38], rbp
mov rbp, qword [rsi]
mov qword [rdi + 0x40], 0
mov qword [rdi + 0x38], rbp
test rbp, rbp
je 0x46f7c8
mov qword [rbp + 0x40], rdi
jmp 0x46f7d6
lea rdx, [rdi + 0x38]
mov qword [rsi], 0
mov byte [rsi + 0x2d], 2
movups xmmword [rdx], xmm6
mov qword [rsi + 8], rdi
cmp byte [rsi + 0x2c], 0
je 0x46f7d6
mov byte [rsi + 0x2d], 1
mov qword [rsi], rdi
test r8, r8
setne dl
not eax
or eax, 0xfffffff7
cmp ax, 0xffff
sete cl
cmp cl, dl
je 0x46f49b
not eax
test ax, ax
jne 0x46f49b
mov qword [rsi + 0x10], rdi
jmp 0x46f49b
mov dword [rsp + 0xac], r12d
mov al, 1
mov qword [rsp + 0x168], rax
mov rsi, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x48]
jmp 0x46dda9
cmp byte [r15 + 0x21], 0
je 0x46f845
mov rcx, qword [rsp + 0xa0]
call fcn.00444510
mov dword [rsp + 0x44], eax
jmp 0x46f849
mov eax, dword [rsp + 0x44]
test eax, eax
mov r12, qword [rsp + 0x68]
jne 0x46f076
mov rcx, qword [rdi + 0x48]
mov r8d, dword [rdi + 4]
mov rdx, rdi
call fcn.004695a0
mov dword [rsp + 0x44], eax
jmp 0x46f076
lea rax, [0x005fb813]
mov qword [rsp + 0x20], rax
lea rdx, [0x005fc003]
lea r8, [0x005fc2fd]
mov ebp, 0xb
mov ecx, 0xb
mov r9d, 0x12707
call fcn.00408970
mov rcx, qword [rsp + 0x238]
test rcx, rcx
je 0x46f8b0
call fcn.004378f0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x2d0]
add rsp, 0x2e8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebp, ebp
mov rcx, qword [rsp + 0x238]
test rcx, rcx
jne 0x46f8ab
jmp 0x46f8b0