Function at 0x4c68a0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x258
movdqa xmmword [rsp + 0x240], xmm15
movdqa xmmword [rsp + 0x230], xmm14
movdqa xmmword [rsp + 0x220], xmm13
movdqa xmmword [rsp + 0x210], xmm12
movdqa xmmword [rsp + 0x200], xmm11
movdqa xmmword [rsp + 0x1f0], xmm10
movdqa xmmword [rsp + 0x1e0], xmm9
movdqa xmmword [rsp + 0x1d0], xmm8
movdqa xmmword [rsp + 0x1c0], xmm7
movdqa xmmword [rsp + 0x1b0], xmm6
mov r14d, r8d
mov r13, qword [rcx + 0x10]
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0xbc], 0
test rdx, rdx
je 0x4c7358
mov rsi, rdx
mov r15, rcx
jmp 0x4c694d
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x4c7358
movzx ebp, byte [rsi]
cmp ebp, 0x9a
jae 0x4c69b0
cmp bpl, 0x34
jb 0x4c6a05
cmp bpl, 0x71
jb 0x4c6a63
cmp bpl, 0x75
jae 0x4c6a9c
cmp bpl, 0x72
jae 0x4c6b03
mov eax, dword [rsi + 4]
not eax
or eax, 0xfffffdff
cmp eax, 0xffffffff
jne 0x4c6940
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x4c6940
cmp byte [rdx], 0xac
jne 0x4c6940
jmp 0x4c721a
cmp bpl, 0xac
jb 0x4c6a37
cmp bpl, 0xb0
jae 0x4c69e0
cmp bpl, 0xae
jb 0x4c6bee
je 0x4c6940
jmp 0x4c6cdf
cmp bpl, 0xb2
jb 0x4c6c24
je 0x4c6d8f
cmp bpl, 0xb5
jb 0x4c6e54
je 0x4c6940
jmp 0x4c7358
cmp bpl, 0x2d
jae 0x4c6b68
cmp bpl, 0x24
jae 0x4c6ec8
cmp bpl, 0x14
jae 0x4c733c
mov ebx, 0x13
cmp bpl, 0x13
jne 0x4c7358
jmp 0x4c6b0e
cmp bpl, 0xa7
jae 0x4c6ba4
cmp bpl, 0x9c
jae 0x4c6f43
cmp bpl, 0x9b
jne 0x4c7429
mov rcx, r15
mov rdx, rsi
xor r8d, r8d
jmp 0x4c6c17
cmp bpl, 0x4d
jae 0x4c6c42
cmp bpl, 0x47
jae 0x4c70a2
cmp bpl, 0x3a
jae 0x4c7358
mov dword [rsp + 0x98], 0
mov dword [rsp + 0x90], 0
jmp 0x4c798e
cmp bpl, 0x8a
jae 0x4c6de4
cmp bpl, 0x75
jne 0x4c7358
mov rsi, qword [rsi + 8]
mov eax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7576
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov qword [rdx + rcx*8], 0x75
mov dword [rdx + rcx*8 + 8], r14d
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4c7591
mov ebx, 0x72
jne 0x4c7358
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x5c]
mov rcx, r15
call fcn.004caf80
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4c6eab
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rdx + rcx*8], bl
mov word [rdx + rcx*8 + 2], 0
mov dword [rdx + rcx*8 + 4], eax
mov dword [rdx + rcx*8 + 8], r14d
mov dword [rdx + rcx*8 + 0xc], 0
jmp 0x4c7181
cmp bpl, 0x31
jae 0x4c6fbd
cmp bpl, 0x2d
je 0x4c76eb
cmp bpl, 0x30
jne 0x4c7358
mov dword [rsp + 0x20], 0
mov rcx, r15
mov rdx, rsi
mov r8d, r14d
xor r9d, r9d
call fcn.004cd610
jmp 0x4c73b8
cmp bpl, 0xa9
jae 0x4c701d
cmp bpl, 0xa8
jne 0x4c72dc
mov rax, qword [rsi + 0x38]
test rax, rax
je 0x4c7631
movzx ecx, word [rsi + 0x32]
test cx, cx
js 0x4c7631
cmp dword [rax + 0x38], ecx
jle 0x4c7631
mov rax, qword [rax + 0x30]
mov ecx, ecx
shl rcx, 5
mov ebp, dword [rax + rcx + 0x10]
jmp 0x4c73bb
cmp bpl, 0xad
jne 0x4c70e8
mov rdx, qword [rsi + 0x10]
mov al, byte [rdx]
cmp al, 0x99
je 0x4c774a
cmp al, 0x9b
jne 0x4c77c6
mov rcx, r15
mov r8d, 1
mov r9d, r14d
call fcn.004cace0
jmp 0x4c73b8
cmp bpl, 0xb1
jne 0x4c7107
lea rdx, [0x00602e77]
mov rcx, r15
call fcn.00419aa0
jmp 0x4ca038
cmp bpl, 0x66
jae 0x4c710f
cmp bpl, 0x4d
jne 0x4c7358
mov qword [rsp + 0x60], r13
mov r13, qword [rsi + 0x40]
movzx r12d, word [rsi + 0x30]
movsx r8d, word [r13 + 0x36]
add r8d, 1
imul r8d, dword [rsi + 0x2c]
add r8d, 1
mov eax, dword [r13 + 0x30]
mov edx, eax
xor edx, 0xffffffdf
mov ecx, r12d
test edx, eax
je 0x4c84e8
mov ecx, r12d
test r12w, r12w
js 0x4c84e8
mov r11, qword [r13 + 8]
movzx eax, word [r11 + 0x12]
mov esi, eax
xor esi, 0xffffffdf
and esi, eax
test r12w, r12w
je 0x4c8258
movsx eax, r12w
test eax, eax
mov r10d, 1
cmovg r10d, eax
mov r9d, r10d
and r9d, 1
cmp r12w, 2
jge 0x4c8419
mov eax, 1
xor ecx, ecx
jmp 0x4c84ae
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x5c]
mov rcx, r15
call fcn.004caf80
mov rcx, qword [rsi + 0x18]
mov ebp, dword [rcx + 4]
mov edx, ebp
xor edx, 0xffffdfff
mov r12d, r14d
test edx, ebp
je 0x4c6d23
nop word [rax + rax]
mov rcx, qword [rcx + 0x10]
mov ebp, dword [rcx + 4]
mov edx, ebp
xor edx, 0xffffdfff
test edx, ebp
jne 0x4c6d10
mov rcx, qword [rcx + 8]
xor edi, edi
cmp byte [rcx + 4], 0
sete bl
setne dil
cmp byte [rsi + 2], 0x2d
setne r14b
sete sil
mov ecx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4c7194
movsxd rdx, ecx
lea ebp, [rdx + 1]
mov dword [r13 + 0x90], ebp
mov rbp, qword [r13 + 0x88]
lea rdx, [rdx + rdx*2]
mov dword [rbp + rdx*8], 0x5b
mov dword [rbp + rdx*8 + 4], eax
mov dword [rbp + rdx*8 + 8], r12d
mov dword [rbp + rdx*8 + 0xc], edi
mov qword [rbp + rdx*8 + 0x10], 0
jmp 0x4c71ad
mov rdi, qword [rsi + 0x10]
mov eax, dword [rdi + 0x2c]
test eax, eax
je 0x4c6da3
mov cl, byte [rdi + 2]
cmp byte [r15 + 0x26], cl
jbe 0x4c6db8
mov rcx, r15
mov rdx, rdi
call fcn.004cbc80
mov dword [rdi + 0x2c], eax
mov cl, byte [r15 + 0x26]
mov byte [rdi + 2], cl
mov edx, dword [rdi]
cmp dl, 0xb0
movzx ecx, cl
cmovne ecx, edx
cmp cl, 0x8a
je 0x4c72a8
mov r9d, 1
cmp cl, 0xb1
jne 0x4c72b6
lea rcx, [rdi + 0x20]
jmp 0x4c72b0
cmp bpl, 0x98
ja 0x4c71c3
cmp bpl, 0x8a
jne 0x4c7358
mov rax, qword [r15]
xor ebp, ebp
cmp byte [rax + 0x67], 0
jne 0x4c73bb
mov eax, dword [rsi + 4]
mov ecx, eax
xor ecx, 0xffffefff
test ecx, eax
je 0x4c7349
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 0x20]
mov r8d, dword [rax]
cmp r8d, 1
je 0x4c7349
cmp dword [r15 + 0x30], 0
jne 0x4ca038
lea rdx, [0x00602f04]
mov rcx, r15
mov r9d, 1
call fcn.00419aa0
jmp 0x4ca038
cmp bpl, 0xb3
jne 0x4c7358
mov bl, byte [r15 + 0x23]
mov r8d, dword [rsi + 0x2c]
mov ebp, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ebp
jle 0x4c75d1
movsxd rax, ebp
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x12
mov dword [rcx + rax*8 + 4], r8d
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4c75eb
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, ebx
mov r8d, eax
mov r9d, r14d
call fcn.0047df60
jmp 0x4ca038
cmp bpl, 0x2a
ja 0x4c7119
cmp bpl, 0x24
jne 0x4c7358
mov rdx, qword [rsi + 0x10]
mov rcx, r15
mov r8d, r14d
call fcn.004c68a0
cmp eax, r14d
je 0x4c82d8
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4c82bd
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x51
mov dword [rdx + rcx*8 + 4], eax
mov dword [rdx + rcx*8 + 8], r14d
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4c82d8
je 0x4c76f5
cmp bpl, 0x9d
jne 0x4c7358
mov rbx, qword [r15]
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0xc0], rax
mov r12d, dword [rax]
mov edi, dword [r15 + 0x44]
lea eax, [rdi - 1]
mov dword [rsp + 0x50], eax
mov dword [r15 + 0x44], eax
mov rdx, qword [rsi + 0x10]
test rdx, rdx
mov qword [rsp + 0xa0], rdx
je 0x4c8016
mov rcx, rbx
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov rsi, rax
cmp byte [rbx + 0x67], 0
je 0x4c814f
test rsi, rsi
je 0x4ca038
mov rcx, rbx
mov rdx, rsi
call fcn.00468370
jmp 0x4ca038
jne 0x4c74a0
mov edi, dword [r15 + 0x44]
lea ebx, [rdi - 1]
lea ebp, [rdi - 2]
mov dword [r15 + 0x44], ebp
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7879
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c7894
jne 0x4c74f2
mov rax, qword [rsi + 0x38]
mov rdi, qword [rax + 0x20]
movsx rbx, word [rsi + 0x32]
cmp byte [rax], 0
je 0x4c7dfa
cmp byte [rax + 1], 0
je 0x4c72dc
shl rbx, 5
mov rsi, qword [rdi + rbx]
mov r8d, dword [rax + 8]
movsx r9d, word [rdi + rbx + 0x1a]
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c80ce
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x5e
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], r14d
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c80e0
jne 0x4c7358
mov rax, qword [r15 + 0xa8]
test rax, rax
jne 0x4c70bf
cmp byte [r15 + 0x1e], 0
je 0x4c8262
movsx ebp, byte [rsi + 1]
cmp ebp, 2
jne 0x4c7cb9
mov rcx, qword [r15 + 0xa0]
test rcx, rcx
cmove rcx, r15
mov byte [rcx + 0x21], 1
mov ebp, 2
jmp 0x4c7d0a
mov eax, dword [rsi + 4]
not eax
or eax, 0xfeffffff
cmp eax, 0xffffffff
je 0x4c7648
mov rax, qword [rsi + 0x40]
mov ebp, dword [rax + 0x60]
jmp 0x4c73bb
mov ebp, dword [rsi + 0x2c]
jmp 0x4c73bb
cmp bpl, 0x70
jae 0x4c7358
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x5c]
mov rcx, r15
call fcn.004caf80
mov ebx, eax
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0xbc]
mov rcx, r15
call fcn.004caf80
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4c7567
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rdx + rcx*8], bpl
mov word [rdx + rcx*8 + 2], 0
mov dword [rdx + rcx*8 + 4], eax
mov dword [rdx + rcx*8 + 8], ebx
mov dword [rdx + rcx*8 + 0xc], r14d
mov qword [rdx + rcx*8 + 0x10], 0
mov byte [rdx + rcx*8 + 1], 0
jmp 0x4ca038
mov dword [rsp + 0x20], edi
mov rcx, r13
mov edx, 0x5b
mov r8d, eax
mov r9d, r12d
call fcn.0047df60
mov ecx, eax
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
je 0x4c727d
mov r14d, r12d
jmp 0x4ca038
mov rsi, qword [rsi + 8]
test rsi, rsi
je 0x4c73b8
mov rcx, rsi
call fcn.005f4bd8
and eax, 0x3fffffff
lea rdx, [rsp + 0xe0]
mov rcx, rsi
mov r8d, eax
mov r9b, 1
call fcn.0044aa80
mov rcx, qword [r13]
mov edx, 8
call fcn.00429840
test rax, rax
je 0x4c7850
mov rcx, qword [rsp + 0xe0]
mov qword [rax], rcx
jmp 0x4c77b4
mov rcx, r15
mov r8d, r14d
call fcn.004c68a0
cmp eax, r14d
je 0x4c7da1
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4c7d86
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x51
mov dword [rdx + rcx*8 + 4], eax
mov dword [rdx + rcx*8 + 8], r14d
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4c7da1
and sil, dil
and bl, r14b
or bl, sil
movzx eax, bl
mov rdx, qword [r13 + 0x88]
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
mov byte [rdx + rcx*8 + 1], 0xfd
mov dword [rdx + rcx*8 + 0x10], eax
mov r14d, r12d
jmp 0x4ca038
mov rcx, qword [rdi + 0x20]
add rcx, 0x20
mov rcx, qword [rcx]
mov r9d, dword [rcx]
mov r8d, dword [rsi + 0x2c]
cmp r8d, r9d
je 0x4c72d1
lea rdx, [0x00602e59]
mov rcx, r15
call fcn.00419aa0
mov eax, dword [rdi + 0x2c]
movsx ebp, word [rsi + 0x30]
add ebp, eax
jmp 0x4c73bb
mov eax, dword [rsi + 4]
not eax
or eax, 0xffffffdf
cmp eax, 0xffffffff
je 0x4c7c45
mov rdx, qword [rsi + 0x10]
mov rcx, r15
mov r8d, r14d
call fcn.004c68a0
mov ebp, eax
mov rcx, qword [rsi + 0x40]
test rcx, rcx
je 0x4c7fc2
movsx rdx, word [rsi + 0x30]
mov al, 0x44
test rdx, rdx
js 0x4c7fd0
cmp word [rcx + 0x36], dx
jle 0x4c7fd0
mov rax, qword [rcx + 8]
mov ecx, edx
lea rcx, [rcx + rcx*2]
lea rsi, [rax + rcx*8]
add rsi, 0xc
jmp 0x4c7fc6
jne 0x4c7358
mov rax, qword [r15]
xor ebp, ebp
cmp byte [rax + 0x67], 0
jne 0x4c73bb
mov rcx, r15
mov rdx, rsi
call fcn.004cbc80
mov ebp, eax
jmp 0x4c73bb
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c739d
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c73b8
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4b
xor r8d, r8d
mov r9d, r14d
call fcn.0047df60
mov ebp, r14d
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x1b0]
movaps xmm7, xmmword [rsp + 0x1c0]
movaps xmm8, xmmword [rsp + 0x1d0]
movaps xmm9, xmmword [rsp + 0x1e0]
movaps xmm10, xmmword [rsp + 0x1f0]
movaps xmm11, xmmword [rsp + 0x200]
movaps xmm12, xmmword [rsp + 0x210]
movaps xmm13, xmmword [rsp + 0x220]
movaps xmm14, xmmword [rsp + 0x230]
movaps xmm15, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rsi + 8]
lea r12, [rbx + 2]
mov rcx, r12
call fcn.005f4bd8
mov edi, eax
xor edi, 0xc0000000
and edi, eax
lea eax, [rdi - 1]
mov rcx, qword [r13]
shr eax, 0x1f
lea ebp, [rdi + rax]
add ebp, 0xffffffff
sar ebp, 1
lea edx, [rbp + 1]
call fcn.00429840
mov rsi, rax
test rax, rax
je 0x4c9072
cmp edi, 3
jb 0x4c7f6d
add edi, 0xfffffffe
movsxd rdi, edi
movabs rax, 0x33ec387a81e0c9b6
mov rcx, rax
not rcx
add rcx, rdi
add rcx, rax
cmp rcx, 0x1e
jae 0x4c8181
xor r11d, r11d
jmp 0x4c8fed
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c78f7
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c7915
cmp bpl, 0xab
jae 0x4c7975
mov eax, dword [rsi + 4]
not eax
or eax, 0xffffdfff
cmp eax, 0xffffffff
je 0x4c751e
mov rsi, qword [rsi + 0x10]
mov eax, dword [rsi + 4]
mov ecx, eax
xor ecx, 0xffffdfff
test ecx, eax
jne 0x4c750b
mov rax, qword [rsi + 8]
xor r8d, r8d
cmp byte [rax + 4], 0
sete r8b
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c803d
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 4], r8d
jmp 0x4c7385
mov dword [rsp + 0x20], r14d
mov rcx, r13
mov edx, ebp
jmp 0x4c7f5d
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x75
xor r8d, r8d
mov r9d, r14d
call fcn.0047df60
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x4c73b8
test eax, eax
jns 0x4c75ad
mov eax, dword [r13 + 0x90]
add eax, 0xffffffff
cdqe
lea rdx, [rax + rax*2]
shl rdx, 3
add rdx, qword [r13 + 0x88]
mov rcx, r13
mov r8, rsi
xor r9d, r9d
call fcn.0047e190
jmp 0x4c73b8
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x12
xor r9d, r9d
call fcn.0047df60
mov ebp, eax
mov byte [r15 + 0x23], 0
mov rdx, qword [rsi + 0x10]
mov rcx, r15
mov r8d, r14d
call fcn.004c68a0
mov r14d, eax
mov byte [r15 + 0x23], bl
mov eax, dword [r13 + 0x90]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
je 0x4c76c4
mov dword [0x0213b3f0], eax
lea rax, [0x0213b3e8]
mov dword [rax + 0xc], r14d
jmp 0x4ca038
lea rdx, [0x00602e26]
mov rcx, r15
mov r8, rsi
call fcn.00419aa0
jmp 0x4ca038
mov rdi, qword [r15]
mov bpl, byte [rdi + 0x64]
cmp byte [r15 + 0x23], 0
je 0x4c7c9f
mov word [rsp + 0x104], 2
lea rax, [0x004ce7b0]
mov qword [rsp + 0xe8], rax
lea rax, [0x004cea20]
mov qword [rsp + 0xf0], rax
mov dword [rsp + 0x108], 0
lea rcx, [rsp + 0xe0]
mov rdx, rsi
call fcn.004cea30
cmp word [rsp + 0x104], 0
je 0x4c7c9f
mov rcx, r15
mov rdx, rsi
mov r8d, 0xffffffff
call fcn.004cb260
mov ebp, eax
jmp 0x4c73bb
lea ecx, [rax - 1]
test ebp, ebp
cmovns ecx, ebp
mov rdx, qword [r13 + 0x88]
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
lea rbp, [rdx + rcx*8]
mov dword [rdx + rcx*8 + 8], eax
mov dword [rbp + 0xc], r14d
jmp 0x4ca038
mov ebp, 0x35
jmp 0x4c797a
movsx r8d, word [rsi + 0x30]
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7eee
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x4e
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c7f06
mov rsi, qword [rdx + 8]
test rsi, rsi
je 0x4c73b8
mov rcx, rsi
call fcn.005f4bd8
mov r8d, eax
xor r8d, 0xc0000000
and r8d, eax
lea rdx, [rsp + 0xe0]
mov rcx, rsi
mov r9b, 1
call fcn.0044aa80
movq xmm6, qword [rsp + 0xe0]
pxor xmm6, xmmword [0x005fa5c0]
movq qword [rsp + 0xe0], xmm6
mov rcx, qword [r13]
mov edx, 8
call fcn.00429840
test rax, rax
je 0x4c7850
movq qword [rax], xmm6
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], 0xfffffff4
jmp 0x4c7861
mov byte [rsp + 0xe0], 0x9b
mov qword [rsp + 0xe4], 0x10800
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0x5c]
mov rcx, r15
call fcn.004caf80
mov ebx, eax
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0xbc]
mov rcx, r15
call fcn.004caf80
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4c7f50
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x6b
mov dword [rdx + rcx*8 + 4], eax
mov dword [rdx + rcx*8 + 8], ebx
mov dword [rdx + rcx*8 + 0xc], r14d
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4ca038
mov dword [rsp + 0x30], 0xfffffff4
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x99
xor r8d, r8d
jmp 0x4c9092
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4b
xor r8d, r8d
mov r9d, r14d
call fcn.0047df60
mov rcx, r15
mov rdx, rsi
mov r8d, ebx
mov r9d, ebp
call fcn.004cc2b0
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7b5d
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c7b7b
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, 1
mov r9d, r14d
call fcn.0047df60
mov rdx, qword [rsi + 0x10]
lea r8, [rsp + 0x5c]
mov rcx, r15
call fcn.004caf80
mov esi, dword [r13 + 0x90]
cmp dword [r13 + 0x94], esi
jle 0x4c7ba7
movsxd rcx, esi
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rdx + rcx*8], bpl
mov word [rdx + rcx*8 + 2], 0
mov dword [rdx + rcx*8 + 4], eax
mov byte [rdx + rcx*8 + 1], 0
pxor xmm0, xmm0
movdqu xmmword [rdx + rcx*8 + 8], xmm0
jmp 0x4c7bc1
mov ebp, 0x34
mov dword [rsp + 0x90], pe_nt_image_headers64
mov al, 1
mov dword [rsp + 0x98], eax
mov rbx, qword [rsi + 0x10]
mov al, byte [rbx]
mov ecx, eax
cmp al, 0xb0
jne 0x4c799d
mov cl, byte [rbx + 2]
cmp cl, 0x8a
je 0x4c79ad
cmp cl, 0xb1
jne 0x4c79bd
lea rcx, [rbx + 0x20]
jmp 0x4c79b5
mov rcx, qword [rbx + 0x20]
add rcx, 0x20
mov rcx, qword [rcx]
cmp dword [rcx], 2
jge 0x4c7a31
lea r8, [rsp + 0x5c]
mov rcx, r15
mov rdx, rbx
call fcn.004caf80
mov edi, eax
mov rdx, qword [rsi + 0x18]
lea r8, [rsp + 0xbc]
mov rcx, r15
call fcn.004caf80
mov r12d, eax
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7a66
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c7a84
mov rcx, qword [rsi + 0x18]
mov qword [rsp + 0x88], rcx
mov ecx, eax
cmp al, 0xb0
jne 0x4c7a46
mov cl, byte [rbx + 2]
cmp cl, 0x8a
je 0x4c8052
mov edi, 1
cmp cl, 0xb1
jne 0x4c805f
lea rcx, [rbx + 0x20]
jmp 0x4c805a
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, 1
mov r9d, r14d
call fcn.0047df60
mov r8, qword [rsi + 0x18]
mov eax, dword [r13 + 0x90]
mov ecx, dword [rsi + 4]
add eax, 2
shr ecx, 0xa
and ecx, 1
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0x90]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], edi
mov rcx, r15
mov rdx, rbx
mov r9d, ebp
call fcn.004cb0b0
movsxd rax, dword [r13 + 0x90]
mov ecx, dword [r13 + 0x94]
cmp byte [rsp + 0x98], 0
je 0x4c7b1d
cmp ecx, eax
jle 0x4c7ec1
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4ca038
cmp ecx, eax
jle 0x4c7ed9
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x5c
mov dword [rcx + rax*8 + 4], edi
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], r12d
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4ca038
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, 1
mov r9d, r14d
call fcn.0047df60
mov rcx, qword [r13 + 0x18]
mov r8d, edi
neg r8d
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4c7e07
mov eax, dword [r13 + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4c7e0f
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, ebp
mov r8d, eax
xor r9d, r9d
call fcn.0047df60
mov esi, eax
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7c06
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c7c21
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
xor r8d, r8d
mov r9d, r14d
call fcn.0047df60
mov eax, dword [r13 + 0x90]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
je 0x4c7e92
lea rcx, [0x0213b3e8]
mov dword [rcx + 8], eax
jmp 0x4ca038
mov r8d, dword [rsi + 0x2c]
test r8d, r8d
jns 0x4c7c5f
mov r8d, dword [r15 + 0x40]
test r8d, r8d
js 0x4c95a3
add r8d, 0xffffffff
mov rdx, qword [rsi + 0x40]
movsx r9d, word [rsi + 0x30]
movzx edi, byte [rsi + 2]
mov dword [rsp + 0x20], r14d
mov rcx, r13
call fcn.004cdfb0
test di, di
je 0x4c86a5
mov rcx, qword [r15 + 0x10]
mov rax, qword [rcx]
cmp byte [rax + 0x67], 0
je 0x4c8682
lea rax, [0x0213b3e8]
jmp 0x4c869c
mov rbx, qword [rsi + 0x20]
test rbx, rbx
mov dword [rsp + 0x4c], r14d
je 0x4c8106
mov r12d, dword [rbx]
jmp 0x4c8109
cmp bpl, 4
jne 0x4c7d0a
mov rsi, qword [rsi + 8]
mov eax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c85d0
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
movdqa xmm0, xmmword [0x005fa6a0]
movdqu xmmword [rdx + rcx*8], xmm0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4c85ee
test rax, rax
mov eax, 1
mov edi, 0x713
cmove edi, eax
mov rbx, qword [rsi + 8]
mov rcx, r15
call fcn.004c6120
mov rsi, rax
cmp ebp, 2
jne 0x4c7f74
mov rax, qword [r15 + 0xa0]
test rax, rax
cmove rax, r15
mov byte [rax + 0x21], 1
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4c81c5
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x46
mov dword [rdx + rcx*8 + 4], edi
mov qword [rdx + rcx*8 + 8], 2
jmp 0x4c7fb4
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x51
mov r8d, eax
mov r9d, r14d
call fcn.0047df60
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7ddf
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0xb3
mov dword [rcx + rax*8 + 4], r14d
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4c73b8
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0xb3
mov r8d, r14d
xor r9d, r9d
jmp 0x4c73b3
shl rbx, 5
mov ebp, dword [rdi + rbx + 0x14]
jmp 0x4c73bb
mov rdx, r13
call fcn.004d3e00
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c7e4c
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x56
mov dword [rcx + rax*8 + 4], r14d
pxor xmm0, xmm0
movdqu xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4c7e67
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x56
mov r8d, r14d
xor r9d, r9d
call fcn.0047df60
mov rcx, qword [r13 + 0x18]
mov r8d, 1
sub r8d, edi
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4c7eb4
mov eax, dword [r13 + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4c73b8
lea ecx, [rax - 1]
test esi, esi
cmovns ecx, esi
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r13 + 0x88]
mov dword [rcx + 8], eax
jmp 0x4ca038
mov rdx, r13
call fcn.004d3e00
jmp 0x4c73b8
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
xor r8d, r8d
jmp 0x4c6ebb
mov dword [rsp + 0x20], r12d
mov rcx, r13
mov edx, 0x5c
mov r8d, edi
jmp 0x4c6ebb
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4e
mov r9d, r14d
call fcn.0047df60
mov rax, qword [rsi + 8]
cmp byte [rax + 1], 0
je 0x4c73b8
mov rax, qword [r15 + 0x138]
test rax, rax
je 0x4c81be
movsx ebp, word [rsi + 0x30]
mov ebx, dword [rax + 4]
mov edx, 2
xor ecx, ecx
movsxd rdi, edx
cmp dword [rax + rdi*4], ebp
je 0x4c8278
lea edi, [rdx + 1]
movsxd rdi, edi
add edx, dword [rax + rdi*4]
cmp edx, ebx
jl 0x4c7f32
jmp 0x4c8282
mov dword [rsp + 0x20], r14d
mov rcx, r13
mov edx, 0x6b
mov r8d, eax
mov r9d, ebx
call fcn.0047df60
jmp 0x4ca038
xor eax, eax
jmp 0x4c906e
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4c81e0
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x46
mov dword [rdx + rcx*8 + 4], edi
mov dword [rdx + rcx*8 + 8], ebp
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4c81fb
add rsi, 1
mov al, byte [rsi]
cmp al, 0x42
jl 0x4c73bb
movzx eax, al
add eax, eax
add eax, 0xffffff7c
cdqe
lea rcx, [0x00602e00]
add rcx, rax
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x30], 0xffffffff
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x60
mov r8d, ebp
mov r9d, 1
call fcn.004c62a0
jmp 0x4c73bb
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rdi
mov rdi, r13
mov dword [rsp + 0x4c], r14d
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x4c9c3e
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
jmp 0x4c73b0
mov rcx, qword [rbx + 0x20]
add rcx, 0x20
mov rcx, qword [rcx]
mov edi, dword [rcx]
mov ecx, dword [r15 + 0x44]
lea r8d, [rcx - 1]
mov dword [r15 + 0x44], r8d
cmp dword [r15 + 0x30], 0
jne 0x4ca038
mov qword [rsp + 0x158], rcx
mov r9d, dword [rsi + 4]
mov rcx, qword [rsp + 0x88]
mov cl, byte [rcx]
mov edx, ecx
cmp cl, 0xb0
jne 0x4c809e
mov rdx, qword [rsp + 0x88]
mov dl, byte [rdx + 2]
mov qword [rsp + 0x148], rbx
cmp dl, 0x8a
je 0x4c8700
mov ebx, 1
cmp dl, 0xb1
jne 0x4c8715
mov rdx, qword [rsp + 0x88]
add rdx, 0x20
jmp 0x4c8710
mov dword [rsp + 0x20], r14d
mov rcx, r13
mov edx, 0x5e
call fcn.0047df60
movzx eax, word [rdi + rbx + 0x18]
test ax, ax
js 0x4c73b8
mov rcx, qword [rsi + 8]
lea rax, [rax + rax*2]
cmp byte [rcx + rax*8 + 0xc], 0x45
jne 0x4c73b8
jmp 0x4c86ba
xor r12d, r12d
mov rdx, qword [rsi + 8]
mov byte [rsp + 0x20], 0
mov rcx, rdi
mov r8d, r12d
mov r9d, ebp
call fcn.00423170
test rax, rax
je 0x4c8133
mov r14, rax
cmp qword [rax + 0x20], 0
je 0x4c862e
lea rdx, [0x00602e41]
mov rcx, r15
mov r8, rsi
call fcn.00419aa0
mov r14d, dword [rsp + 0x4c]
jmp 0x4ca038
mov al, byte [rsi]
mov ecx, eax
cmp al, 0xb0
jne 0x4c815a
mov cl, byte [rsi + 2]
cmp cl, 0x8a
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x68], rsi
je 0x4c9610
cmp cl, 0xb1
jne 0x4c9623
mov rcx, rsi
jmp 0x4c9614
lea rax, [rdi + 3]
and rax, 0xfffffffffffffffe
add rbx, rax
cmp rsi, rbx
jae 0x4c8824
lea rax, [rdi - 1]
shr rax, 1
add rax, rsi
add rax, 1
cmp r12, rax
jae 0x4c8824
mov al, 1
test al, al
je 0x4c8824
xor r11d, r11d
jmp 0x4c8fed
xor ecx, ecx
jmp 0x4c8282
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x46
mov r8d, edi
mov r9d, 2
jmp 0x4c81f6
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x46
mov r8d, edi
mov r9d, ebp
call fcn.0047df60
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4c8230
test eax, eax
jns 0x4c8211
mov eax, dword [rsi + 0x90]
add eax, 0xffffffff
cdqe
lea rdx, [rax + rax*2]
shl rdx, 3
add rdx, qword [rsi + 0x88]
mov rcx, rsi
mov r8, rbx
xor r9d, r9d
call fcn.0047e190
mov eax, dword [rsi + 0x90]
test eax, eax
jle 0x4ca038
mov rcx, qword [rsi + 0x88]
add eax, 0xffffffff
lea rax, [rax + rax*2]
mov word [rcx + rax*8 + 2], 0
jmp 0x4ca038
xor r10d, r10d
xor ecx, ecx
jmp 0x4c84d8
lea rdx, [0x00602e89]
mov rcx, r15
call fcn.00419aa0
xor ebp, ebp
jmp 0x4c73bb
add edx, 2
movsxd rcx, edx
lea rcx, [rax + rcx*4]
mov dword [rax], 0
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
jne 0x4c73b8
mov rax, qword [r13 + 0x88]
mov edx, dword [r13 + 0x90]
add edx, 0xffffffff
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
mov byte [rax + rdx*8 + 1], 0xff
mov qword [rax + rdx*8 + 0x10], rcx
jmp 0x4c73b8
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x51
mov r8d, eax
mov r9d, r14d
call fcn.0047df60
mov rax, qword [rsi + 8]
mov cl, byte [rax]
test cl, cl
je 0x4c83d4
add rax, 1
xor esi, esi
mov r8b, 0x43
lea rbp, [0x005fade0]
jmp 0x4c831e
cmp esi, 0x7265616c
je 0x4c8371
cmp esi, 0x74657874
jne 0x4c839e
movzx ecx, byte [rax]
add rax, 1
mov r8d, ebx
test cl, cl
je 0x4c83d6
shl esi, 8
movzx ecx, cl
movzx ecx, byte [rcx + rbp]
mov edx, esi
not edx
mov ebx, ecx
not ebx
and edx, 0x77e72858
and esi, 0x8818d700
mov edi, esi
or edi, edx
and ebx, 0x77e72858
and ecx, 0xffffffa7
or ecx, ebx
mov esi, ecx
xor esi, edi
mov bl, 0x42
cmp esi, 0x646f7561
jle 0x4c837e
cmp esi, 0x7265616b
jg 0x4c82f8
cmp esi, 0x646f7562
je 0x4c8371
cmp esi, 0x666c6f61
jne 0x4c839e
mov bl, 0x45
cmp r8b, 0x43
je 0x4c830c
mov ebx, r8d
jmp 0x4c830c
cmp esi, 0x626c6f62
je 0x4c83bc
cmp esi, 0x63686172
je 0x4c830c
cmp esi, 0x636c6f62
je 0x4c830c
mov ecx, esi
not ecx
or ecx, 0xff000000
mov ebx, r8d
cmp ecx, 0xff96918b
jne 0x4c830c
jmp 0x4c9826
mov bl, 0x41
cmp r8b, 0x43
je 0x4c830c
cmp r8b, 0x45
je 0x4c830c
jmp 0x4c8379
mov bl, 0x43
movzx r9d, bl
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c9840
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x58
mov dword [rcx + rax*8 + 4], r14d
mov dword [rcx + rax*8 + 8], r9d
jmp 0x4c738a
mov edi, r10d
xor edi, 0x80000001
and edi, r10d
lea rbp, [r11 + 0x42]
xor eax, eax
xor ecx, ecx
mov rbx, rdi
movzx esi, si
shr esi, 5
mov edx, esi
not edx
and edx, 0xffffb9a1
and esi, 0x65e
or esi, edx
xor esi, 0xffffb9a0
add ecx, esi
mov edx, eax
and edx, 1
mov rsi, rax
xor rsi, 1
or rsi, rdx
lea rdx, [rsi + rsi*2]
movzx edx, word [r11 + rdx*8 + 0x12]
shr edx, 5
mov esi, edx
xor esi, 0x7fe
and esi, edx
mov edx, esi
not edx
and edx, 0x7f48
and esi, 0xb7
or esi, edx
xor esi, 0x7f49
add esi, ecx
mov ecx, esi
add rax, 2
movzx esi, word [rbp]
and esi, 0x20
add rbx, 0xfffffffffffffffe
add rbp, 0x30
cmp rdi, rax
jne 0x4c8430
add rax, 1
test r9, r9
je 0x4c84d8
lea rax, [rax + rax*2]
movzx eax, word [r11 + rax*8 + 0x12]
movzx edx, si
mov esi, eax
xor esi, 0xffffffdf
and esi, eax
shr edx, 5
mov eax, edx
not eax
and eax, 1
and edx, 0xfffffffe
or edx, eax
add ecx, edx
test si, si
je 0x4c84e8
sub r10d, ecx
add r10w, word [r13 + 0x38]
mov ecx, r10d
movsx eax, cx
add r8d, eax
mov rcx, qword [rsp + 0x60]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4c853a
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x9d
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c854f
mov dword [rsp + 0x20], 0
mov edx, 0x9d
mov r9d, r14d
call fcn.0047df60
test r12w, r12w
js 0x4ca038
movzx eax, r12w
mov rcx, qword [r13 + 8]
lea rax, [rax + rax*2]
cmp byte [rcx + rax*8 + 0xc], 0x45
jne 0x4ca038
mov rcx, qword [rsp + 0x60]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4c85b3
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x57
mov dword [rcx + rax*8 + 4], r14d
pxor xmm0, xmm0
movdqu xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4ca038
mov dword [rsp + 0x20], 0
mov edx, 0x57
mov r8d, r14d
xor r9d, r9d
call fcn.0047df60
jmp 0x4ca038
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x46
xor r8d, r8d
mov r9d, 4
call fcn.0047df60
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x4ca038
test eax, eax
jns 0x4c860a
mov eax, dword [r13 + 0x90]
add eax, 0xffffffff
cdqe
lea rdx, [rax + rax*2]
shl rdx, 3
add rdx, qword [r13 + 0x88]
mov rcx, r13
mov r8, rsi
xor r9d, r9d
call fcn.0047e190
jmp 0x4ca038
mov eax, dword [r14 + 4]
mov ecx, eax
xor ecx, 0xffbfffff
test ecx, eax
je 0x4c96ee
mov eax, dword [r14 + 8]
mov r13, qword [r15 + 0x10]
cmp eax, 3
jge 0x4c9870
test eax, eax
jle 0x4ca0ab
cmp eax, 1
jne 0x4ca171
mov rax, qword [rbx + 0x28]
cmp byte [rax], 0xa7
jne 0x4ca46c
mov edx, dword [rax + 0x2c]
mov rcx, qword [rbx + 8]
call fcn.004cff60
jmp 0x4ca187
mov eax, dword [rcx + 0x90]
add eax, 0xffffffff
cdqe
lea rax, [rax + rax*2]
shl rax, 3
add rax, qword [rcx + 0x88]
cmp byte [rax], 0x5e
jne 0x4c86a5
mov word [rax + 2], di
cmp qword [rsi + 0x40], 0
jne 0x4c73b8
cmp byte [rsi + 1], 0x45
jne 0x4c73b8
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4c86eb
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x57
jmp 0x4c7dcd
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x57
jmp 0x4c7def
mov rdx, qword [rsp + 0x88]
mov rdx, qword [rdx + 0x20]
add rdx, 0x20
mov rdx, qword [rdx]
mov ebx, dword [rdx]
cmp edi, ebx
jne 0x4c6c2e
mov dword [rsp + 0x68], r8d
cmp bpl, 0x37
movzx esi, bpl
mov edx, 0x38
cmovne edx, esi
cmp sil, 0x39
mov ebx, 0x36
cmovne ebx, edx
mov dword [rsp + 0x140], esi
cmp sil, 0x34
mov esi, 0x35
cmovne esi, ebx
xor edx, edx
mov qword [rsp + 0x138], rdx
mov edx, 0
mov qword [rsp + 0x130], rdx
cmp al, 0x8a
mov r12, qword [rsp + 0x148]
jne 0x4c8797
mov rcx, r15
mov rdx, r12
mov ebx, r9d
call fcn.004cbc80
mov r9d, ebx
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x88]
mov cl, byte [rax]
shr r9d, 0xa
cmp cl, 0x8a
jne 0x4c87be
mov rcx, r15
mov rdx, qword [rsp + 0x88]
mov ebx, r9d
call fcn.004cbc80
mov r9d, ebx
mov qword [rsp + 0x138], rax
mov eax, r9d
xor eax, 0x3ffffe
mov dword [rsp + 0x150], eax
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
mov dword [rsp + 0x4c], r14d
jle 0x4c909f
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c90c3
mov qword [rsp + 0x188], rdi
mov qword [rsp + 0x190], rbp
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x4c], r14d
shr rcx, 1
add rcx, 1
movabs rax, 0x7ffffffffffffff0
movabs rdx, 0x6d339a7540aa0e97
movabs rbp, 0x23728001880a6766
mov qword [rsp + 0x180], rcx
and rcx, 0xfffffffffffffff0
mov qword [rsp + 0x140], rcx
lea r11, [rcx + rcx]
movdqa xmm8, xmmword [0x005fa5d0]
movdqa xmm12, xmmword [0x005fa5e0]
movdqa xmm9, xmmword [0x005fa5f0]
movdqa xmm0, xmmword [0x005fa600]
movdqa xmm6, xmmword [0x005fa610]
movdqa xmm15, xmmword [0x005fa620]
movdqa xmm11, xmmword [0x005fa630]
movdqa xmm14, xmmword [0x005fa640]
xor ecx, ecx
mov rbx, rbp
not rbx
mov qword [rsp + 0x158], rbx
and rbp, 0xfffffffffffffffd
mov qword [rsp + 0x1a8], rbp
mov rbp, rdx
not rbp
mov qword [rsp + 0x1a0], rbp
and rdx, 0xfffffffffffffff7
mov qword [rsp + 0x198], rdx
not rax
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rsi
mov qword [rsp + 0x50], rcx
lea r13, [rcx + rcx]
mov rbp, r13
not rbp
mov rax, rbp
movabs rdx, 0x23728001880a6766
and rax, rdx
mov rcx, r13
mov rbx, qword [rsp + 0x158]
and rcx, rbx
or rcx, rax
mov eax, ebx
and eax, 2
add rax, qword [rsp + 0x1a8]
xor rax, rcx
or edx, ebx
mov ecx, ebp
not ecx
and edx, ecx
mov esi, ecx
and edx, 2
or rdx, rax
mov qword [rsp + 0x68], rdx
mov eax, r13d
and eax, 4
mov rcx, r13
xor rcx, 4
or rcx, rax
mov qword [rsp + 0x98], rcx
mov eax, r13d
and eax, 6
mov rcx, r13
xor rcx, 6
or rcx, rax
mov qword [rsp + 0x90], rcx
mov rax, rbp
movabs r8, 0x6d339a7540aa0e97
and rax, r8
mov rcx, r13
mov rdx, qword [rsp + 0x1a0]
and rcx, rdx
or rcx, rax
mov eax, edx
and eax, 8
add rax, qword [rsp + 0x198]
xor rax, rcx
mov r9d, r8d
or r9d, edx
and r9d, esi
and r9d, 8
or r9, rax
mov eax, r13d
and eax, 0xa
mov rcx, r13
xor rcx, 0xa
or rcx, rax
mov qword [rsp + 0x88], rcx
mov eax, r13d
and eax, 0xc
mov rcx, r13
xor rcx, 0xc
or rcx, rax
mov qword [rsp + 0x150], rcx
mov eax, r13d
and eax, 0xe
mov rcx, r13
xor rcx, 0xe
or rcx, rax
mov qword [rsp + 0x148], rcx
movabs rdx, 0x5d450c278348ab0c
mov r10, rdx
not r10
mov rax, rbp
and rax, rdx
mov rcx, r13
and rcx, r10
or rcx, rax
mov rax, rdx
and rax, 0xffffffffffffffef
mov edi, r10d
and edi, 0x10
or rdi, rax
xor rdi, rcx
or r10d, edx
and r10d, esi
and r10d, 0x10
or r10, rdi
mov eax, r13d
and eax, 0x12
mov rcx, r13
xor rcx, 0x12
or rcx, rax
mov qword [rsp + 0x168], rcx
movabs rdx, 0xe9d534c006dff917
mov rax, rdx
not rax
mov rcx, rbp
and rcx, rdx
mov rdi, r13
and rdi, rax
or rdi, rcx
mov rcx, rdx
and rcx, 0xffffffffffffffeb
mov ebx, eax
and ebx, 0x14
or rbx, rcx
xor rbx, rdi
or eax, edx
mov ecx, esi
mov dword [rsp + 0x160], esi
and eax, esi
and eax, 0x14
or rax, rbx
mov edi, r13d
and edi, 0x16
mov r8, r13
xor r8, 0x16
or r8, rdi
movabs r14, 0x53dfc1997c7197b4
mov rdi, r14
not rdi
mov rbx, rbp
and rbx, r14
mov rsi, r13
and rsi, rdi
or rsi, rbx
mov rbx, r14
and rbx, 0xffffffffffffffe7
mov edx, edi
and edx, 0x18
or rdx, rbx
xor rdx, rsi
or edi, r14d
and edi, ecx
and edi, 0x18
or rdi, rdx
mov edx, r13d
and edx, 0x1a
mov r15, r13
xor r15, 0x1a
or r15, rdx
movabs rcx, 0x41363647b8165407
mov r14, rcx
not r14
and rbp, rcx
mov rdx, r13
and rdx, r14
or rdx, rbp
mov rsi, rcx
and rsi, 0xffffffffffffffe3
mov ebx, r14d
and ebx, 0x1c
or rbx, rsi
xor rbx, rdx
or r14d, ecx
and r14d, dword [rsp + 0x160]
and r14d, 0x1c
or r14, rbx
mov edx, r13d
and edx, 0x1e
xor r13, 0x1e
or r13, rdx
movzx edx, byte [r12 + r14]
movd xmm1, edx
movzx edx, byte [r12 + r13]
movd xmm2, edx
movzx edx, byte [r12 + rdi]
movd xmm3, edx
punpcklbw xmm1, xmm2
movzx edx, byte [r12 + r15]
movd xmm2, edx
punpcklbw xmm3, xmm2
punpcklwd xmm3, xmm1
movzx eax, byte [r12 + rax]
movd xmm2, eax
movzx eax, byte [r12 + r8]
movd xmm1, eax
punpcklbw xmm2, xmm1
movzx eax, byte [r12 + r10]
movd xmm1, eax
mov rax, qword [rsp + 0x168]
movzx eax, byte [r12 + rax]
movd xmm7, eax
punpcklbw xmm1, xmm7
punpcklwd xmm1, xmm2
punpckldq xmm1, xmm3
mov rax, qword [rsp + 0x148]
movzx eax, byte [r12 + rax]
movd xmm2, eax
mov rax, qword [rsp + 0x150]
movzx eax, byte [r12 + rax]
movd xmm3, eax
punpcklbw xmm3, xmm2
movzx eax, byte [r12 + r9]
movd xmm2, eax
mov rax, qword [rsp + 0x88]
movzx eax, byte [r12 + rax]
movd xmm7, eax
punpcklbw xmm2, xmm7
punpcklwd xmm2, xmm3
mov rax, qword [rsp + 0x90]
movzx eax, byte [r12 + rax]
movd xmm3, eax
mov rax, qword [rsp + 0x98]
movzx eax, byte [r12 + rax]
movd xmm7, eax
punpcklbw xmm7, xmm3
mov rax, qword [rsp + 0x68]
movzx eax, byte [r12 + rax]
movd xmm3, eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [r12 + rax*2]
movd xmm4, eax
punpcklbw xmm4, xmm3
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm2
punpcklqdq xmm4, xmm1
movdqa xmm2, xmm4
psrlw xmm2, 6
movdqa xmm1, xmm2
movdqa xmm3, xmmword [0x005fa650]
pxor xmm1, xmm3
movdqa xmm3, xmmword [0x005fa660]
pand xmm2, xmm3
pand xmm2, xmm1
movdqa xmm10, xmm2
psllw xmm10, 3
por xmm10, xmm2
paddb xmm10, xmm4
movdqa xmm3, xmm14
movdqa xmm1, xmmword [0x005fa680]
pand xmm3, xmm1
movdqa xmm4, xmm11
movdqa xmmword [rsp + 0x170], xmm11
pand xmm4, xmm1
movdqa xmm5, xmm15
pand xmm5, xmm1
movdqa xmmword [rsp + 0xc0], xmm6
pand xmm6, xmm1
movdqa xmmword [rsp + 0xa0], xmm0
pand xmm0, xmm1
movdqa xmm13, xmm9
pand xmm13, xmm1
movdqa xmm2, xmm12
pand xmm2, xmm1
movdqa xmmword [rsp + 0x70], xmm8
pand xmm8, xmm1
movdqa xmm7, xmm14
pxor xmm7, xmm1
por xmm7, xmm3
pxor xmm11, xmm1
por xmm11, xmm4
movdqa xmm4, xmm15
pxor xmm4, xmm1
por xmm4, xmm5
movdqa xmm5, xmmword [rsp + 0xc0]
pxor xmm5, xmm1
por xmm5, xmm6
movdqa xmm6, xmmword [rsp + 0xa0]
pxor xmm6, xmm1
por xmm6, xmm0
movdqa xmm0, xmm9
pxor xmm0, xmm1
por xmm0, xmm13
movdqa xmm13, xmm12
pxor xmm13, xmm1
por xmm13, xmm2
movdqa xmm3, xmmword [rsp + 0x70]
pxor xmm3, xmm1
por xmm3, xmm8
movq rdx, xmm7
pshufd xmm2, xmm7, 0x4e
movq rsi, xmm2
movq r10, xmm11
pshufd xmm2, xmm11, 0x4e
movq r14, xmm2
movq rbx, xmm4
pshufd xmm2, xmm4, 0x4e
movq rcx, xmm2
movq rbp, xmm5
pshufd xmm2, xmm5, 0x4e
movq rax, xmm2
movq r13, xmm6
pshufd xmm2, xmm6, 0x4e
movq rdi, xmm2
movq r8, xmm0
pshufd xmm0, xmm0, 0x4e
movq r9, xmm0
movzx edx, byte [r12 + rdx]
movd xmm2, edx
movq rdx, xmm13
pshufd xmm0, xmm13, 0x4e
movzx esi, byte [r12 + rsi]
movd xmm4, esi
movq r15, xmm0
movzx esi, byte [r12 + r10]
movd xmm0, esi
movq r10, xmm3
pshufd xmm3, xmm3, 0x4e
movzx esi, byte [r12 + r14]
movd xmm5, esi
movq r14, xmm3
movzx esi, byte [r12 + rbx]
movd xmm3, esi
punpcklbw xmm2, xmm4
movzx ecx, byte [r12 + rcx]
movd xmm4, ecx
punpcklbw xmm0, xmm5
movzx ecx, byte [r12 + rbp]
movd xmm5, ecx
punpcklwd xmm2, xmm0
movzx eax, byte [r12 + rax]
movd xmm0, eax
punpcklbw xmm3, xmm4
movzx eax, byte [r12 + r13]
movd xmm4, eax
punpcklbw xmm5, xmm0
movzx eax, byte [r12 + rdi]
movd xmm0, eax
punpcklwd xmm3, xmm5
movzx eax, byte [r12 + r8]
mov rsi, qword [rsp + 0x138]
movd xmm5, eax
punpckldq xmm2, xmm3
movzx eax, byte [r12 + r9]
movd xmm3, eax
punpcklbw xmm4, xmm0
movzx eax, byte [r12 + rdx]
movd xmm0, eax
punpcklbw xmm5, xmm3
movzx eax, byte [r12 + r15]
movd xmm3, eax
punpcklwd xmm4, xmm5
punpcklbw xmm0, xmm3
movzx eax, byte [r12 + r10]
movd xmm3, eax
movzx eax, byte [r12 + r14]
movd xmm5, eax
punpcklbw xmm3, xmm5
punpcklwd xmm0, xmm3
punpckldq xmm4, xmm0
punpcklqdq xmm2, xmm4
movdqa xmm0, xmm2
psrlw xmm0, 6
movdqa xmm3, xmm0
pxor xmm3, xmmword [0x005fa650]
pand xmm0, xmmword [0x005fa660]
pand xmm0, xmm3
movdqa xmm3, xmm0
psllw xmm3, 3
por xmm3, xmm0
psllw xmm10, 4
movdqa xmm4, xmmword [0x005fa670]
pand xmm10, xmm4
paddb xmm3, xmm2
movdqa xmm0, xmm3
pxor xmm0, xmm4
pand xmm0, xmm3
movdqa xmm2, xmm0
pand xmm2, xmm10
pxor xmm0, xmm10
por xmm0, xmm2
mov rbp, qword [rsp + 0x50]
mov rax, rbp
not rax
or rax, qword [rsp + 0x130]
movabs rdx, 0x569a0da499847f0e
mov rcx, rdx
not rcx
or rcx, rdx
not rax
and rax, rcx
movdqu xmmword [rsi + rax], xmm0
add rbp, 0x10
movdqa xmm1, xmmword [0x005fa690]
paddq xmm14, xmm1
movdqa xmm11, xmmword [rsp + 0x170]
paddq xmm11, xmm1
paddq xmm15, xmm1
movdqa xmm6, xmmword [rsp + 0xc0]
paddq xmm6, xmm1
movdqa xmm0, xmmword [rsp + 0xa0]
paddq xmm0, xmm1
paddq xmm9, xmm1
paddq xmm12, xmm1
movdqa xmm8, xmmword [rsp + 0x70]
paddq xmm8, xmm1
mov rcx, rbp
cmp rbp, qword [rsp + 0x140]
jne 0x4c890a
mov rax, qword [rsp + 0x140]
cmp qword [rsp + 0x180], rax
mov r14d, dword [rsp + 0x4c]
mov r13, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x190]
mov rdi, qword [rsp + 0x188]
je 0x4c905b
movzx ecx, byte [r12 + r11]
mov eax, ecx
shr al, 6
and al, 1
movzx eax, al
lea eax, [rax + rax*8]
add al, cl
shl al, 4
mov ecx, r11d
and ecx, 1
mov rdx, r11
xor rdx, 1
or rdx, rcx
movzx ebx, byte [r12 + rdx]
mov ecx, ebx
shr cl, 6
mov edx, ecx
xor dl, 2
and dl, cl
movzx ecx, dl
lea ecx, [rcx + rcx*8]
add cl, bl
mov edx, ecx
not dl
or dl, 0xe0
mov ebx, eax
not bl
and dl, 0xe5
and cl, 0xa
or cl, dl
and bl, 0xe5
and al, 0x10
or al, bl
xor al, cl
mov rcx, r11
shr rcx, 1
mov byte [rsi + rcx], al
add r11, 2
cmp r11, rdi
jl 0x4c8fed
shr r11, 1
movabs rax, 0x7fffffff80000000
xor rax, r11
and rax, r11
mov byte [rsi + rax], 0
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x30], 0xfffffffa
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4d
mov r8d, ebp
mov r9d, r14d
call fcn.004c62a0
jmp 0x4c73b8
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, 1
mov ebx, r9d
mov r9d, r14d
call fcn.0047df60
mov r9d, ebx
and dword [rsp + 0x150], r9d
lea eax, [rdi - 1]
add edi, 0xfffffffe
mov qword [rsp + 0x160], rdi
mov qword [rsp + 0x170], rax
cdqe
mov qword [rsp + 0x168], rax
xor r14d, r14d
pxor xmm6, xmm6
xor eax, eax
mov ebx, 8
jmp 0x4c9166
lea ecx, [rax + 1]
mov rdx, rbx
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 8
mov dword [rcx + rax*8 + 8], r12d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
cmp qword [rsp + 0x160], r14
cmove r13d, dword [rsp + 0x140]
mov esi, r13d
mov r13, rbx
mov rbx, qword [rsp + 0xc0]
mov eax, dword [rsp + 0xa0]
add r14, 1
add rbx, 0x20
mov r12, qword [rsp + 0x148]
mov dword [rsp + 0xe0], 0
mov dword [rsp + 0xdc], 0
test eax, eax
je 0x4c91b7
mov edx, eax
mov eax, dword [r13 + 0x90]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
lea rcx, [0x0213b3e8]
jne 0x4c91b4
lea ecx, [rax - 1]
test edx, edx
cmovns ecx, edx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r13 + 0x88]
mov dword [rcx + 8], eax
movzx eax, byte [r12]
cmp al, 0x8a
je 0x4c91e4
cmp al, 0xb1
je 0x4c91fe
cmp al, 0xb0
jne 0x4c921c
movzx eax, byte [r12 + 2]
cmp al, 0xb1
je 0x4c9228
mov rdi, r12
cmp al, 0x8a
jne 0x4c9239
mov rax, qword [r12 + 0x20]
mov rax, qword [rax + 0x20]
jmp 0x4c922d
mov rax, qword [r12 + 0x20]
mov rax, qword [rax + 0x20]
mov rdi, qword [rax + rbx]
mov rax, qword [rsp + 0x130]
add eax, r14d
jmp 0x4c9241
mov rax, qword [r12 + 0x20]
mov rdi, qword [rax + rbx]
mov rcx, r15
mov rdx, rdi
lea r8, [rsp + 0xe0]
call fcn.004caf80
jmp 0x4c9241
xor edi, edi
mov dword [rsp + 0x70], 0
jmp 0x4c9245
mov rax, qword [r12 + 0x20]
cmp dword [rax], 2
mov rdi, r12
jl 0x4c9239
mov rdi, qword [rax + rbx]
mov eax, dword [r12 + 0x2c]
add eax, r14d
mov dword [rsp + 0x70], eax
mov rcx, qword [rsp + 0x88]
movzx eax, byte [rcx]
cmp al, 0x8a
mov qword [rsp + 0x50], r14
mov qword [rsp + 0xc0], rbx
je 0x4c9282
cmp al, 0xb1
je 0x4c929b
cmp al, 0xb0
jne 0x4c92bb
movzx eax, byte [rcx + 2]
cmp al, 0xb1
je 0x4c92c3
mov r12, rcx
cmp al, 0x8a
jne 0x4c92db
mov rax, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
jmp 0x4c92c7
mov rax, qword [rcx + 0x20]
mov rax, qword [rax + 0x20]
mov r12, qword [rax + rbx]
mov rax, qword [rsp + 0x138]
add r14d, eax
jmp 0x4c92e4
mov rax, qword [rcx + 0x20]
mov r12, qword [rax + rbx]
mov rcx, r15
mov rdx, r12
lea r8, [rsp + 0xdc]
call fcn.004caf80
mov r14d, eax
jmp 0x4c92e4
xor r12d, r12d
xor r14d, r14d
jmp 0x4c92e4
mov rax, qword [rcx + 0x20]
cmp dword [rax], 2
mov r12, rcx
jl 0x4c92db
mov rdx, qword [rsp + 0xc0]
mov r12, qword [rax + rdx]
mov r14d, dword [rcx + 0x2c]
add r14d, dword [rsp + 0x50]
mov rbx, r13
mov eax, dword [r13 + 0x90]
mov dword [rsp + 0xa0], eax
movzx r13d, sil
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r14d
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, rdi
mov r8, r12
mov r9d, r13d
call fcn.004cb0b0
mov eax, dword [rsp + 0xe0]
test eax, eax
je 0x4c935a
movzx ecx, byte [r15 + 0x1f]
cmp rcx, 7
ja 0x4c935a
lea edx, [rcx + 1]
mov byte [r15 + 0x1f], dl
mov dword [r15 + rcx*4 + 0xd8], eax
mov eax, dword [rsp + 0xdc]
test eax, eax
je 0x4c937f
movzx ecx, byte [r15 + 0x1f]
cmp rcx, 7
ja 0x4c937f
lea edx, [rcx + 1]
mov byte [r15 + 0x1f], dl
mov dword [r15 + rcx*4 + 0xd8], eax
cmp sil, 0x38
mov r12d, dword [rsp + 0x68]
je 0x4c9390
cmp sil, 0x36
jne 0x4c9401
mov rax, qword [rsp + 0x50]
cmp rax, qword [rsp + 0x168]
jge 0x4c9401
mov rcx, rbx
mov eax, dword [rbx + 0x90]
cmp dword [rbx + 0x94], eax
jle 0x4c93e2
mov dword [rsp + 0xa0], eax
cdqe
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], 0x3a
movdqu xmmword [rcx + rax*8 + 1], xmm6
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c9401
mov dword [rsp + 0x20], 0
mov edx, 0x3a
xor r8d, r8d
xor r9d, r9d
call fcn.0047df60
mov dword [rsp + 0xa0], eax
mov rcx, rbx
movsxd rax, dword [rbx + 0x90]
mov ecx, dword [rbx + 0x94]
cmp byte [rsp + 0x98], 0
je 0x4c9450
cmp ecx, eax
jle 0x4c9492
lea ecx, [rax + 1]
mov rdx, rbx
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov edx, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
jmp 0x4c9487
cmp ecx, eax
jle 0x4c94a7
lea ecx, [rax + 1]
mov rdx, rbx
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x5c
mov edx, dword [rsp + 0x70]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], r14d
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c94c3
mov dword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 0x47
xor r8d, r8d
jmp 0x4c94b9
mov dword [rsp + 0x20], r14d
mov rcx, rbx
mov edx, 0x5c
mov r8d, dword [rsp + 0x70]
mov r9d, dword [rsp + 0x4c]
call fcn.0047df60
mov r14, qword [rsp + 0x50]
cmp qword [rsp + 0x170], r14
je 0x4c9584
mov rcx, rbx
movsxd rax, dword [rbx + 0x90]
mov ecx, dword [rbx + 0x94]
cmp sil, 0x35
jne 0x4c9534
cmp ecx, eax
jle 0x4c955c
lea ecx, [rax + 1]
mov r13, rbx
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x33
mov edx, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r12d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
mov sil, 0x35
jmp 0x4c9147
cmp ecx, eax
jg 0x4c90fb
mov dword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 8
xor r8d, r8d
mov r9d, r12d
call fcn.0047df60
jmp 0x4c9130
mov dword [rsp + 0x20], 0
mov r13, rbx
mov rcx, rbx
mov edx, 0x33
mov r8d, dword [rsp + 0x4c]
mov r9d, r12d
call fcn.0047df60
mov sil, 0x35
jmp 0x4c9147
mov eax, dword [rbx + 0x90]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
je 0x4c9658
lea rcx, [0x0213b3e8]
jmp 0x4c9679
movzx ebp, word [rsi + 0x30]
test bp, bp
js 0x4c9a91
movzx eax, bp
mov rdx, qword [rsi + 0x40]
mov r12, qword [rdx + 8]
lea r10, [rax + rax*2]
mov ecx, dword [rdx + 0x30]
not ecx
or ecx, 0xffffffdf
cmp ecx, 0xffffffff
je 0x4ca324
movzx ecx, word [r12 + 0x12]
mov esi, ecx
xor esi, 0xffffffdf
and esi, ecx
test bp, bp
je 0x4ca1d9
cmp eax, 1
mov r11d, 1
cmova r11d, eax
mov r9d, r11d
and r9d, 1
cmp bp, 1
jne 0x4ca277
mov ecx, 1
xor ebp, ebp
jmp 0x4ca2ea
mov rcx, qword [rsi + 0x20]
add rcx, 0x20
mov rcx, qword [rcx]
mov ecx, dword [rcx]
cmp rcx, 1
jne 0x4c9638
lea r8, [rsp + 0x5c]
mov rcx, r15
mov rdx, rsi
call fcn.004caf80
jmp 0x4c9b81
mov dword [rsp + 0x5c], 0
cmp al, 0x8a
jne 0x4c98c8
mov rcx, r15
mov rdx, rsi
call fcn.004cbc80
jmp 0x4c9b81
lea ecx, [rax - 1]
mov edx, dword [rsp + 0xa0]
test edx, edx
cmovns ecx, edx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rbx + 0x88]
mov r14d, dword [rsp + 0x4c]
mov dword [rcx + 8], eax
mov rcx, qword [rbx + 0x18]
mov r8, qword [rsp + 0x158]
neg r8d
mov edx, dword [rcx + 0x44]
add edx, dword [rcx + 0x48]
js 0x4c96a4
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4c96ac
mov rdx, rbx
call fcn.004d3e00
cmp bpl, 0x34
jne 0x4ca038
movsxd rax, dword [rbx + 0x90]
cmp dword [rbx + 0x94], eax
jle 0x4c9858
lea ecx, [rax + 1]
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x13
mov dword [rcx + rax*8 + 4], r14d
jmp 0x4c7b02
mov ecx, eax
not ecx
or ecx, 0xffd7ffff
cmp ecx, 0xffffffff
je 0x4c9733
mov ecx, dword [rsi + 4]
mov edx, ecx
xor edx, 0xbfffffff
test edx, ecx
je 0x4c9733
mov ecx, eax
xor ecx, 0xfff7ffff
test ecx, eax
jne 0x4c9721
mov rax, qword [r15]
cmp byte [rax + 0x30], 0
js 0x4c9733
lea rdx, [0x00602ef0]
mov rcx, r15
mov r8, rsi
call fcn.00419aa0
mov qword [rsp + 0x70], rdi
test r12d, r12d
mov qword [rsp + 0xa0], rbx
jle 0x4ca08c
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], r12
mov edi, r12d
lea r13, [rbx + 8]
xor r12d, r12d
xor ebp, ebp
xor eax, eax
jmp 0x4c9774
add r12, 1
add r13, 0x20
cmp rdi, r12
je 0x4c9ab4
cmp r12, 0x1f
ja 0x4c97e6
mov rdx, qword [r13]
mov word [rsp + 0x104], 1
lea rcx, [0x004ce7b0]
mov qword [rsp + 0xe8], rcx
lea rcx, [0x004cea20]
mov qword [rsp + 0xf0], rcx
mov dword [rsp + 0x108], 0
test rdx, rdx
je 0x4c97d4
lea rcx, [rsp + 0xe0]
mov rbx, rax
call fcn.004cea30
mov rax, rbx
cmp word [rsp + 0x104], 0
je 0x4c97e6
mov edx, 1
mov ecx, r12d
shl edx, cl
and edx, ebp
btc ebp, r12d
or ebp, edx
mov edx, dword [r14 + 4]
mov ecx, edx
xor ecx, 0xffffffdf
test ecx, edx
sete dl
setne r8b
test rax, rax
setne bl
sete cl
cmp bl, dl
jne 0x4c9763
or cl, r8b
xor cl, 1
jne 0x4c9763
mov rdx, qword [r13]
mov rcx, r15
call fcn.0047fd40
jmp 0x4c9763
mov bl, 0x44
movzx r9d, bl
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jg 0x4c83ee
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x58
mov r8d, r14d
jmp 0x4c73b3
mov dword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 0x13
mov r8d, r14d
jmp 0x4c6ebb
mov ebp, dword [rsp + 0x4c]
jne 0x4c9af7
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x28]
xor ecx, ecx
mov r9d, 0xffffffff
call fcn.004cf220
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4ca1fe
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x47
mov dword [rdx + rcx*8 + 4], eax
jmp 0x4ca1bf
mov ebp, dword [r15 + 0x38]
lea eax, [rbp + 1]
mov dword [rsp + 0x90], eax
lea eax, [rcx + rbp]
mov dword [r15 + 0x38], eax
test ecx, ecx
jle 0x4c9b7a
mov qword [rsp + 0x98], r12
mov qword [rsp + 0x60], r13
shl rcx, 5
mov qword [rsp + 0x70], rcx
add ebp, 1
xor ebx, ebx
xor r12d, r12d
jmp 0x4c992c
mov rcx, r15
mov rdx, rsi
mov r8d, ebp
call fcn.004cb260
add r12, 1
add rbx, 0x20
add ebp, 1
cmp qword [rsp + 0x70], rbx
mov r14d, r13d
je 0x4c9b68
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x20]
mov rsi, qword [rax + rbx + 8]
cmp byte [r15 + 0x23], 0
je 0x4c99a0
mov r13d, r14d
mov word [rsp + 0x104], 2
lea rax, [0x004ce7b0]
mov qword [rsp + 0xe8], rax
lea rax, [0x004cea20]
mov qword [rsp + 0xf0], rax
mov dword [rsp + 0x108], 0
test rsi, rsi
je 0x4c9905
lea rcx, [rsp + 0xe0]
mov rdx, rsi
call fcn.004cea30
cmp word [rsp + 0x104], 0
jne 0x4c9905
mov r14, qword [r15]
jmp 0x4c99ab
mov r13d, r14d
mov r14, qword [r15]
test rsi, rsi
je 0x4c99c1
mov rcx, r14
mov rdx, rsi
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov rsi, rax
jmp 0x4c99c3
xor esi, esi
cmp byte [r14 + 0x67], 0
je 0x4c99e3
test rsi, rsi
je 0x4c9913
mov rcx, r14
mov rdx, rsi
call fcn.00468370
jmp 0x4c9913
cmp qword [r15 + 0x10], 0
je 0x4c99ca
mov rcx, r15
mov rdx, rsi
mov r8d, ebp
call fcn.004c68a0
cmp ebp, eax
je 0x4c99ca
test rsi, rsi
je 0x4c9a18
mov r8d, dword [rsi + 4]
mov ecx, r8d
xor ecx, 0xffbfffff
mov edx, 0x50
test ecx, r8d
jne 0x4c9a1d
mov edx, 0x51
mov rcx, qword [r15 + 0x10]
movsxd r8, dword [rcx + 0x90]
cmp dword [rcx + 0x94], r8d
jle 0x4c9a79
mov r9, rdi
lea edi, [r8 + 1]
mov dword [rcx + 0x90], edi
mov rcx, qword [rcx + 0x88]
lea rdi, [r8 + r8*2]
mov byte [rcx + rdi*8], dl
mov word [rcx + rdi*8 + 2], 0
mov dword [rcx + rdi*8 + 4], eax
mov dword [rcx + rdi*8 + 8], ebp
mov dword [rcx + rdi*8 + 0xc], 0
mov qword [rcx + rdi*8 + 0x10], 0
mov byte [rcx + rdi*8 + 1], 0
mov rdi, r9
jmp 0x4c99ca
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, ebp
call fcn.0047df60
jmp 0x4c99ca
mov eax, r8d
not eax
and eax, 0x627da135
and r8d, 0x9d825eca
or r8d, eax
xor r8d, 0x9d825eca
mov ebp, r8d
jmp 0x4c73bb
mov rbx, qword [rsp + 0xa0]
test rbx, rbx
mov qword [rsp + 0xc0], rax
je 0x4ca1e3
test ebp, ebp
je 0x4ca41b
mov eax, dword [r15 + 0x38]
lea ecx, [rax + 1]
mov qword [rsp + 0x50], rcx
mov r12, qword [rsp + 0x68]
add eax, r12d
mov dword [r15 + 0x38], eax
mov r13, qword [rsp + 0x60]
jmp 0x4ca630
cmp eax, 5
jge 0x4ca216
lea rax, [0x00602ed9]
mov qword [rsp + 0xe0], rax
lea rax, [0x00602ede]
mov qword [rsp + 0xe8], rax
lea rax, [0x00602ee3]
mov qword [rsp + 0xf0], rax
lea rax, [0x005fe293]
mov qword [rsp + 0xf8], rax
lea rax, [0x005fe28e]
mov qword [rsp + 0x100], rax
mov rcx, qword [rbx + 8]
call fcn.004ce540
cmp al, 0x41
jge 0x4ca4bb
lea rdi, [0x00602eeb]
jmp 0x4ca4cd
mov r13, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov r12, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x4c], r14d
mov rbp, rsi
jmp 0x4c9b98
add rbp, 0x10
mov rbp, qword [rbp]
test rbp, rbp
je 0x4c9bdf
mov ecx, dword [rbp + 4]
mov edx, ecx
not edx
or edx, 0xfff7dfff
cmp edx, 0xffffffff
je 0x4c9bc9
mov edx, ecx
xor edx, 0xfff7ffff
test edx, ecx
je 0x4c9b8b
mov rbp, qword [rbp + 0x20]
add rbp, 8
mov rbp, qword [rbp]
test rbp, rbp
jne 0x4c9b98
jmp 0x4c9bdf
mov dl, byte [rbp]
mov byte [rbp + 2], dl
mov byte [rbp], 0xb0
mov dword [rbp + 0x2c], eax
and ecx, 0xffffdfff
mov dword [rbp + 4], ecx
mov qword [rsp + 0x90], rdi
mov rdi, r13
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xf0], xmm0
movdqa xmmword [rsp + 0x110], xmm0
movdqa xmmword [rsp + 0x100], xmm0
mov qword [rsp + 0x120], 0
mov byte [rsp + 0xe0], 0x35
mov qword [rsp + 0xf0], rsi
mov dword [rsp + 0x5c], 0
lea r14, [rsp + 0xe0]
lea eax, [r12 - 1]
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x98], r12
cmp r12d, 2
mov rbx, qword [rsp + 0xa0]
jl 0x4c9e43
mov rax, qword [rsp + 0xc0]
lea r12, [rax + 8]
xor r13d, r13d
jmp 0x4c9c93
mov rdi, rsi
mov rdx, rsi
mov r8d, ebp
call fcn.004d3e00
add r13, 2
add r12, 0x40
cmp dword [rsp + 0x70], r13d
jle 0x4c9e43
mov rax, qword [r12]
test rbx, rbx
je 0x4c9ca6
mov qword [rsp + 0xf8], rax
jmp 0x4c9ca9
mov r14, rax
mov ebp, dword [r15 + 0x44]
lea r8d, [rbp - 1]
mov dword [r15 + 0x44], r8d
mov rcx, r15
mov rdx, r14
mov r9d, 0x10
call fcn.004cdaa0
cmp qword [r15 + 0x10], 0
je 0x4c9da5
mov eax, r13d
and eax, 1
mov rcx, r13
xor rcx, 1
or rcx, rax
shl rcx, 5
mov rax, qword [rsp + 0xc0]
mov rsi, qword [rax + rcx + 8]
mov rcx, r15
mov rdx, rsi
mov ebx, dword [rsp + 0x4c]
mov r8d, ebx
call fcn.004c68a0
cmp eax, ebx
mov rbx, qword [rsp + 0xa0]
je 0x4c9da5
test rsi, rsi
je 0x4c9d2e
mov ecx, dword [rsi + 4]
not ecx
or ecx, 0xffbfffff
mov edx, 0x50
cmp ecx, 0xffffffff
jne 0x4c9d33
mov edx, 0x51
mov rcx, qword [r15 + 0x10]
movsxd rsi, dword [rcx + 0x90]
cmp dword [rcx + 0x94], esi
jle 0x4c9d90
lea ebx, [rsi + 1]
mov dword [rcx + 0x90], ebx
mov rcx, qword [rcx + 0x88]
lea rbx, [rsi + rsi*2]
mov byte [rcx + rbx*8], dl
mov word [rcx + rbx*8 + 2], 0
mov dword [rcx + rbx*8 + 4], eax
mov eax, dword [rsp + 0x4c]
mov dword [rcx + rbx*8 + 8], eax
mov dword [rcx + rbx*8 + 0xc], 0
mov qword [rcx + rbx*8 + 0x10], 0
mov byte [rcx + rbx*8 + 1], 0
mov rbx, qword [rsp + 0xa0]
jmp 0x4c9da5
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, dword [rsp + 0x4c]
call fcn.0047df60
mov rsi, rdi
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4c9dee
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 8
mov edx, dword [rsp + 0x50]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c9e0b
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 8
xor r8d, r8d
mov r9d, dword [rsp + 0x50]
call fcn.0047df60
mov rcx, qword [rsi + 0x18]
neg ebp
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4c9c72
mov rdi, rsi
mov eax, dword [rsi + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, ebp
mov dword [rcx + rdx*4], eax
add r13, 2
add r12, 0x40
cmp dword [rsp + 0x70], r13d
jg 0x4c9c93
mov rax, qword [rsp + 0x98]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
je 0x4c9f21
cmp qword [r15 + 0x10], 0
mov rbp, rdi
mov r14, qword [rsp + 0x88]
mov r12, qword [rsp + 0x68]
je 0x4c9fa1
movsxd rax, dword [rsp + 0x70]
shl rax, 5
mov rcx, qword [rsp + 0xc0]
mov rsi, qword [rcx + rax + 8]
mov rcx, r15
mov rdx, rsi
mov edi, dword [rsp + 0x4c]
mov r8d, edi
call fcn.004c68a0
cmp eax, edi
je 0x4c9fa1
test rsi, rsi
je 0x4c9ebe
mov ecx, dword [rsi + 4]
not ecx
or ecx, 0xffbfffff
mov edx, 0x50
cmp ecx, 0xffffffff
jne 0x4c9ec3
mov edx, 0x51
mov rcx, qword [r15 + 0x10]
movsxd rdi, dword [rcx + 0x90]
cmp dword [rcx + 0x94], edi
mov r9d, dword [rsp + 0x4c]
jle 0x4c9f91
lea ebx, [rdi + 1]
mov dword [rcx + 0x90], ebx
mov rcx, qword [rcx + 0x88]
lea rbx, [rdi + rdi*2]
mov byte [rcx + rbx*8], dl
mov word [rcx + rbx*8 + 2], 0
mov dword [rcx + rbx*8 + 4], eax
mov dword [rcx + rbx*8 + 8], r9d
mov dword [rcx + rbx*8 + 0xc], 0
mov qword [rcx + rbx*8 + 0x10], 0
mov byte [rcx + rbx*8 + 1], 0
jmp 0x4c9fa1
mov rbp, rdi
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
mov r14, qword [rsp + 0x88]
mov r12, qword [rsp + 0x68]
jle 0x4c9f77
lea ecx, [rax + 1]
mov dword [rbp + 0x90], ecx
mov rcx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov edx, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c9fa1
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x4b
xor r8d, r8d
mov r9d, dword [rsp + 0x4c]
jmp 0x4c9f9c
mov dword [rsp + 0x20], 0
mov r8d, eax
call fcn.0047df60
test r12, r12
mov rsi, qword [rsp + 0x90]
je 0x4c9fb9
mov rcx, r14
mov rdx, r12
call fcn.00468370
mov eax, dword [rbp + 0x90]
lea ecx, [rax - 1]
mov rdx, qword [rbp]
cmp byte [rdx + 0x67], 0
mov r14d, dword [rsp + 0x4c]
je 0x4c9fda
lea rdx, [0x0213b3e8]
jmp 0x4c9fec
movsxd rdx, ecx
lea rdx, [rdx + rdx*2]
shl rdx, 3
add rdx, qword [rbp + 0x88]
cmp byte [rdx], 0x50
setne dl
test eax, eax
setg bl
cmp bl, dl
je 0x4ca013
test eax, eax
jle 0x4ca013
mov rdx, qword [rbp + 0x88]
mov ecx, ecx
lea rcx, [rcx + rcx*2]
mov word [rdx + rcx*8 + 2], 1
mov rcx, qword [rbp + 0x18]
neg esi
mov edx, dword [rcx + 0x44]
add edx, dword [rcx + 0x48]
js 0x4ca02d
mov rcx, qword [rcx + 0x50]
movsxd rdx, esi
mov dword [rcx + rdx*4], eax
jmp 0x4ca038
mov rdx, rbp
mov r8d, esi
call fcn.004d3e00
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x4ca05a
movzx ecx, byte [r15 + 0x1f]
cmp rcx, 7
ja 0x4ca05a
lea edx, [rcx + 1]
mov byte [r15 + 0x1f], dl
mov dword [r15 + rcx*4 + 0xd8], eax
mov eax, dword [rsp + 0xbc]
test eax, eax
je 0x4c73b8
movzx ecx, byte [r15 + 0x1f]
cmp rcx, 7
ja 0x4c73b8
lea edx, [rcx + 1]
mov byte [r15 + 0x1f], dl
mov dword [r15 + rcx*4 + 0xd8], eax
jmp 0x4c73b8
xor edi, edi
test rbx, rbx
je 0x4ca44b
mov qword [rsp + 0x60], r13
xor eax, eax
mov qword [rsp + 0xc0], rax
jmp 0x4ca5ef
mov ebp, dword [rsp + 0x4c]
jne 0x4ca261
mov r14d, ebp
mov r12, rbx
mov edi, dword [rbx]
mov eax, dword [r15 + 0x44]
mov qword [rsp + 0x70], rax
add eax, 0xffffffff
mov dword [rsp + 0x50], eax
mov dword [r15 + 0x44], eax
test r13, r13
je 0x4ca7f6
mov rbx, qword [r12 + 8]
mov rcx, r15
mov rdx, rbx
mov esi, r14d
mov r8d, r14d
call fcn.004c68a0
cmp eax, r14d
je 0x4ca7f6
test rbx, rbx
je 0x4ca112
mov ebp, dword [rbx + 4]
mov ecx, ebp
xor ecx, 0xffbfffff
mov edx, 0x50
test ecx, ebp
jne 0x4ca117
mov edx, 0x51
mov rcx, qword [r15 + 0x10]
movsxd rbp, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebp
jle 0x4ca7e3
lea ebx, [rbp + 1]
mov dword [rcx + 0x90], ebx
mov rcx, qword [rcx + 0x88]
lea rbp, [rbp + rbp*2]
mov byte [rcx + rbp*8], dl
mov word [rcx + rbp*8 + 2], 0
mov dword [rcx + rbp*8 + 4], eax
mov dword [rcx + rbp*8 + 8], r14d
mov dword [rcx + rbp*8 + 0xc], 0
mov qword [rcx + rbp*8 + 0x10], 0
mov byte [rcx + rbp*8 + 1], 0
jmp 0x4ca7f6
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x28]
mov rcx, r15
mov r9d, 0xffffffff
call fcn.004cfed0
movsxd rcx, dword [r13 + 0x90]
cmp dword [r13 + 0x94], ecx
jle 0x4ca403
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x47
mov dword [rdx + rcx*8 + 4], eax
mov ebp, dword [rsp + 0x4c]
mov dword [rdx + rcx*8 + 8], ebp
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4c73bb
xor r11d, r11d
xor ebp, ebp
jmp 0x4ca314
xor eax, eax
mov qword [rsp + 0x50], rax
mov r13, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
jmp 0x4ca677
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, eax
jmp 0x4ca7ad
jne 0x4ca261
xorps xmm0, xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x120], 0
mov byte [rsp + 0xe0], 0x9d
mov qword [rsp + 0x100], rbx
lea rdx, [rsp + 0xe0]
jmp 0x4ca265
mov rdx, qword [rbx + 8]
mov rcx, r15
mov r8d, ebp
call fcn.004c68a0
mov ebp, eax
jmp 0x4c73bb
mov qword [rsp + 0x60], r13
mov r13d, r14d
mov r14d, r11d
and r14d, 0xfffffffe
lea rdi, [r12 + 0x42]
xor ecx, ecx
xor ebp, ebp
mov rbx, r14
movzx esi, si
shr esi, 5
mov eax, esi
not eax
and eax, 1
and esi, 0xfffffffe
or esi, eax
add ebp, esi
mov eax, ecx
and eax, 1
mov rsi, rcx
xor rsi, 1
or rsi, rax
lea rax, [rsi + rsi*2]
movzx eax, byte [r12 + rax*8 + 0x12]
and al, 0x20
cmp al, 1
adc bp, 0
add rcx, 2
movzx esi, word [rdi]
and esi, 0x20
add rbx, 0xfffffffffffffffe
add rdi, 0x30
cmp r14, rcx
jne 0x4ca292
add rcx, 1
mov r14d, r13d
mov r13, qword [rsp + 0x60]
test r9, r9
je 0x4ca314
lea rax, [rcx + rcx*2]
movzx eax, word [r12 + rax*8 + 0x12]
movzx ecx, si
mov esi, eax
xor esi, 0xffffffdf
and esi, eax
shr ecx, 5
mov eax, ecx
not eax
and eax, 1
and ecx, 0xfffffffe
or ecx, eax
add ebp, ecx
test si, si
je 0x4ca324
sub r11d, ebp
add r11w, word [rdx + 0x38]
mov ebp, r11d
movsx ebp, bp
sub ebp, r8d
movzx eax, word [r12 + r10*8 + 0x12]
mov ecx, eax
xor ecx, 0xff9f
test ecx, eax
je 0x4ca365
lea r8, [r12 + r10*8]
mov ecx, eax
xor ecx, 0xfeff
test ecx, eax
je 0x4ca3c3
mov r8, qword [r8]
lea rdx, [0x00602e08]
mov rcx, r15
call fcn.00419aa0
xor ebp, ebp
jmp 0x4c73bb
cmp byte [r12 + r10*8 + 0xc], 0x45
jne 0x4c73bb
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4ca56f
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x51
mov dword [rcx + rax*8 + 4], ebp
mov ebp, r14d
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4ca58d
lea rsi, [r12 + r10*8]
add rsi, 0x12
mov ebx, eax
and ebx, 0x100
mov ecx, eax
xor ecx, 0x100
or ecx, ebx
mov word [rsi], cx
test al, al
jns 0x4ca3f2
mov rcx, r15
mov r9d, ebp
call fcn.004ca9d0
movzx ecx, word [rsi]
mov eax, ecx
xor eax, 0x180
and eax, ecx
mov word [rsi], ax
jmp 0x4c73bb
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, eax
jmp 0x4ca7a9
cmp edi, 1
jne 0x4ca5ea
mov al, byte [r15 + 0x1f]
test al, al
je 0x4ca7ba
add al, 0xff
mov byte [r15 + 0x1f], al
movzx eax, al
mov eax, dword [r15 + rax*4 + 0xd8]
mov qword [rsp + 0x50], rax
jmp 0x4ca7ca
mov eax, dword [r14 + 4]
not eax
or eax, 0xffffffdf
mov ebp, 0
mov ebx, 0
cmp eax, 0xffffffff
jne 0x4ca6d1
jmp 0x4ca706
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4ca796
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov ebp, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 8], ebp
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4c73bb
movzx eax, al
mov ecx, 0xffffffbf
add ecx, eax
mov rdi, qword [rsp + rcx*8 + 0xe0]
mov eax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4ca514
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov qword [rdx + rcx*8], 0x75
mov dword [rdx + rcx*8 + 8], ebp
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4ca52f
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x75
xor r8d, r8d
mov r9d, ebp
call fcn.0047df60
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x4c73bb
test eax, eax
jns 0x4ca54b
mov eax, dword [r13 + 0x90]
add eax, 0xffffffff
cdqe
lea rdx, [rax + rax*2]
shl rdx, 3
add rdx, qword [r13 + 0x88]
mov rcx, r13
mov r8, rdi
xor r9d, r9d
call fcn.0047e190
jmp 0x4c73bb
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x51
mov r8d, ebp
mov ebp, r14d
mov r9d, r14d
call fcn.0047df60
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4ca5ca
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x57
mov dword [rcx + rax*8 + 4], ebp
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4c73bb
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x57
mov r8d, ebp
xor r9d, r9d
call fcn.0047df60
jmp 0x4c73bb
mov r12, qword [rsp + 0x68]
mov eax, dword [r15 + 0x28]
sub eax, r12d
jge 0x4ca60d
mov eax, dword [r15 + 0x38]
lea ecx, [rax + 1]
mov qword [rsp + 0x50], rcx
add eax, r12d
mov dword [r15 + 0x38], eax
jmp 0x4ca621
mov ecx, dword [r15 + 0x2c]
mov qword [rsp + 0x50], rcx
add ecx, r12d
mov dword [r15 + 0x2c], ecx
mov dword [r15 + 0x28], eax
xor ebp, ebp
mov r13, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x70]
mov eax, dword [r14 + 4]
mov ecx, eax
xor ecx, 0xffffff3f
test ecx, eax
je 0x4ca65f
mov rcx, qword [rbx + 8]
mov dl, byte [rcx]
cmp dl, 0xa9
je 0x4ca655
cmp dl, 0xa7
jne 0x4ca65f
mov edx, eax
xor dl, 0x3f
and dl, al
mov byte [rcx + 2], dl
mov byte [rsp + 0x20], 3
mov rcx, r15
mov rdx, rbx
mov r8, qword [rsp + 0x50]
xor r9d, r9d
call fcn.004cb5d0
cmp r12d, 2
jl 0x4ca692
mov eax, dword [rsi + 4]
mov ecx, eax
xor ecx, 0xfffffeff
test ecx, eax
je 0x4ca698
add rbx, 0x28
jmp 0x4ca69c
cmp r12d, 1
jne 0x4ca6b0
add rbx, 8
mov r9, qword [rbx]
mov rcx, rdi
mov rdx, r14
mov r8d, r12d
call fcn.004cb8e0
mov r14, rax
mov eax, dword [r14 + 4]
mov ecx, eax
xor ecx, 0xffffffdf
test ecx, eax
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x50]
je 0x4ca704
mov edi, ebx
test rax, rax
jne 0x4ca6dc
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x10]
mov ebx, edi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], 0xfffffffe
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x55
xor r8d, r8d
xor r9d, r9d
call fcn.004c62a0
mov edi, ebp
movzx eax, byte [rsi + 2]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r12d
mov rcx, r15
mov edx, edi
mov r8d, ebx
mov ebp, dword [rsp + 0x4c]
mov r9d, ebp
call fcn.004cba70
test r12d, r12d
setne al
test edi, edi
setne cl
cmp al, cl
je 0x4c73bb
test r12d, r12d
je 0x4c73bb
cmp r12d, 1
jne 0x4ca77c
test ebx, ebx
je 0x4c73bb
movzx eax, byte [r15 + 0x1f]
cmp rax, 7
ja 0x4c73bb
mov rdx, rbx
lea ecx, [rax + 1]
mov byte [r15 + 0x1f], cl
mov dword [r15 + rax*4 + 0xd8], edx
jmp 0x4c73bb
cmp dword [r15 + 0x28], r12d
jge 0x4c73bb
mov rax, r12
mov dword [r15 + 0x28], eax
mov dword [r15 + 0x2c], ebx
jmp 0x4c73bb
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4b
xor r8d, r8d
mov ebp, dword [rsp + 0x4c]
mov r9d, ebp
call fcn.0047df60
jmp 0x4c73bb
mov eax, dword [r15 + 0x38]
add eax, 1
mov qword [rsp + 0x50], rax
mov dword [r15 + 0x38], eax
xor ebp, ebp
mov r13, qword [rsp + 0x60]
mov rbx, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x68]
jmp 0x4ca630
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, r14d
call fcn.0047df60
mov eax, dword [r13 + 0x90]
cmp edi, 2
jl 0x4ca945
add rdi, 0xffffffffffffffff
add r12, 0x28
mov ebp, 1
jmp 0x4ca86b
lea esi, [rbx + 1]
mov dword [rcx + 0x90], esi
mov rcx, qword [rcx + 0x88]
lea rbx, [rbx + rbx*2]
mov byte [rcx + rbx*8], dl
mov word [rcx + rbx*8 + 2], 0
mov dword [rcx + rbx*8 + 4], eax
mov dword [rcx + rbx*8 + 8], r14d
mov dword [rcx + rbx*8 + 0xc], 0
mov qword [rcx + rbx*8 + 0x10], 0
mov byte [rcx + rbx*8 + 1], 0
add rbp, 1
mov eax, dword [r13 + 0x90]
add r12, 0x20
add rdi, 0xffffffffffffffff
je 0x4ca945
cmp dword [r13 + 0x94], eax
jle 0x4ca8b2
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x33
mov dword [rcx + rax*8 + 4], r14d
mov edx, dword [rsp + 0x50]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4ca8cf
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x33
mov r8d, r14d
mov r9d, dword [rsp + 0x50]
call fcn.0047df60
cmp qword [r15 + 0x10], 0
je 0x4ca852
mov rbx, qword [r12]
mov rcx, r15
mov rdx, rbx
mov esi, r14d
mov r8d, r14d
call fcn.004c68a0
cmp eax, r14d
je 0x4ca852
test rbx, rbx
je 0x4ca911
mov ebx, dword [rbx + 4]
mov ecx, ebx
xor ecx, 0xffbfffff
mov edx, 0x50
test ecx, ebx
jne 0x4ca916
mov edx, 0x51
mov rcx, qword [r15 + 0x10]
movsxd rbx, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebx
jg 0x4ca815
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, r14d
call fcn.0047df60
jmp 0x4ca852
lea ecx, [rax - 1]
mov rdx, qword [r13]
cmp byte [rdx + 0x67], 0
je 0x4ca95b
lea rdx, [0x0213b3e8]
jmp 0x4ca96d
movsxd rdx, ecx
lea rdx, [rdx + rdx*2]
shl rdx, 3
add rdx, qword [r13 + 0x88]
test eax, eax
jle 0x4ca990
cmp byte [rdx], 0x50
jne 0x4ca990
mov dl, 1
test dl, dl
je 0x4ca990
mov rdx, qword [r13 + 0x88]
mov ecx, ecx
lea rcx, [rcx + rcx*2]
mov word [rdx + rcx*8 + 2], 1
mov rcx, qword [r13 + 0x18]
mov rdx, qword [rsp + 0x70]
neg edx
mov qword [rsp + 0x70], rdx
mov edx, dword [rcx + 0x44]
add edx, dword [rcx + 0x48]
js 0x4ca9b9
mov rcx, qword [rcx + 0x50]
movsxd rdx, dword [rsp + 0x70]
mov dword [rcx + rdx*4], eax
jmp 0x4c73b8
mov rdx, r13
mov r8, qword [rsp + 0x70]
call fcn.004d3e00
jmp 0x4c73b8