Function at 0x4ad550
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x268
movaps xmmword [rsp + 0x250], xmm6
mov r15, r9
mov r13, r8
mov r14, rdx
mov dword [rsp + 0x16c], 0
mov r12, qword [rcx]
cmp dword [rcx + 0x30], 0
je 0x4ad5dc
xor ebp, ebp
mov rcx, r12
mov rdx, rbp
call fcn.00408130
mov rcx, r12
mov rdx, r14
call fcn.004688d0
test r13, r13
je 0x4ad5b0
mov rcx, r12
mov rdx, r13
call fcn.0047fbe0
test r15, r15
je 0x4ad5c0
mov rcx, r12
mov rdx, r15
call fcn.00468370
movaps xmm6, xmmword [rsp + 0x250]
add rsp, 0x268
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, rcx
mov rcx, qword [r14 + 8]
test rcx, rcx
mov qword [rsp + 0x80], rsi
je 0x4ad638
mov ebp, 0xffffffff
mov rax, qword [r12 + 0x20]
lea rbx, [rax + 0x18]
movabs rdx, 0xffffffff00000000
xor edi, edi
nop
add rdi, 1
lea rsi, [rbx + 0x20]
add rdx, rbp
add rdx, 1
cmp qword [rbx], rcx
mov rbx, rsi
jne 0x4ad610
sar rdx, 0x1b
add rax, rdx
mov rsi, qword [rsp + 0x80]
jmp 0x4ad63c
lea rax, [r14 + 0x10]
mov r9, qword [rax]
mov r8, qword [r14 + 0x18]
mov rcx, rsi
xor edx, edx
call fcn.004190c0
mov r9, rax
mov rdx, qword [r14 + 0x28]
test rdx, rdx
mov qword [rsp + 0x70], rax
je 0x4ad688
mov rcx, qword [rsi]
test rcx, rcx
je 0x4ad670
cmp qword [rcx + 0x300], 0
jne 0x4ad67e
mov eax, dword [rdx + 0x2c]
lea ebp, [rax - 1]
mov dword [rdx + 0x2c], ebp
cmp eax, 1
jne 0x4ad688
call fcn.0047f4d0
mov r9, qword [rsp + 0x70]
mov qword [r14 + 0x28], r9
test r9, r9
je 0x4ad588
add dword [r9 + 0x2c], 1
mov eax, dword [r14 + 0x48]
mov ecx, eax
xor ecx, 0xfffffffd
test ecx, eax
je 0x4ad72b
mov r8, qword [r14 + 0x60]
mov rax, qword [r9 + 0x10]
test rax, rax
je 0x4ad6fa
lea rcx, [0x005fade0]
mov rdx, qword [rax]
xor ebp, ebp
jmp 0x4ad6dd
movzx ebx, byte [rbx + rcx]
cmp bl, byte [rdi + rcx]
jne 0x4ad6f1
add rbp, 1
movzx ebx, byte [rdx + rbp]
movzx edi, byte [r8 + rbp]
cmp bl, dil
jne 0x4ad6d0
test bl, bl
jne 0x4ad6d9
jmp 0x4ad71f
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x4ad6bf
lea rdx, [0x006038e9]
xor ebp, ebp
mov rsi, qword [rsp + 0x80]
mov rcx, rsi
xor r9d, r9d
call fcn.00419aa0
mov byte [rsi + 0x1d], 1
jmp 0x4ad58a
mov qword [r14 + 0x68], rax
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x88], r14
mov rcx, qword [r9 + 0x60]
mov rax, qword [rsi]
test rcx, rcx
je 0x4ad76d
mov rdx, qword [rax + 0x20]
add rdx, 0x18
mov r14d, 0xffffffff
xor ebp, ebp
nop
add rbp, 1
add r14d, 1
lea rbx, [rdx + 0x20]
cmp qword [rdx], rcx
mov rdx, rbx
jne 0x4ad750
cmp qword [r9 + 0x58], 0
jne 0x4ad78e
jmp 0x4ad77a
mov r14d, 0xffff8000
cmp qword [r9 + 0x58], 0
jne 0x4ad78e
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x38]
test rax, rax
je 0x4ad797
cmp qword [rax + 0x40], 0
je 0x4ad797
cmp byte [rsi + 0xd7], 0
je 0x4ad7a6
mov dword [rsp + 0x184], 0
xor ebx, ebx
jmp 0x4ad7cf
lea rax, [rsp + 0x184]
mov qword [rsp + 0x20], rax
mov rcx, rsi
mov rdx, r9
mov r8d, 0x81
mov r9, r13
call fcn.0050e530
mov r9, qword [rsp + 0x70]
mov rbx, rax
mov bpl, byte [r9 + 0x3f]
xor ecx, ecx
mov rax, qword [rsp + 0x88]
cmp dword [rax], 2
jl 0x4ad7e6
mov ecx, dword [r13]
mov qword [rsp + 0x90], rcx
mov rcx, rsi
mov rdx, r9
mov rdi, r9
call fcn.004ddca0
test eax, eax
jne 0x4ad817
mov r8d, dword [rsp + 0x184]
mov rcx, rsi
mov rdx, rdi
call fcn.0050cf20
test eax, eax
je 0x4ad826
xor ebp, ebp
mov r14, qword [rsp + 0x88]
jmp 0x4ad58a
mov qword [rsp + 0x130], rbx
mov r8, qword [rsp + 0x2d8]
mov r10d, dword [rsi + 0x34]
lea r9d, [r10 + 1]
mov dword [rsi + 0x34], r9d
xor ebx, ebx
cmp byte [rdi + 0x30], 0
mov rax, qword [rdi + 0x10]
mov byte [rsp + 0xac], bpl
js 0x4ad8a2
xor r11d, r11d
lea rcx, [rdi + 0x10]
mov qword [rsp + 0xc0], rcx
test rax, rax
je 0x4ad8c5
xor ebx, ebx
mov ecx, r9d
mov ebp, r10d
nop word cs:[rax + rax]
lea edx, [r9 + rbx]
cmp r11, rax
cmove ebp, edx
add ecx, 1
add ebx, 1
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x4ad880
lea eax, [r9 + rbx]
mov dword [rsi + 0x34], eax
jmp 0x4ad8de
test rax, rax
je 0x4ad8ca
mov r11, rax
mov ecx, dword [r11 + 0x64]
mov edx, ecx
xor edx, 0xfffffffc
and edx, ecx
cmp edx, 2
je 0x4ad859
mov r11, qword [r11 + 0x28]
test r11, r11
jne 0x4ad8aa
jmp 0x4ad856
mov ebp, r10d
jmp 0x4ad8de
lea rax, [rdi + 0x10]
mov qword [rsp + 0xc0], rax
xor r11d, r11d
mov ebp, r10d
xor ebx, ebx
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0xb8], r11
test r8, r8
je 0x4ad8ff
mov ebp, dword [r8 + 0x4c]
mov r9d, dword [r8 + 0x50]
mov dword [rsi + 0x34], r10d
mov qword [rsp + 0x108], r10
mov qword [rsp + 0x1d8], r9
mov rax, qword [rsp + 0x88]
mov dword [rsp + 0x98], ebp
mov dword [rax + 0x4c], ebp
movsx eax, word [rdi + 0x36]
lea eax, [rbx + rax + 1]
cdqe
mov esi, ebx
movabs rcx, 0x798dfb0064253305
mov rdx, rsi
sub rdx, rcx
lea rax, [rdx + rax*4]
lea rdx, [rcx + rax]
add rdx, 2
mov rcx, r12
call fcn.00429840
test rax, rax
je 0x4adf9b
mov rbp, rax
add ebx, 1
movsx rax, word [rdi + 0x36]
lea rax, [rax*4]
add rax, rbp
lea r13, [rax + rsi*4]
mov qword [rsp + 0x118], rax
lea rcx, [rax + rsi*4 + 4]
mov qword [rsp + 0x248], rbx
mov esi, ebx
mov qword [rsp + 0x100], rcx
mov dl, 1
mov r8, rsi
call fcn.005f4c10
mov qword [rsp + 0xd8], rsi
mov byte [rsi + r13 + 4], 0
movzx eax, word [rdi + 0x36]
test ax, ax
jle 0x4ad9cf
cmp eax, 1
mov r8d, 1
cmova r8d, eax
shl r8d, 2
mov rcx, rbp
mov dl, 0xff
call fcn.005f4c10
xorps xmm0, xmm0
movups xmmword [rsp + 0x238], xmm0
movups xmmword [rsp + 0x228], xmm0
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x210], rdi
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x218], rax
mov rax, qword [rsp + 0x2d8]
mov qword [rsp + 0x220], rax
mov dword [rsp + 0x238], 0x200
mov rcx, rdi
call fcn.004c6120
mov qword [rsp + 0x78], rax
test rax, rax
mov r13, qword [rsp + 0xa0]
je 0x4adfb2
cmp dword [r13], 0
mov qword [rsp + 0x170], r15
mov qword [rsp + 0x178], r12
mov qword [rsp + 0xe0], rbp
jle 0x4adfbf
movsxd rax, r14d
mov dword [rsp + 0x160], 0xffffffff
xor ebx, ebx
lea r13, [0x005fade0]
shl rax, 5
mov qword [rsp + 0x188], rax
xor eax, eax
mov qword [rsp + 0x110], rax
xor eax, eax
mov qword [rsp + 0xf0], rax
xor eax, eax
mov qword [rsp + 0x1d0], rax
mov rcx, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x70]
jmp 0x4adac6
add rbx, 1
mov rcx, qword [rsp + 0xa0]
movsxd rax, dword [rcx]
cmp rbx, rax
jge 0x4adff5
mov r12, rbx
shl r12, 5
mov rax, qword [rcx + r12 + 0x10]
test rax, rax
mov qword [rsp + 0xe8], rbx
je 0x4adb04
mov cl, byte [rax]
test cl, cl
je 0x4adb04
add rax, 1
xor ebx, ebx
nop
movzx ecx, cl
add bl, byte [rcx + r13]
movzx ecx, byte [rax]
add rax, 1
test cl, cl
jne 0x4adaf0
jmp 0x4adb06
xor ebx, ebx
mov rax, qword [rsp + 0xa0]
lea rcx, [rax + r12]
add rcx, 8
mov qword [rsp + 0xc8], rcx
cmp dword [rsp + 0x90], 0
jne 0x4adc99
mov rax, qword [rsp + 0xc8]
mov r15, qword [rax]
test r15, r15
je 0x4adc89
mov edi, dword [rsp + 0x238]
mov eax, edi
and eax, 0xf7ff6fef
mov dword [rsp + 0x238], eax
mov rcx, qword [rsp + 0x210]
mov qword [rsp + 0x190], rcx
lea rax, [fcn.004d5a10]
mov qword [rsp + 0x198], rax
mov eax, edi
xor eax, 0xfff7ffff
test eax, edi
mov eax, 0
lea rdx, [0x004d8f00]
cmove rax, rdx
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1a8], 0
lea rax, [rsp + 0x210]
mov qword [rsp + 0x1b8], rax
mov eax, dword [r15 + 0x28]
add eax, dword [rcx + 0x12c]
mov dword [rcx + 0x12c], eax
mov rdx, qword [rcx]
mov r8d, dword [rdx + 0x94]
cmp r8d, eax
jl 0x4af2e4
and edi, 0x8009010
lea rcx, [rsp + 0x190]
mov rdx, r15
call fcn.004cea30
mov r8, qword [rsp + 0x190]
mov ecx, dword [r15 + 0x28]
sub dword [r8 + 0x12c], ecx
mov ecx, dword [rsp + 0x238]
mov r9d, ecx
and r9d, edi
xor edi, ecx
not ecx
or ecx, 0xffff7fef
mov ebp, ecx
not ebp
mov esi, dword [r15 + 4]
mov eax, esi
not eax
mov edx, eax
and edx, 0xa8a5da6e
and esi, 0x575a2591
or esi, edx
or eax, ecx
and ecx, 0xa8a5da6e
movzx edx, bpl
mov rbp, qword [rsp + 0xe0]
or edx, ecx
xor edx, esi
not eax
or eax, edx
mov dword [r15 + 4], eax
or edi, r9d
mov dword [rsp + 0x238], edi
cmp dword [rsp + 0x234], 0
jg 0x4af2f0
cmp dword [r8 + 0x30], 0
mov r15, qword [rsp + 0x170]
mov rax, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x70]
jle 0x4adc99
jmp 0x4af305
mov r15, qword [rsp + 0x170]
mov rax, qword [rsp + 0xa0]
lea r10, [rax + r12]
add r10, 0x10
movsx rdx, word [r11 + 0x36]
test rdx, rdx
mov r12, qword [rsp + 0x178]
jle 0x4add81
mov r9, qword [r11 + 8]
xor esi, esi
jmp 0x4adccc
add rsi, 1
cmp rsi, rdx
jge 0x4add81
lea rax, [rsi + rsi*2]
cmp byte [r9 + rax*8 + 0xe], bl
jne 0x4adcbf
mov r8, qword [r9 + rax*8]
mov rdi, qword [r10]
xor ebp, ebp
jmp 0x4adcff
movzx eax, byte [rax + r13]
cmp al, byte [rcx + r13]
jne 0x4adcbf
add rbp, 1
movzx eax, byte [r8 + rbp]
movzx ecx, byte [rdi + rbp]
cmp al, cl
jne 0x4adcf0
test al, al
jne 0x4adcfb
mov eax, esi
not eax
mov ecx, 0xffffffff
not ecx
or ecx, eax
movabs rdx, 0x8ce90734369f871a
mov eax, edx
not eax
or eax, edx
not ecx
and ecx, eax
movsx eax, word [r11 + 0x34]
cmp esi, eax
jne 0x4ade72
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov qword [rsp + 0x110], rax
mov al, 1
mov qword [rsp + 0xf0], rax
mov rbx, qword [rsp + 0xe8]
mov eax, ebx
mov dword [rsp + 0x160], ebx
mov rbp, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x80]
jmp 0x4adef0
mov r8, qword [r10]
cmp qword [rsp + 0xb8], 0
mov rbp, qword [rsp + 0xe0]
mov r10, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xe8]
lea rsi, [0x00607536]
lea r9, [0x006034f1]
lea rdi, [0x0060753e]
jne 0x4ae33a
xor eax, eax
jmp 0x4addd8
test cl, cl
je 0x4ade3d
add rax, 1
movzx ecx, byte [r8 + rax]
movzx edx, byte [rax + rsi]
cmp cl, dl
je 0x4addd0
movzx ecx, byte [rcx + r13]
cmp cl, byte [rdx + r13]
je 0x4addd4
xor eax, eax
jmp 0x4addfc
test cl, cl
je 0x4ade3d
add rax, 1
movzx ecx, byte [r8 + rax]
movzx edx, byte [rax + r9]
cmp cl, dl
je 0x4addf4
movzx ecx, byte [rcx + r13]
cmp cl, byte [rdx + r13]
je 0x4addf8
xor eax, eax
jmp 0x4ade2c
movzx ecx, byte [rcx + r13]
cmp cl, byte [rdx + r13]
jne 0x4ae33a
add rax, 1
movzx ecx, byte [r8 + rax]
movzx edx, byte [rax + rdi]
cmp cl, dl
jne 0x4ade19
test cl, cl
jne 0x4ade28
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov qword [rsp + 0x110], rax
mov al, 1
mov qword [rsp + 0xf0], rax
mov rsi, 0xffffffffffffffff
mov eax, ebx
mov dword [rsp + 0x160], ebx
mov rdi, r10
jmp 0x4adefc
cmp qword [rsp + 0xb8], 0
sete r10b
setne bl
lea rax, [rcx + rcx*2]
movzx edx, word [r9 + rax*8 + 0x12]
mov eax, edx
xor eax, 0xfffe
test ax, dx
sete al
setne r11b
cmp r10b, al
mov rbp, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x80]
jne 0x4aded3
or bl, r11b
xor bl, 1
jne 0x4aded3
mov al, 1
mov qword [rsp + 0x1d0], rax
mov r11, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xe8]
jmp 0x4adef0
mov eax, edx
xor eax, 0xff9f
test ax, dx
mov r11, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xe8]
jne 0x4af404
mov dword [rbp + rcx*4], ebx
lea rax, [rcx + rcx*2]
mov r9, qword [r9 + rax*8]
mov rcx, qword [rdi]
mov rax, qword [rcx + 0x1f8]
test rax, rax
je 0x4adaae
cmp byte [rcx + 0xc5], 0
jne 0x4adaae
cmp byte [rdi + 0x124], 0
jne 0x4adaae
mov r8, qword [r11]
mov rdx, qword [r12 + 0x20]
mov rbp, qword [rsp + 0x188]
mov rdx, qword [rdx + rbp]
mov rcx, qword [rcx + 0x200]
mov rbp, qword [rdi + 0x168]
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rdx
mov edx, 0x17
call rax
cmp eax, 1
je 0x4af5f4
mov ecx, eax
not ecx
or ecx, 2
cmp ecx, 0xffffffff
jne 0x4af60c
cmp eax, 2
mov rbp, qword [rsp + 0xe0]
mov r11, qword [rsp + 0x70]
jne 0x4adaae
movsxd rax, esi
mov dword [rbp + rax*4], 0xffffffff
jmp 0x4adaae
xor ebp, ebp
mov r14, qword [rsp + 0x88]
mov r13, qword [rsp + 0xa0]
jmp 0x4ad58a
mov r14, qword [rsp + 0x88]
jmp 0x4ad58a
mov dword [rsp + 0x160], 0xffffffff
xor eax, eax
mov qword [rsp + 0x1d0], rax
xor eax, eax
mov qword [rsp + 0xf0], rax
xor eax, eax
mov qword [rsp + 0x110], rax
mov rcx, qword [rsp + 0xa0]
mov r11, qword [rsp + 0x70]
mov rax, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0x1d0]
add eax, edx
mov dword [rsp + 0x188], eax
mov eax, dword [r11 + 0x30]
not eax
or eax, 0xffffff9f
cmp eax, 0xffffffff
mov r13, rcx
je 0x4ae209
movzx eax, word [r11 + 0x36]
xorps xmm6, xmm6
lea r12, [0x0051ae50]
lea r15, [rsp + 0x190]
jmp 0x4ae04c
mov rdi, qword [rsp + 0x80]
test esi, esi
je 0x4ae209
test ax, ax
jle 0x4ae209
cmp byte [rsp + 0xf0], 0
je 0x4ae12d
xor edi, edi
mov ebx, 0x12
xor esi, esi
jmp 0x4ae082
add rdi, 1
movsx rax, word [r11 + 0x36]
add rbx, 0x18
cmp rdi, rax
jge 0x4ae03c
cmp dword [rbp + rdi*4], 0
jns 0x4ae070
mov rax, qword [r11 + 8]
movzx ecx, word [rax + rbx]
not ecx
or ecx, 0xff9f
cmp cx, 0xffff
je 0x4ae070
movzx eax, word [rax + rbx - 2]
test eax, eax
je 0x4ae0af
cmp byte [r11 + 0x3f], 0
je 0x4ae110
xor edx, edx
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x198], r12
mov qword [rsp + 0x1b8], rbp
test rdx, rdx
je 0x4ae070
mov rcx, r15
call fcn.004cea30
mov r11, qword [rsp + 0x70]
cmp word [rsp + 0x1b4], 0
je 0x4ae070
mov dword [rbp + rdi*4], 0x1869f
mov esi, 1
jmp 0x4ae070
mov rcx, qword [r11 + 0x50]
test rcx, rcx
je 0x4ae0af
cmp dword [rcx], eax
jl 0x4ae0af
add eax, 0xffffffff
cdqe
shl rax, 5
mov rdx, qword [rcx + rax + 8]
jmp 0x4ae0b1
xor ebx, ebx
mov edi, 0x12
xor esi, esi
jmp 0x4ae156
add rbx, 1
movsx rax, word [r11 + 0x36]
add rdi, 0x18
cmp rbx, rax
jge 0x4ae03c
cmp dword [rbp + rbx*4], 0
jns 0x4ae140
mov rax, qword [r11 + 8]
movzx ecx, word [rax + rdi]
mov edx, ecx
xor edx, 0xff9f
test dx, cx
je 0x4ae140
movzx eax, word [rax + rdi - 2]
test eax, eax
je 0x4ae182
cmp byte [r11 + 0x3f], 0
je 0x4ae1e9
xor edx, edx
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x198], r12
mov qword [rsp + 0x1b8], rbp
test rdx, rdx
je 0x4ae140
mov rcx, r15
call fcn.004cea30
mov r11, qword [rsp + 0x70]
mov eax, dword [rsp + 0x1b4]
mov ecx, eax
xor ecx, 2
test cx, ax
je 0x4ae140
mov dword [rbp + rbx*4], 0x1869f
mov esi, 1
jmp 0x4ae140
mov rcx, qword [r11 + 0x50]
test rcx, rcx
je 0x4ae182
cmp dword [rcx], eax
jl 0x4ae182
add eax, 0xffffffff
cdqe
shl rax, 5
mov rdx, qword [rcx + rax + 8]
jmp 0x4ae184
mov al, byte [r11 + 0x3f]
xor ecx, ecx
cmp al, 1
sete cl
neg rcx
mov rdx, qword [rsp + 0x88]
mov qword [rdx + 0x58], rcx
mov r12d, dword [rsp + 0x188]
movzx ecx, r12b
mov dword [rsp + 0x154], ecx
test al, al
jne 0x4ae5b3
mov rax, qword [rdi]
mov eax, dword [rax + 0x30]
and eax, 0x4000
test rax, rax
je 0x4ae5b3
mov al, 1
test al, al
je 0x4ae5b3
mov rax, qword [r11 + 0x48]
test rax, rax
je 0x4ae365
test r12b, r12b
je 0x4ae3c6
mov dword [rsp + 0xc8], 1
xor r15d, r15d
lea r8, [0x005fade0]
jmp 0x4ae2a7
mov r15d, 1
mov dword [rsp + 0xc8], 2
mov rax, qword [rax + 8]
test rax, rax
je 0x4ae373
mov edx, dword [rax + 0x28]
test edx, edx
jle 0x4ae29a
shl rdx, 4
xor ebp, ebp
xor ebx, ebx
nop word [rax + rax]
movsxd rdi, dword [rax + rbp + 0x40]
mov rcx, qword [rsp + 0xe0]
cmp dword [rcx + rdi*4], 0
jns 0x4ae2eb
movsx esi, word [r11 + 0x34]
cmp edi, esi
je 0x4ae2eb
add rbx, 1
add rbp, 0x10
cmp rdx, rbp
jne 0x4ae2c0
jmp 0x4ae29a
mov rbx, qword [r11]
mov rdx, qword [rax + 0x10]
mov r15d, 1
test rbx, rbx
je 0x4ae32c
test rdx, rdx
je 0x4ae29a
xor ebp, ebp
jmp 0x4ae315
movzx ecx, byte [rdi + r8]
cmp cl, byte [rsi + r8]
jne 0x4ae29a
add rbp, 1
movzx edi, byte [rbx + rbp]
movzx esi, byte [rdx + rbp]
cmp dil, sil
jne 0x4ae306
test dil, dil
jne 0x4ae311
jmp 0x4ae289
test rdx, rdx
jne 0x4ae29a
jmp 0x4ae289
lea rdx, [0x00604a92]
mov rsi, r10
mov rcx, r10
call fcn.00419aa0
mov byte [rsi + 0x1d], 1
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
jmp 0x4ad58a
xor r15d, r15d
mov dword [rsp + 0xc8], 1
mov rcx, qword [r11]
mov r8, qword [r11 + 0x60]
mov rdi, qword [r8 + 0x60]
test rdi, rdi
je 0x4ae3b9
mov bl, byte [rcx]
test bl, bl
je 0x4ae478
lea rdx, [rcx + 1]
xor eax, eax
lea rbp, [0x005fade0]
movzx ebx, bl
movzx ebx, byte [rbx + rbp]
add ebx, eax
imul eax, ebx, 0x9e3779b1
movzx ebx, byte [rdx]
add rdx, 1
test bl, bl
jne 0x4ae39a
jmp 0x4ae47a
lea rdx, [r8 + 0x54]
add r8, 0x58
jmp 0x4ae48f
mov dword [rsp + 0xc8], 1
xor r15d, r15d
lea r8, [0x005fade0]
jmp 0x4ae3fb
mov r15d, 1
mov dword [rsp + 0xc8], 2
mov rax, qword [rax + 8]
test rax, rax
je 0x4ae373
mov edx, dword [rax + 0x28]
test edx, edx
jle 0x4ae3ee
shl rdx, 4
xor ebp, ebp
xor ebx, ebx
movsxd rdi, dword [rax + rbp + 0x40]
mov rcx, qword [rsp + 0xe0]
cmp dword [rcx + rdi*4], 0
jns 0x4ae42c
add rbx, 1
add rbp, 0x10
cmp rdx, rbp
jne 0x4ae40a
jmp 0x4ae3ee
mov rbx, qword [r11]
mov rdx, qword [rax + 0x10]
mov r15d, 1
test rbx, rbx
je 0x4ae46a
test rdx, rdx
je 0x4ae3ee
xor ebp, ebp
jmp 0x4ae450
test dil, dil
je 0x4ae3dd
add rbp, 1
movzx edi, byte [rbx + rbp]
movzx esi, byte [rdx + rbp]
cmp dil, sil
je 0x4ae447
movzx ecx, byte [rdi + r8]
cmp cl, byte [rsi + r8]
je 0x4ae44c
jmp 0x4ae3ee
test rdx, rdx
jne 0x4ae3ee
jmp 0x4ae3dd
xor eax, eax
xor edx, edx
div dword [r8 + 0x50]
shl rdx, 4
lea r8, [rdi + rdx]
add r8, 8
add rdx, rdi
mov rbp, qword [rsp + 0xe0]
mov edx, dword [rdx]
lea r9, [0x0213b3c8]
test edx, edx
mov ebx, dword [rsp + 0x154]
je 0x4ae506
lea rdi, [0x005fade0]
mov r8, qword [r8]
add edx, 0xffffffff
mov rsi, qword [r8 + 0x18]
xor ebp, ebp
jmp 0x4ae4cd
movzx ebx, byte [rbx + rdi]
cmp bl, byte [rax + rdi]
jne 0x4ae4df
add rbp, 1
movzx ebx, byte [rsi + rbp]
movzx eax, byte [rcx + rbp]
cmp bl, al
jne 0x4ae4c0
test bl, bl
jne 0x4ae4c9
jmp 0x4ae4f4
test edx, edx
mov ebx, dword [rsp + 0x154]
jne 0x4ae4b2
mov rbp, qword [rsp + 0xe0]
jmp 0x4ae506
mov r9, r8
mov rbp, qword [rsp + 0xe0]
mov ebx, dword [rsp + 0x154]
mov rsi, qword [r9 + 0x10]
test rsi, rsi
mov rdi, qword [rsp + 0x80]
jne 0x4ae571
test r15d, r15d
je 0x4ae5b3
xor esi, esi
cmp dword [rsp + 0x2d0], 5
mov rax, qword [rsp + 0xc0]
jne 0x4ae5d6
mov dword [rsp + 0x16c], 1
mov esi, 1
mov rbx, qword [rax]
test rbx, rbx
mov r8, qword [rsp + 0xb8]
jne 0x4ae5ea
xor eax, eax
jmp 0x4ae8ea
mov rsi, qword [rsi + 0x18]
test rsi, rsi
mov r11, qword [rsp + 0x70]
je 0x4ae517
mov rcx, r11
mov rdx, rsi
mov r8, rbp
mov r9d, ebx
call fcn.0050eab0
test eax, eax
je 0x4ae563
mov r15d, 1
cmp byte [rsi + 0x2e], 0
je 0x4ae563
mov dword [rsp + 0xc8], 2
xor esi, esi
cmp dword [rsp + 0x2d0], 5
mov rax, qword [rsp + 0xc0]
jne 0x4ae5d6
jmp 0x4ae538
mov dword [rsp + 0xc8], 0
xor esi, esi
cmp dword [rsp + 0x2d0], 5
mov rax, qword [rsp + 0xc0]
je 0x4ae538
mov rbx, qword [rax]
test rbx, rbx
mov r8, qword [rsp + 0xb8]
je 0x4ae55c
mov dword [rsp + 0xe8], esi
test r12b, r12b
setne r12b
cmp dword [rsp + 0xc8], 1
setg al
mov ecx, r12d
and cl, al
xor r12b, al
or r12b, cl
xor r15d, r15d
xorps xmm6, xmm6
jmp 0x4ae656
mov r13, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x80]
lea rax, [r15 + 1]
mov rcx, qword [rsp + 0x100]
mov byte [r15 + rcx + 1], 0
xor ecx, ecx
mov rdx, qword [rsp + 0x118]
mov dword [rdx + r15*4], ecx
mov rbx, qword [rbx + 0x28]
mov r15, rax
test rbx, rbx
je 0x4ae8dc
cmp rbx, r8
sete al
test r12b, al
jne 0x4ae6df
xor al, r12b
jne 0x4ae6df
mov rdx, qword [rbx + 0x48]
test rdx, rdx
je 0x4ae705
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x1b0], 0
lea rax, [0x0051ae50]
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1b8], rbp
lea rcx, [rsp + 0x190]
call fcn.004cea30
movzx eax, word [rsp + 0x1b4]
cmp byte [rsp + 0xf0], 0
jne 0x4ae6d2
and eax, 0xfffd
mov word [rsp + 0x1b4], ax
test ax, ax
mov r8, qword [rsp + 0xb8]
je 0x4ae705
mov eax, dword [rdi + 0x38]
movzx ecx, word [rbx + 0x60]
lea edx, [rax + rcx]
add edx, 1
mov ecx, eax
add ecx, 1
mov dword [rdi + 0x38], edx
test ecx, ecx
je 0x4ae626
lea rax, [r15 + 1]
jmp 0x4ae63a
cmp word [rbx + 0x5e], 0
je 0x4ae626
cmp byte [rsp + 0xf0], 0
je 0x4ae7d8
mov edi, 4
xor esi, esi
jmp 0x4ae755
mov eax, dword [rbp + rax*4]
not eax
shr eax, 0x1f
test eax, eax
jne 0x4ae88d
add rsi, 1
movzx eax, word [rbx + 0x5e]
add rdi, 0x10
cmp rsi, rax
mov r13, qword [rsp + 0xa0]
jae 0x4ae61e
mov rax, qword [rbx + 8]
movzx eax, word [rax + rsi*2]
test ax, ax
jns 0x4ae727
mov rax, qword [rbx + 0x50]
mov rdx, qword [rax + rdi*2]
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x1b0], 0
lea rax, [0x0051ae50]
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1b8], rbp
test rdx, rdx
je 0x4ae7c1
lea rcx, [rsp + 0x190]
call fcn.004cea30
mov r8, qword [rsp + 0xb8]
movzx ecx, word [rsp + 0x1b4]
jmp 0x4ae7c3
xor ecx, ecx
xor eax, eax
test cx, cx
setne al
test eax, eax
je 0x4ae738
jmp 0x4ae88d
mov edi, 4
xor r13d, r13d
jmp 0x4ae808
mov ecx, dword [rbp + rax*4]
not ecx
shr ecx, 0x1f
test ecx, ecx
jne 0x4ae88d
add r13, 1
movzx eax, word [rbx + 0x5e]
add rdi, 0x10
cmp r13, rax
jae 0x4ae616
mov rax, qword [rbx + 8]
movzx eax, word [rax + r13*2]
test ax, ax
jns 0x4ae7e2
mov rax, qword [rbx + 0x50]
mov rdx, qword [rax + rdi*2]
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x1b0], 0
lea rax, [0x0051ae50]
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1b8], rbp
test rdx, rdx
je 0x4ae875
lea rcx, [rsp + 0x190]
call fcn.004cea30
mov r8, qword [rsp + 0xb8]
movzx eax, word [rsp + 0x1b4]
jmp 0x4ae877
xor eax, eax
not eax
or eax, 2
xor ecx, ecx
cmp ax, 0xffff
setne cl
test ecx, ecx
je 0x4ae7f3
mov rdi, qword [rsp + 0x80]
mov eax, dword [rdi + 0x38]
lea ecx, [rax + 1]
movzx edx, word [rbx + 0x60]
add eax, edx
add eax, 1
mov dword [rdi + 0x38], eax
cmp dword [rsp + 0x2d0], 0xb
mov r13, qword [rsp + 0xa0]
jne 0x4ae6f4
cmp byte [rbx + 0x62], 5
mov eax, dword [rsp + 0xe8]
mov edx, 1
cmove eax, edx
mov dword [rsp + 0xe8], eax
jmp 0x4ae6f4
mov esi, dword [rsp + 0xe8]
mov dword [rsp + 0x16c], esi
mov ecx, dword [rdi + 0x38]
add ecx, 1
mov dword [rdi + 0x38], ecx
not eax
mov edx, 0xffffffff
not rdx
or rdx, rax
not rdx
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x148], rdx
mov dword [rax + rdx*4], ecx
test esi, esi
mov r15, qword [rsp + 0x170]
mov r12, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x130]
je 0x4ae94e
mov rcx, qword [rsp + 0x100]
mov dl, 1
mov r8, qword [rsp + 0xd8]
call fcn.005f4c10
cmp byte [rdi + 0x1e], 0
jne 0x4ae96a
mov eax, dword [rsi + 0xc8]
mov ecx, eax
and ecx, 0x10
xor eax, 0x10
or eax, ecx
mov dword [rsi + 0xc8], eax
test rbx, rbx
sete bl
cmp dword [rsp + 0xc8], 0
sete al
mov ecx, ebx
xor cl, al
or bl, al
xor bl, 1
or bl, cl
mov rsi, qword [rdi + 0xa0]
test rsi, rsi
cmove rsi, rdi
mov edi, 1
mov ecx, r14d
shl edi, cl
mov edx, 0xfffffffe
rol edx, cl
mov eax, dword [rsi + 0x74]
mov ecx, eax
not ecx
or edx, ecx
cmp edx, 0xffffffff
mov r11, qword [rsp + 0x70]
jne 0x4ae9d6
mov ecx, eax
and ecx, edi
xor eax, edi
or eax, ecx
mov dword [rsi + 0x74], eax
cmp r14d, 1
jne 0x4ae9d6
mov rcx, rsi
call fcn.004306d0
mov r11, qword [rsp + 0x70]
mov eax, dword [rsi + 0x70]
mov ecx, eax
not ecx
mov edx, edi
not edx
mov ebp, ecx
and ebp, 0x6473c724
and eax, 0x9b8c38db
or eax, ebp
or ecx, edx
and edx, 0x6473c724
and edi, 0x9b8c38db
or edi, edx
xor edi, eax
not ecx
or ecx, edi
mov dword [rsi + 0x70], ecx
mov al, byte [rsi + 0x20]
mov ecx, eax
and cl, bl
xor al, bl
or al, cl
mov byte [rsi + 0x20], al
mov dword [rsp + 0xd8], 0
cmp byte [r11 + 0x3f], 1
mov dword [rsp + 0xd4], 0
mov ebx, 0
mov dword [rsp + 0xe8], 0
mov r10d, 0
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
je 0x4aeb3b
cmp dword [rsp + 0xc8], 0
setne r8b
mov rbp, qword [rsp + 0x130]
test rbp, rbp
sete dl
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x148]
mov r10d, dword [rax + rcx*4]
mov ecx, dword [rdi + 0x38]
lea esi, [rcx + 1]
mov dword [rdi + 0x38], esi
cmp byte [rsp + 0x1d0], 0
sete bl
mov eax, edx
xor al, bl
or dl, bl
xor dl, 1
or dl, al
test dl, r8b
jne 0x4aeac2
mov dword [rsp + 0xe8], 0
xor dl, r8b
mov eax, esi
je 0x4aead6
add ecx, 2
movsx eax, word [r11 + 0x36]
add eax, esi
mov dword [rdi + 0x38], eax
mov dword [rsp + 0xe8], ecx
mov dword [rsp + 0xd8], esi
cmp dword [rsp + 0xc8], 0
setne r8b
test rbp, rbp
sete dl
cmp byte [rsp + 0x188], 0
sete bl
mov ecx, edx
xor cl, bl
or dl, bl
xor dl, 1
or dl, cl
test dl, r8b
jne 0x4aeb1f
xor dl, r8b
jne 0x4aeb1f
mov ecx, dword [rsp + 0xd8]
mov dword [rsp + 0xd4], ecx
jmp 0x4aeb2e
add eax, 1
mov dword [rdi + 0x38], eax
mov ecx, eax
mov dword [rsp + 0xd4], eax
lea ebx, [rax + 1]
movsx ecx, word [r11 + 0x36]
add ecx, eax
mov dword [rdi + 0x38], ecx
cmp byte [rsp + 0xac], 2
mov rbp, qword [rsp + 0xe0]
jne 0x4aec6b
mov rax, qword [r11]
mov rcx, qword [rdi + 0x168]
mov qword [rsp + 0x208], rcx
mov qword [rdi + 0x168], rax
cmp dword [rsp + 0x90], 0
je 0x4aec97
xor esi, esi
mov rax, rdi
mov qword [rsp + 0x158], rdi
cmp byte [r11 + 0x3f], 1
je 0x4aed84
mov dword [rsp + 0x12c], ebx
mov eax, dword [rdi + 0x44]
mov qword [rsp + 0x1f8], rax
add eax, 0xffffffff
mov dword [rsp + 0xfc], eax
mov dword [rdi + 0x44], eax
mov rax, qword [r12 + 0x30]
mov ecx, 0xffffffff
add rcx, 1
xor rcx, rax
not rcx
xor r14d, r14d
test rcx, rax
je 0x4afa78
cmp qword [rdi + 0xa8], 0
jne 0x4afa78
cmp byte [rdi + 0x1e], 0
jne 0x4afa78
cmp qword [rsp + 0x2d8], 0
jne 0x4afa78
cmp byte [rdi + 0xd5], 0
jne 0x4afa78
mov al, 1
test al, al
je 0x4afa78
mov ebx, r10d
mov r14d, dword [rdi + 0x38]
add r14d, 1
mov dword [rdi + 0x38], r14d
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4afa58
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 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 0x4afa70
xor eax, eax
mov qword [rsp + 0x208], rax
mov eax, 0
mov qword [rsp + 0x158], rax
mov esi, 0
cmp dword [rsp + 0x90], 0
jne 0x4aed79
jmp 0x4aecc3
mov rcx, rdi
mov rdx, r11
mov r8, r15
mov r9d, dword [rsp + 0x98]
mov esi, r10d
call fcn.0050d020
mov r10d, esi
mov r11, qword [rsp + 0x70]
mov rax, rdi
mov qword [rsp + 0x158], rdi
test r15, r15
je 0x4aed76
mov esi, dword [rsp + 0x238]
mov eax, esi
and eax, 0xf7ff6fef
mov dword [rsp + 0x238], eax
mov rcx, qword [rsp + 0x210]
mov qword [rsp + 0x190], rcx
mov eax, esi
xor eax, 0xfff7ffff
xor edx, edx
test eax, esi
lea rax, [0x004d8f00]
cmove rdx, rax
lea rax, [fcn.004d5a10]
mov qword [rsp + 0x198], rax
mov qword [rsp + 0x1a0], rdx
mov qword [rsp + 0x1a8], 0
lea rax, [rsp + 0x210]
mov qword [rsp + 0x1b8], rax
mov eax, dword [r15 + 0x28]
add eax, dword [rcx + 0x12c]
mov dword [rcx + 0x12c], eax
mov rdx, qword [rcx]
mov r8d, dword [rdx + 0x94]
cmp r8d, eax
jge 0x4af160
lea rdx, [0x00603afc]
call fcn.00419aa0
mov rdi, qword [rsp + 0x158]
jmp 0x4b2d01
mov sil, 1
cmp byte [r11 + 0x3f], 1
jne 0x4aeb90
mov rdx, qword [rdi]
mov rcx, qword [rdi + 0x10]
mov rax, qword [r11 + 0x50]
test rax, rax
mov qword [rsp + 0xc8], rdx
je 0x4aedaa
cmp qword [rax], rdx
je 0x4aedac
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x4aed9c
xor eax, eax
mov qword [rsp + 0x78], rax
movsx edx, word [r11 + 0x36]
lea ebx, [rdx + 2]
mov eax, dword [r14 + 0x4c]
mov dword [rsp + 0xe8], eax
mov esi, dword [rdi + 0x34]
lea eax, [rsi + 1]
mov dword [rdi + 0x34], eax
mov eax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rdx
jle 0x4aee2b
mov qword [rsp + 0x100], rax
cdqe
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x76
mov dword [rcx + rax*8 + 4], esi
mov dword [rcx + rax*8 + 8], ebx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4aee50
mov dword [rsp + 0x20], 0
mov edx, 0x76
mov r8d, esi
mov r9d, ebx
call fcn.0047df60
mov r11, qword [rsp + 0x70]
mov qword [rsp + 0x100], rax
mov ecx, dword [rdi + 0x38]
lea eax, [rcx + 1]
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x160], rcx
lea eax, [rcx + rbx]
mov dword [rdi + 0x38], eax
cmp dword [r14], 2
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x118], rbx
jl 0x4aeebc
cmp byte [r11 + 0x30], 0
js 0x4af279
mov rdx, qword [rsp + 0x110]
test rdx, rdx
je 0x4af31d
xor r14d, r14d
mov rcx, qword [rsp + 0xc8]
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov rsi, rax
jmp 0x4af6fb
mov qword [rsp + 0x130], rax
add eax, 2
mov dword [rsp + 0xac], eax
mov dword [rdi + 0x38], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x38], 0
mov word [rsp + 0x30], 4
mov rcx, rdi
mov rdx, r14
mov r8, r15
xor r9d, r9d
call fcn.004e3b40
mov rcx, rax
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x4b212b
mov r8, qword [rsp + 0x70]
cmp word [r8 + 0x36], 0
mov rdi, qword [rsp + 0x90]
jle 0x4af0f2
mov rax, qword [rsp + 0x160]
lea r15d, [rax + 3]
xor esi, esi
jmp 0x4aef78
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, ebp
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov r8, qword [rsp + 0x70]
add rsi, 1
movsx rax, word [r8 + 0x36]
cmp rsi, rax
mov r14, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xe0]
jge 0x4af0f2
mov eax, dword [rbp + rsi*4]
test eax, eax
js 0x4af055
mov rcx, qword [rsp + 0x80]
cmp qword [rcx + 0x10], 0
je 0x4aef56
shl rax, 5
mov r14, qword [r13 + rax + 8]
lea rbp, [r15 + rsi]
mov rcx, qword [rsp + 0x80]
mov rdx, r14
mov r8d, ebp
call fcn.004c68a0
mov rdi, qword [rsp + 0x90]
mov r8, qword [rsp + 0x70]
cmp ebp, eax
je 0x4aef56
test r14, r14
je 0x4aefe6
mov ebx, dword [r14 + 4]
mov ecx, ebx
xor ecx, 0xffbfffff
mov edx, 0x50
test ecx, ebx
mov rbx, qword [rsp + 0x118]
jne 0x4aefeb
mov edx, 0x51
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x10]
movsxd r9, dword [rcx + 0x90]
cmp dword [rcx + 0x94], r9d
jle 0x4aef36
lea ebx, [r9 + 1]
mov dword [rcx + 0x90], ebx
mov rcx, qword [rcx + 0x88]
lea rbx, [r9 + r9*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], ebp
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 + 0x118]
jmp 0x4aef56
lea rax, [r15 + rsi]
movsxd rcx, dword [rdi + 0x90]
cmp dword [rdi + 0x94], ecx
jle 0x4af0a1
lea edx, [rcx + 1]
mov dword [rdi + 0x90], edx
mov rdx, qword [rdi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0xaf
mov ebp, dword [rsp + 0xe8]
mov dword [rdx + rcx*8 + 4], ebp
mov dword [rdx + rcx*8 + 8], esi
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4af0ca
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov edx, 0xaf
mov r8d, dword [rsp + 0xe8]
mov r9d, esi
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov r8, qword [rsp + 0x70]
mov eax, dword [rdi + 0x90]
test eax, eax
jle 0x4aef56
mov rcx, qword [rdi + 0x88]
add eax, 0xffffffff
lea rax, [rax + rax*2]
mov word [rcx + rax*8 + 2], 1
jmp 0x4aef56
cmp byte [r8 + 0x30], 0
js 0x4af382
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
mov rbp, qword [rsp + 0x160]
jle 0x4af418
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov edx, dword [rsp + 0xe8]
mov dword [rcx + rax*8 + 4], edx
mov rdx, qword [rsp + 0xf0]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4af445
mov dword [rsp + 0x124], r10d
mov dword [rsp + 0x12c], ebx
mov r14d, esi
not r14d
or r14d, 0xf7ff6fef
lea rcx, [rsp + 0x190]
mov rdx, r15
call fcn.004cea30
mov r8, qword [rsp + 0x190]
mov ecx, dword [r15 + 0x28]
sub dword [r8 + 0x12c], ecx
mov ecx, dword [rsp + 0x238]
mov edx, ecx
xor edx, 0xffff7fef
and edx, ecx
mov ebx, dword [r15 + 4]
mov ebp, ebx
not ebp
mov eax, edx
not eax
mov edi, ebp
and edi, 0x8bba56c2
and ebx, 0x7445a93d
or ebx, edi
or ebp, eax
and eax, 0x8bba56c2
and edx, 0x7445a93d
or edx, eax
xor edx, ebx
not ebp
or ebp, edx
mov dword [r15 + 4], ebp
mov rbp, qword [rsp + 0xe0]
mov eax, ecx
not eax
mov edx, eax
and edx, 0x73ccbd9e
and ecx, 0x8c334261
or ecx, edx
or eax, r14d
and r14d, 0x73ccbd9e
and esi, 0x8000000
or esi, r14d
mov r14, qword [rsp + 0x88]
xor esi, ecx
not eax
or eax, esi
mov dword [rsp + 0x238], eax
cmp dword [rsp + 0x234], 0
mov rdi, qword [rsp + 0x158]
jg 0x4b2d01
cmp dword [r8 + 0x30], 0
jg 0x4b2d01
mov sil, 1
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov ebx, dword [rsp + 0x12c]
mov r10d, dword [rsp + 0x124]
cmp byte [r11 + 0x3f], 1
je 0x4aed84
jmp 0x4aeb90
mov rax, qword [rsp + 0xc0]
mov r14, qword [rax]
test r14, r14
je 0x4af2a0
mov eax, dword [r14 + 0x64]
not eax
or eax, 0xfffffffc
cmp eax, 0xfffffffd
je 0x4af2a3
mov r14, qword [r14 + 0x28]
test r14, r14
jne 0x4af289
xor r14d, r14d
mov rax, qword [r14 + 8]
movsx rdi, word [rax]
mov eax, dword [rbp + rdi*4]
test eax, eax
js 0x4af572
shl rax, 5
mov rdx, qword [r13 + rax + 8]
test rdx, rdx
je 0x4af6f1
mov rcx, qword [rsp + 0xc8]
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov rsi, rax
jmp 0x4af6f3
lea rdx, [0x00603afc]
call fcn.00419aa0
mov r15, qword [rsp + 0x170]
mov r12, qword [rsp + 0x178]
jmp 0x4ae350
mov r12, qword [rsp + 0x178]
mov r13, rax
mov r14, qword [rsp + 0x88]
jmp 0x4ad58a
mov rcx, qword [rdi]
mov edx, 0x48
call fcn.00429840
mov rsi, rax
test rax, rax
je 0x4af37a
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi + 0x40], 0
mov byte [rsi], 0x4b
mov word [rsi + 0x32], 0xffff
mov dword [rsi + 0x28], 1
mov rax, qword [rdi]
mov r8d, dword [rax + 0x94]
test r8d, r8d
jg 0x4af37a
lea rdx, [0x00603afc]
mov rcx, rdi
call fcn.00419aa0
xor r14d, r14d
jmp 0x4af6fb
mov rdx, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0x160]
mov rax, qword [rdx]
mov ecx, dword [rax + 0x64]
not ecx
or ecx, 0xfffffffc
lea rdx, [rax + 0x28]
cmp ecx, 0xfffffffd
jne 0x4af392
mov rax, qword [rax + 8]
movsx esi, word [rax]
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4af63f
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0xaf
mov edx, dword [rsp + 0xe8]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], esi
mov rdx, qword [rsp + 0xf0]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4af66b
lea rdx, [0x00604a6e]
mov rcx, rdi
call fcn.00419aa0
jmp 0x4ae350
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x87
mov r8d, dword [rsp + 0xe8]
mov r9, qword [rsp + 0xf0]
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x110]
add ebp, 2
test rdx, rdx
mov r15, qword [rsp + 0x170]
mov rsi, qword [rsp + 0xb8]
je 0x4af51f
mov rax, qword [rsp + 0x80]
cmp qword [rax + 0x10], 0
je 0x4b28a0
mov rcx, qword [rsp + 0x80]
mov r8d, ebp
call fcn.004c68a0
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x110]
cmp eax, ebp
je 0x4b28a0
mov r9, rbp
mov ecx, dword [rcx + 4]
not ecx
or ecx, 0xffbfffff
xor edx, edx
cmp ecx, 0xffffffff
sete dl
or edx, 0x50
mov rcx, qword [rsp + 0x80]
mov rcx, qword [rcx + 0x10]
movsxd rbp, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebp
jle 0x4b2880
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], r9d
mov dword [rcx + rbp*8 + 0xc], 0
mov qword [rcx + rbp*8 + 0x10], 0
mov byte [rcx + rbp*8 + 1], 0
jmp 0x4b2890
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4afa2b
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov edx, dword [rsp + 0xe8]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], ebp
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b28a0
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax]
mov edx, 0x48
call fcn.00429840
mov rsi, rax
test rax, rax
je 0x4af6f3
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x30], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x10], xmm0
mov qword [rsi + 0x40], 0
mov byte [rsi], 0x4b
mov word [rsi + 0x32], 0xffff
mov dword [rsi + 0x28], 1
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
mov r8d, dword [rax + 0x94]
test r8d, r8d
jg 0x4af5e8
lea rdx, [0x00603afc]
mov rcx, qword [rsp + 0x80]
call fcn.00419aa0
add edi, 1
mov word [rsi + 0x30], di
jmp 0x4af6f3
lea rdx, [0x005ff140]
mov rcx, rdi
call fcn.00419aa0
mov dword [rdi + 0x18], 0x17
jmp 0x4af622
lea rdx, [0x00602fdd]
mov rcx, rdi
call fcn.00419aa0
mov dword [rdi + 0x18], 1
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rbp, qword [rsp + 0xe0]
jmp 0x4ad58a
mov rax, qword [rsp + 0xf0]
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov edx, 0xaf
mov r8d, dword [rsp + 0xe8]
mov r9d, esi
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov r15, qword [rsp + 0x170]
lea r8d, [rsi + rbp]
add r8d, 3
add ebp, 2
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4af6c4
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x51
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], ebp
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4af6e4
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x51
mov r9d, ebp
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xb8]
jmp 0x4b28a0
xor esi, esi
mov rdi, qword [rsp + 0x80]
mov rcx, qword [rdi]
mov rdx, rsi
call fcn.0050cd80
mov rsi, rax
mov rax, qword [rsp + 0x70]
cmp word [rax + 0x36], 0
jle 0x4af87a
xor ebx, ebx
xorps xmm6, xmm6
jmp 0x4af745
mov rcx, qword [rdi]
mov rdx, rax
call fcn.0050cd80
mov rsi, rax
mov rax, qword [rsp + 0x70]
add rbx, 1
movsx rax, word [rax + 0x36]
cmp rbx, rax
jge 0x4af87a
mov eax, dword [rbp + rbx*4]
test eax, eax
js 0x4af777
shl rax, 5
mov rdx, qword [r13 + rax + 8]
test rdx, rdx
je 0x4af805
mov rcx, qword [rsp + 0xc8]
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
jmp 0x4af807
mov rcx, qword [rdi]
mov edx, 0x48
call fcn.00429840
mov rbp, rax
test rax, rax
je 0x4af7da
movups xmmword [rbp], xmm6
movups xmmword [rbp + 0x30], xmm6
movups xmmword [rbp + 0x20], xmm6
movups xmmword [rbp + 0x10], xmm6
mov qword [rbp + 0x40], 0
mov byte [rbp], 0x4b
mov word [rbp + 0x32], 0xffff
mov dword [rbp + 0x28], 1
mov rax, qword [rdi]
mov r8d, dword [rax + 0x94]
test r8d, r8d
jg 0x4af7d3
mov rcx, rdi
lea rdx, [0x00603afc]
call fcn.00419aa0
lea eax, [rbx + 1]
mov word [rbp + 0x30], ax
test rsi, rsi
je 0x4af84f
movsxd rax, dword [rsi]
cmp dword [rsi + 4], eax
jle 0x4af85c
lea ecx, [rax + 1]
mov dword [rsi], ecx
shl rax, 5
movups xmmword [rsi + rax + 0x10], xmm6
mov qword [rsi + rax + 0x20], 0
mov qword [rsi + rax + 8], rbp
jmp 0x4af86d
xor eax, eax
test rsi, rsi
je 0x4af720
movsxd rcx, dword [rsi]
cmp dword [rsi + 4], ecx
jle 0x4af839
lea edx, [rcx + 1]
mov dword [rsi], edx
shl rcx, 5
movups xmmword [rsi + rcx + 0x10], xmm6
mov qword [rsi + rcx + 0x20], 0
mov qword [rsi + rcx + 8], rax
jmp 0x4af72e
mov rcx, qword [rdi]
mov rdx, rsi
mov r8, rax
call fcn.0050ce50
mov rsi, rax
jmp 0x4af72e
mov rcx, qword [rdi]
mov rdx, rbp
call fcn.0050cd80
jmp 0x4af86a
mov rcx, qword [rdi]
mov rdx, rsi
mov r8, rbp
call fcn.0050ce50
mov rsi, rax
mov rbp, qword [rsp + 0xe0]
jmp 0x4af72e
mov qword [rsp + 0x28], r15
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov rdx, qword [rsp + 0xb8]
mov r8, r14
mov r9, rsi
call fcn.005161a0
test rsi, rsi
je 0x4af8b7
mov rcx, qword [rsp + 0xc8]
mov rdx, rsi
call fcn.0047fbe0
xor eax, eax
mov qword [rsp + 0xc8], rax
mov r14, qword [rsp + 0x88]
mov rsi, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x118]
cmp dword [r14], 1
jne 0x4af8ec
mov rcx, qword [rsp + 0xc8]
call fcn.004e7cc0
mov rdi, qword [rsp + 0x90]
mov eax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4af935
mov qword [rsp + 0x100], rax
cdqe
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x23
mov dword [rcx + rax*8 + 4], esi
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4af960
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x23
mov r8d, esi
xor r9d, r9d
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0x100], rax
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x98]
cmp ax, 0xffff
jl 0x4afa1d
mov al, 1
mov dword [rsp + 0x98], eax
xor esi, esi
jmp 0x4af9cf
lea edx, [rcx + 1]
mov dword [rdi + 0x90], edx
mov rdx, qword [rdi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x5e
mov rbx, qword [rsp + 0xb8]
mov dword [rdx + rcx*8 + 4], ebx
mov rbx, qword [rsp + 0x118]
mov dword [rdx + rcx*8 + 8], esi
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
add esi, 1
cmp esi, ebx
jge 0x4b2a05
mov rax, qword [rsp + 0xf0]
add eax, esi
movsxd rcx, dword [rdi + 0x90]
cmp dword [rdi + 0x94], ecx
jg 0x4af984
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov edx, 0x5e
mov r8, qword [rsp + 0xb8]
mov r9d, esi
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x70]
add esi, 1
cmp esi, ebx
jl 0x4af9cf
jmp 0x4b2a05
mov al, 1
mov dword [rsp + 0x98], eax
jmp 0x4b2a05
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x87
mov r8d, dword [rsp + 0xe8]
mov r9d, ebp
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
jmp 0x4b28a0
mov dword [rsp + 0x20], 0
mov edx, 0x47
xor r8d, r8d
mov r9d, r14d
call fcn.0047df60
mov r11, qword [rsp + 0x70]
mov r10d, ebx
test sil, sil
mov qword [rsp + 0x140], rsi
mov dword [rsp + 0x204], r14d
je 0x4afae6
cmp byte [r11 + 0x30], 0
js 0x4afae6
mov rsi, qword [rsp + 0x78]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4afbf1
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r10d
mov edx, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4afc15
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x4afaf9
movzx edx, word [rax + 0x5e]
jmp 0x4afafb
xor edx, edx
mov eax, dword [rdi + 0x38]
lea ecx, [rax + 1]
mov qword [rsp + 0x138], rcx
movsx ecx, dx
mov dword [rsp + 0xb0], ecx
add eax, ecx
mov rsi, qword [rsp + 0x90]
lea ecx, [rsi + rax]
add ecx, 1
mov dword [rdi + 0x38], ecx
cmp qword [rsp + 0x2d8], 0
mov dword [rsp + 0xb4], ecx
mov dword [rsp + 0x150], edx
je 0x4afb53
xor ebx, ebx
mov edx, 0
test esi, esi
jne 0x4afe5d
jmp 0x4afee2
xor r14d, r14d
cmp byte [rsp + 0xac], 2
jne 0x4afb65
movsx r14d, word [r11 + 0x36]
mov esi, dword [rsp + 0xb0]
add esi, dword [rsp + 0x90]
mov ecx, dword [rdi + 0x34]
mov qword [rsp + 0xc0], rcx
add ecx, 1
mov dword [rdi + 0x34], ecx
mov r8, qword [rsp + 0xb8]
test r8, r8
mov rbx, qword [rsp + 0x78]
mov dword [rsp + 0x124], r10d
je 0x4afcde
movsxd rcx, dword [rbx + 0x90]
cmp dword [rbx + 0x94], ecx
jle 0x4afcba
lea edx, [rcx + 1]
mov dword [rbx + 0x90], edx
mov r9, qword [rbx + 0x88]
lea rcx, [rcx + rcx*2]
mov qword [r9 + rcx*8], 0x4b
mov rdx, qword [rsp + 0x138]
mov dword [r9 + rcx*8 + 8], edx
mov dword [r9 + rcx*8 + 0xc], eax
mov qword [r9 + rcx*8 + 0x10], 0
jmp 0x4afcde
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov edx, 0x4b
xor r8d, r8d
mov r9d, r10d
mov ebx, r10d
call fcn.0047df60
mov r10d, ebx
mov ebx, dword [rdi + 0x34]
lea eax, [rbx + 1]
mov dword [rdi + 0x34], eax
mov edx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], edx
jle 0x4afc70
movsxd rax, edx
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x76
mov dword [rcx + rax*8 + 4], ebx
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], r10d
mov qword [rcx + rax*8 + 0x10], 0
xor eax, eax
mov qword [rsp + 0x138], rax
jmp 0x4afc9a
mov dword [rsp + 0x20], r10d
xor eax, eax
mov qword [rsp + 0x138], rax
mov rcx, rsi
mov edx, 0x76
mov r8d, ebx
xor r9d, r9d
mov esi, r10d
call fcn.0047df60
mov r10d, esi
mov edx, eax
mov dword [rsp + 0x150], 0
mov dword [rsp + 0xb4], 0
mov r11, qword [rsp + 0x70]
jmp 0x4afe40
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov edx, 0x4b
xor r8d, r8d
mov r9, qword [rsp + 0x138]
call fcn.0047df60
mov r8, qword [rsp + 0xb8]
add esi, r14d
mov eax, dword [rbx + 0x90]
cmp dword [rbx + 0x94], eax
mov dword [rsp + 0xb0], esi
jle 0x4afd3d
mov dword [rsp + 0x128], eax
cdqe
lea ecx, [rax + 1]
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x76
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], esi
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4afd6c
mov dword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 0x76
mov r8, qword [rsp + 0xc0]
mov r9d, esi
call fcn.0047df60
mov r8, qword [rsp + 0xb8]
mov dword [rsp + 0x128], eax
test r8, r8
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x140]
je 0x4afdef
mov rcx, rdi
mov rdx, r8
call fcn.004c65a0
mov r8, qword [rsp + 0xb8]
test rax, rax
je 0x4afdef
mov ecx, dword [rsp + 0xb0]
mov word [rax + 8], cx
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
je 0x4afdc9
mov edx, 0xfffffff8
mov r8, rax
call fcn.00444fc0
mov r8, qword [rsp + 0xb8]
jmp 0x4afdef
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rdx + 0x88]
mov edx, dword [rdx + 0x90]
add edx, 0xffffffff
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
mov byte [rcx + rdx*8 + 1], 0xf8
mov qword [rcx + rdx*8 + 0x10], rax
test sil, sil
jne 0x4afe2c
mov qword [rsp + 0x28], r15
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov edx, ebx
mov r9, r13
call fcn.005161a0
cmp byte [rsp + 0xac], 2
mov eax, dword [rsp + 0x98]
cmove eax, ebx
mov dword [rsp + 0x98], eax
mov r11, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x124]
mov edx, dword [rsp + 0x128]
cmp dword [rsp + 0x90], 0
je 0x4afed3
movsx eax, word [rsp + 0x150]
mov dword [rsp + 0xb0], eax
mov qword [rsp + 0xc0], rbx
mov rax, qword [rdi + 0xa0]
test rax, rax
cmove rax, rdi
mov byte [rax + 0x20], 1
mov eax, 1
mov qword [rsp + 0x1f0], rax
xor eax, eax
mov qword [rsp + 0x90], rax
mov sil, 1
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1e0], rax
mov rax, qword [rsp + 0x138]
mov dword [rsp + 0xb4], eax
xor eax, eax
mov qword [rsp + 0x1e8], rax
mov r14, qword [rsp + 0x88]
mov r15, qword [rsp + 0x78]
mov bl, byte [rsp + 0xac]
jmp 0x4b0408
cmp qword [rsp + 0x2d8], 0
je 0x4b018e
mov qword [rsp + 0xc0], rbx
mov dword [rsp + 0x128], edx
mov dword [rsp + 0x124], r10d
mov rcx, rdi
mov rdx, r15
mov r8d, dword [rsp + 0xfc]
mov r9d, 0x10
call fcn.004cdaa0
xor eax, eax
mov qword [rsp + 0x1f0], rax
mov eax, 1
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x1c8], rax
mov qword [rsp + 0x1e0], rax
xor eax, eax
mov qword [rsp + 0x1e8], rax
mov r15, qword [rsp + 0x78]
mov bl, byte [rsp + 0xac]
mov r11, qword [rsp + 0x70]
cmp byte [r11 + 0x30], 0
js 0x4affb7
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b008e
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov edx, dword [rsp + 0x98]
mov dword [rcx + rax*8 + 4], edx
mov esi, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 8], esi
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b00b5
movsx eax, word [rsp + 0x150]
mov dword [rsp + 0xb0], eax
test ax, ax
mov ebp, dword [rsp + 0x98]
mov r14, qword [rsp + 0xb8]
jle 0x4b0016
mov esi, dword [rsp + 0xb0]
mov edi, dword [rsp + 0x138]
xor ebx, ebx
mov rax, qword [r14 + 8]
movsx r9d, word [rax + rbx*2]
lea eax, [rdi + rbx]
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r11
mov r8d, ebp
call fcn.004cdfb0
mov r11, qword [rsp + 0x70]
add rbx, 1
cmp rsi, rbx
jne 0x4affea
cmp dword [rsp + 0x90], 0
je 0x4b0331
mov eax, dword [rsp + 0x128]
test eax, eax
je 0x4b0068
mov rcx, qword [r15]
cmp byte [rcx + 0x67], 0
jne 0x4b0068
mov rsi, qword [r15 + 0x88]
cdqe
lea rdi, [rax + rax*2]
mov r8, qword [rsi + rdi*8 + 0x10]
movsx edx, byte [rsi + rdi*8 + 1]
call fcn.00444fc0
mov r11, qword [rsp + 0x70]
mov qword [rsi + rdi*8 + 0x10], 0
mov word [rsi + rdi*8], 0xb8
xor esi, esi
mov rax, qword [rsp + 0x138]
mov dword [rsp + 0xb4], eax
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
jmp 0x4afec7
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0x87
mov r8d, dword [rsp + 0x98]
mov esi, dword [rsp + 0xd8]
mov r9d, esi
call fcn.0047df60
mov r9d, dword [rsp + 0x124]
cmp dword [rsp + 0x90], 0
mov eax, dword [rsp + 0x128]
je 0x4b011f
test eax, eax
je 0x4b032a
mov rcx, qword [r15]
xor esi, esi
cmp byte [rcx + 0x67], 0
jne 0x4b03f0
mov rsi, qword [r15 + 0x88]
cdqe
lea rdi, [rax + rax*2]
mov r8, qword [rsi + rdi*8 + 0x10]
movsx edx, byte [rsi + rdi*8 + 1]
call fcn.00444fc0
mov qword [rsi + rdi*8 + 0x10], 0
mov word [rsi + rdi*8], 0xb8
mov rdi, qword [rsp + 0x80]
xor esi, esi
jmp 0x4b03f0
mov eax, dword [rdi + 0x38]
add eax, 1
mov dword [rdi + 0x38], eax
mov rcx, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x148]
mov dword [rcx + rdx*4], eax
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b03cb
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], pe_nt_image_headers64
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], esi
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b03e4
mov qword [rsp + 0xc0], rbx
mov dword [rsp + 0x128], edx
mov dword [rsp + 0x124], r10d
cmp dword [rsp + 0xc8], 0
sete r8b
setne cl
cmp qword [rsp + 0x130], 0
setne dl
cmp byte [rdi + 0x1e], 0
setne bl
mov eax, edx
and al, bl
xor dl, bl
or dl, al
xor cl, dl
xor dl, 1
or dl, r8b
xor dl, 1
or dl, cl
cmp byte [rsp + 0x188], 0
setne al
mov ecx, eax
and cl, dl
xor dl, al
or dl, cl
mov eax, dword [rsp + 0x16c]
test eax, eax
setne cl
xor cl, dl
not cl
movzx ecx, cl
and ecx, 1
lea ecx, [rcx*8 + 4]
test dl, 1
mov edx, 4
cmove edx, ecx
test eax, eax
cmove edx, ecx
mov rax, qword [rsp + 0x1d8]
mov dword [rsp + 0x38], eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov word [rsp + 0x30], dx
mov rcx, rdi
mov rdx, qword [rsp + 0x88]
mov r8, r15
xor r9d, r9d
call fcn.004e3b40
test rax, rax
je 0x4b27ee
mov rcx, qword [rax + 0x30]
mov rdx, rcx
mov qword [rsp + 0x1e0], rcx
shr rcx, 0x20
mov qword [rsp + 0x1c8], rcx
movzx edx, byte [rax + 0x4a]
mov rcx, rax
mov qword [rsp + 0x1e8], rax
mov eax, dword [rax + 0x4c]
and eax, 1
mov qword [rsp + 0x1f0], rax
mov eax, 1
mov qword [rsp + 0x90], rax
cmp edx, 1
je 0x4aff43
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
cmove rcx, rdi
mov byte [rcx + 0x20], 1
cmp dl, 2
jne 0x4b2fa4
mov rcx, qword [rsp + 0x1c8]
test ecx, ecx
setns al
sets dl
cmp dword [rsp + 0x98], ecx
setne cl
sete bl
xor bl, dl
mov edx, 2
mov qword [rsp + 0x90], rdx
jne 0x4b2fae
or al, cl
xor al, 1
jne 0x4b2fae
mov rax, qword [rsp + 0x1c8]
sub eax, dword [rsp + 0x108]
cdqe
xor ecx, ecx
mov rdx, qword [rsp + 0x100]
cmp byte [rdx + rax], 0
sete cl
add ecx, ecx
mov qword [rsp + 0x90], rcx
jmp 0x4b2fae
xor esi, esi
jmp 0x4b03f0
mov rcx, r12
mov rdx, qword [rsp + 0xb8]
call fcn.00506680
mov r9d, dword [rsp + 0xb0]
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0xb4]
mov dword [rsp + 0x20], esi
mov rcx, r15
mov edx, 0x61
mov rdi, qword [rsp + 0x138]
mov r8d, edi
call fcn.004c62a0
mov eax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b2803
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r15 + 0x90], edx
mov rdx, qword [r15 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x8a
mov rbp, qword [rsp + 0xc0]
mov dword [rdx + rcx*8 + 4], ebp
mov dword [rdx + rcx*8 + 8], esi
mov dword [rdx + rcx*8 + 0xc], edi
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4b281f
mov dword [rsp + 0x20], esi
mov rcx, r15
mov edx, pe_nt_image_headers64
mov r8, qword [rsp + 0xc0]
call fcn.0047df60
xor esi, esi
xor eax, eax
mov qword [rsp + 0x90], rax
mov dword [rsp + 0xb0], 0
mov r14, qword [rsp + 0x88]
mov r11, qword [rsp + 0x70]
xor eax, eax
mov qword [rsp + 0x148], rax
cmp qword [rsp + 0x2d8], 0
je 0x4b050f
mov dword [rsp + 0x100], esi
mov r12d, dword [rsp + 0xfc]
mov rsi, qword [rsp + 0x140]
mov dword [rsp + 0x108], r12d
cmp byte [rsp + 0xf0], 0
je 0x4b09ea
test sil, sil
je 0x4b0607
cmp qword [rdi + 0x10], 0
je 0x4b0984
mov rcx, rdi
mov rdx, qword [rsp + 0x110]
mov esi, dword [rsp + 0xd4]
mov r8d, esi
call fcn.004c68a0
mov r11, qword [rsp + 0x70]
cmp eax, esi
je 0x4b0984
mov rcx, qword [rsp + 0x110]
test rcx, rcx
je 0x4b04aa
mov ebp, dword [rcx + 4]
mov ecx, ebp
xor ecx, 0xffbfffff
mov edx, 0x50
test ecx, ebp
jne 0x4b04af
mov edx, 0x51
mov rcx, qword [rdi + 0x10]
movsxd rbp, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebp
jle 0x4b0962
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 eax, dword [rsp + 0xd4]
mov dword [rcx + rbp*8 + 8], eax
mov dword [rcx + rbp*8 + 0xc], 0
mov qword [rcx + rbp*8 + 0x10], 0
mov byte [rcx + rbp*8 + 1], 0
jmp 0x4b097f
cmp byte [rsp + 0x140], 0
je 0x4b053b
cmp dword [rsp + 0x90], 2
je 0x4b053b
mov al, 1
test al, al
je 0x4b053b
mov rcx, qword [rsp + 0x1e8]
call fcn.004e7cc0
mov r11, qword [rsp + 0x70]
cmp bl, 2
je 0x4b06cf
cmp dword [rsp + 0x90], 0
mov rdx, qword [rsp + 0x1c8]
mov rax, qword [rsp + 0x1e0]
je 0x4b0695
test eax, eax
js 0x4b057b
sub eax, dword [rsp + 0x108]
cdqe
mov rcx, qword [rsp + 0x100]
mov byte [rcx + rax], 0
test edx, edx
js 0x4b0596
mov eax, edx
sub eax, dword [rsp + 0x108]
cdqe
mov rcx, qword [rsp + 0x100]
mov byte [rcx + rax], 0
cmp dword [rsp + 0x90], 2
jne 0x4b0695
mov eax, edx
shr eax, 0x1f
mov rcx, qword [rsp + 0x248]
add eax, ecx
add eax, 0xfffffffe
test eax, eax
jle 0x4b0695
mov r12d, esi
mov ebp, dword [r15 + 0x90]
cmp dword [r15 + 0x94], ebp
jle 0x4b2e1e
movsxd rax, ebp
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], 0xe
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 1], xmm0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2e3b
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b0663
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x5e
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0x160]
mov dword [rcx + rax*8 + 8], edx
mov edx, dword [rsp + 0xd4]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b0984
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0x20], eax
mov rcx, r15
mov edx, 0x5e
mov r8, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0x160]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
jmp 0x4b0984
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x108]
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov rdx, r11
mov r8d, 0x71
xor r9d, r9d
call fcn.0050d2b0
mov r11, qword [rsp + 0x70]
cmp dword [rsp + 0x90], 0
je 0x4b076a
mov ecx, dword [rsp + 0x98]
cmp dword [rsp + 0x1e0], ecx
sete al
cmp dword [rsp + 0x1c8], ecx
sete cl
test cl, al
jne 0x4b08a2
xor cl, al
jne 0x4b08a2
mov eax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b084f
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r15 + 0x90], edx
mov rdx, qword [r15 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x1b
mov ebp, dword [rsp + 0x98]
mov dword [rdx + rcx*8 + 4], ebp
mov ebp, dword [rsp + 0xfc]
mov dword [rdx + rcx*8 + 8], ebp
mov ebp, dword [rsp + 0xb4]
mov dword [rdx + rcx*8 + 0xc], ebp
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4b087c
cmp qword [rsp + 0xb8], 0
sete al
setne cl
xor cl, sil
jne 0x4b07e6
mov ecx, esi
xor cl, 1
or al, cl
xor al, 1
jne 0x4b07e6
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b24d7
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x23
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xfc]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b24fc
mov eax, dword [rdi + 0x44]
add eax, 0xffffffff
mov r12d, eax
mov dword [rdi + 0x44], eax
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b2577
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x23
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xfc]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b259c
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x20], eax
mov rcx, r15
mov edx, 0x1b
mov r8d, dword [rsp + 0x98]
mov r9d, dword [rsp + 0xfc]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
mov rcx, qword [r15]
cmp byte [rcx + 0x67], 0
jne 0x4b08a2
mov rcx, qword [r15 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov edx, dword [rsp + 0xb0]
mov dword [rcx + rax*8 + 0x10], edx
mov dword [rsp + 0x100], esi
mov r12d, dword [rsp + 0xfc]
cmp dword [rsp + 0x90], 1
je 0x4b08c7
mov r12d, dword [rdi + 0x44]
add r12d, 0xffffffff
mov dword [rdi + 0x44], r12d
cmp qword [rsp + 0xb8], 0
mov r8d, dword [rsp + 0xb4]
cmove r8d, dword [rsp + 0xd8]
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
mov rsi, qword [rsp + 0x140]
jle 0x4b093b
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x32
mov dword [rcx + rax*8 + 4], r8d
mov edx, dword [rsp + 0xfc]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b0438
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0x32
mov r9d, dword [rsp + 0xfc]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
jmp 0x4b0438
mov dword [rsp + 0x20], 0
mov r8d, eax
mov r9d, dword [rsp + 0xd4]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b09c5
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0xc
mov edx, dword [rsp + 0xd4]
mov dword [rcx + rax*8 + 4], edx
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4b09ea
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0xc
mov r8d, dword [rsp + 0xd4]
xor r9d, r9d
call fcn.0047df60
mov r11, qword [rsp + 0x70]
cmp dword [rsp + 0xc8], 0
setne dl
mov rsi, qword [rsp + 0x130]
test rsi, rsi
sete al
setne r8b
cmp byte [rsp + 0x1d0], 0
setne cl
mov ebx, ecx
and bl, dl
xor cl, dl
or cl, bl
xor r8b, cl
jne 0x4b0a2f
xor cl, 1
or al, cl
xor r15d, r15d
xor al, 1
je 0x4b14f8
xor r13d, r13d
mov eax, 0
cmp dword [rsp + 0xc8], 0
je 0x4b0a51
mov rcx, rdi
mov rdx, r11
call fcn.0050ecd0
mov r11, qword [rsp + 0x70]
mov dword [rsp + 0x160], eax
cmp qword [rsp + 0xa0], 1
mov edx, 0x81
sbb edx, 0
test rsi, rsi
je 0x4b0cc2
cmp qword [rsp + 0xa0], 0
mov dword [rsp + 0x110], edx
je 0x4b0c08
xor r12d, r12d
lea r15, [0x005fade0]
mov r14, qword [rsp + 0x130]
jmp 0x4b0aaf
mov r13d, r12d
mov r14, qword [r14 + 0x40]
mov r12d, r13d
test r14, r14
je 0x4b0cc2
movzx eax, byte [r14 + 0x10]
cmp edx, eax
jne 0x4b0a9c
mov al, byte [r14 + 0x11]
not al
or al, 0xfc
cmp al, 0xff
je 0x4b0a9c
mov r10, qword [r14 + 0x20]
test r10, r10
mov r13, qword [rsp + 0xa0]
je 0x4b0b66
mov r9d, dword [r13]
test r9d, r9d
jle 0x4b0b4a
mov r8d, dword [r10]
test r8d, r8d
jle 0x4b0b4a
xor r11d, r11d
mov rax, r11
shl rax, 5
mov rcx, qword [r13 + rax + 0x10]
xor edx, edx
mov rax, rdx
shl rax, 4
mov rsi, qword [r10 + rax + 8]
xor eax, eax
jmp 0x4b0b19
test bpl, bpl
je 0x4b0b3d
add rax, 1
movzx ebp, byte [rsi + rax]
movzx edi, byte [rcx + rax]
cmp bpl, dil
je 0x4b0b10
movzx ebx, byte [rbp + r15]
cmp bl, byte [rdi + r15]
je 0x4b0b15
add rdx, 1
cmp rdx, r8
jne 0x4b0afb
jmp 0x4b0b41
test edx, edx
jns 0x4b0b66
add r11, 1
cmp r11, r9
jne 0x4b0aed
mov r13d, r12d
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov edx, dword [rsp + 0x110]
jmp 0x4b0a9f
mov r13d, 0xffffffff
cmp byte [r14 + 0x12], 0
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov edx, dword [rsp + 0x110]
jne 0x4b0a9f
mov rax, qword [rdi + 0xa0]
test rax, rax
cmove rax, rdi
mov rax, qword [rax + 0xb0]
jmp 0x4b0ba6
mov rax, qword [rax + 8]
test rax, rax
je 0x4b0bbe
cmp qword [rax], r14
jne 0x4b0ba2
mov ecx, dword [rsp + 0x2d0]
cmp dword [rax + 0x18], ecx
jne 0x4b0ba2
jmp 0x4b0bf3
mov rcx, rdi
mov rdx, r14
mov r8, r11
mov r9d, dword [rsp + 0x2d0]
call fcn.005125d0
mov edx, dword [rsp + 0x110]
mov r11, qword [rsp + 0x70]
mov rcx, qword [rdi]
mov dword [rcx + 0x54], 0xffffffff
test rax, rax
je 0x4b0a9c
mov r13d, dword [rax + 0x1c]
mov eax, r13d
and eax, r12d
xor r13d, r12d
or r13d, eax
jmp 0x4b0a9f
xor esi, esi
mov rbp, qword [rsp + 0x130]
jmp 0x4b0c27
mov r13d, esi
mov rbp, qword [rbp + 0x40]
mov esi, r13d
test rbp, rbp
je 0x4b0cc2
movzx eax, byte [rbp + 0x10]
cmp edx, eax
jne 0x4b0c14
mov al, byte [rbp + 0x11]
not al
or al, 0xfc
cmp al, 0xff
je 0x4b0c14
mov r13d, 0xffffffff
cmp byte [rbp + 0x12], 0
jne 0x4b0c17
mov rax, qword [rdi + 0xa0]
test rax, rax
cmove rax, rdi
mov rax, qword [rax + 0xb0]
jmp 0x4b0c61
mov rax, qword [rax + 8]
test rax, rax
je 0x4b0c79
cmp qword [rax], rbp
jne 0x4b0c5d
mov ecx, dword [rsp + 0x2d0]
cmp dword [rax + 0x18], ecx
jne 0x4b0c5d
jmp 0x4b0cae
mov rcx, rdi
mov rdx, rbp
mov r8, r11
mov r9d, dword [rsp + 0x2d0]
call fcn.005125d0
mov edx, dword [rsp + 0x110]
mov r11, qword [rsp + 0x70]
mov rcx, qword [rdi]
mov dword [rcx + 0x54], 0xffffffff
test rax, rax
je 0x4b0c14
mov r13d, dword [rax + 0x1c]
mov eax, r13d
and eax, esi
xor r13d, esi
or r13d, eax
jmp 0x4b0c17
cmp word [r11 + 0x36], 0
mov rbp, qword [rsp + 0x78]
jle 0x4b1159
mov eax, r13d
mov ecx, dword [rsp + 0x160]
and eax, ecx
xor r13d, ecx
or r13d, eax
cmp r13d, 0xffffffff
je 0x4b0f9d
movabs r14, 0xc6238c3752ee0e97
movabs rax, 0x7ffffffffffffffe
xor r15d, r15d
not rax
mov qword [rsp + 0x110], rax
jmp 0x4b0d5a
not r10d
or r10d, 0xfffe
cmp r10w, 0xffff
je 0x4b0dee
mov dword [rsp + 0x20], r9d
mov rcx, rbp
mov rdx, r11
mov r8d, dword [rsp + 0x98]
mov r9d, r15d
call fcn.004cdfb0
mov r11, qword [rsp + 0x70]
add r15, 1
movsx rax, word [r11 + 0x36]
cmp r15, rax
jge 0x4b1159
cmp r15, 1
mov ecx, 1
cmova rcx, r15
mov rdx, r11
mov r11, qword [r11 + 8]
lea rax, [r15 + r15*2]
movzx r10d, word [r11 + rax*8 + 0x12]
mov ebx, dword [rdx + 0x30]
mov eax, ebx
xor eax, 0xffffffdf
test eax, ebx
je 0x4b0de1
test r15w, r15w
js 0x4b0de1
movzx eax, word [r11 + 0x12]
and eax, 0x20
test r15w, r15w
je 0x4b0e46
mov r8, r15
shl r8, 0x10
sar r8, 0x10
cmp r8, 1
mov edx, 1
cmovbe r8, rdx
movabs rdx, 0x6891bfbdccb986d7
mov r9d, edx
not r9d
or r9d, edx
and r9d, ecx
and r9d, 1
cmp r15, 2
jae 0x4b0e6d
xor edx, edx
xor esi, esi
jmp 0x4b0f1c
mov esi, r15d
mov r11, qword [rsp + 0x70]
jmp 0x4b0f68
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x4b0e50
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 dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
add r15, 1
movsx rax, word [r11 + 0x36]
cmp r15, rax
jl 0x4b0d5a
jmp 0x4b1159
xor r8d, r8d
xor esi, esi
jmp 0x4b0f53
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x4b
xor r8d, r8d
call fcn.0047df60
jmp 0x4b0d43
not rcx
or rcx, qword [rsp + 0x110]
movabs rdx, 0xe9c779367303e1a3
mov rbx, rdx
not rbx
or rbx, rdx
not rcx
and rcx, rbx
xor edx, edx
xor esi, esi
movzx eax, ax
shr eax, 5
mov edi, eax
not edi
and edi, 0x329
and eax, 0x4d6
or eax, edi
xor eax, 0x328
add esi, eax
mov rbx, rdx
not rbx
mov rax, r14
not rax
mov rdi, rbx
and rdi, r14
mov rbp, rdx
and rbp, rax
or rbp, rdi
mov rdi, r14
and rdi, 0xfffffffffffffffe
mov r12d, eax
and r12d, 1
or r12, rdi
xor r12, rbp
not ebx
or eax, r14d
and eax, ebx
and eax, 1
or rax, r12
lea rax, [rax + rax*2]
movzx eax, byte [r11 + rax*8 + 0x12]
and al, 0x20
cmp al, 1
adc si, 0
add rdx, 2
lea rax, [rdx + rdx*2]
movzx eax, word [r11 + rax*8 + 0x12]
and eax, 0x20
add rcx, 0xfffffffffffffffe
jne 0x4b0e95
test r9, r9
je 0x4b0f46
lea rcx, [rdx + rdx*2]
movzx ecx, word [r11 + rcx*8 + 0x2a]
movzx eax, ax
mov edx, ecx
xor edx, 0xffffffdf
and edx, ecx
shr eax, 5
or eax, 0x47aa
xor eax, 0x47ab
add esi, eax
mov eax, edx
mov rdi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
test ax, ax
mov r11, qword [rsp + 0x70]
je 0x4b0f68
sub r8d, esi
add r8w, word [r11 + 0x38]
mov esi, r8d
movsx r9d, si
add r9d, dword [rsp + 0xe8]
cmp r15, 0x1f
ja 0x4b0d13
mov eax, 0xfffffffe
mov ecx, r15d
rol eax, cl
mov ecx, r13d
not ecx
or ecx, eax
cmp ecx, 0xffffffff
jne 0x4b0d28
jmp 0x4b0d13
movabs r12, 0xbca68e7abab45ad3
movabs r13, 0x23c6ee01b13648e9
xor r15d, r15d
movabs r14, 0x707b50e9f23d40d
jmp 0x4b0ffe
mov edx, r15d
movsx eax, dx
add eax, dword [rsp + 0xe8]
mov dword [rsp + 0x20], eax
mov rcx, rbp
mov rdx, r11
mov r8d, dword [rsp + 0x98]
mov r9d, r15d
call fcn.004cdfb0
mov r11, qword [rsp + 0x70]
add r15d, 1
movsx eax, word [r11 + 0x36]
cmp r15d, eax
jge 0x4b1159
cmp r15d, 1
mov edx, 1
cmova edx, r15d
mov eax, dword [r11 + 0x30]
mov ecx, eax
xor ecx, 0xffffffdf
test ecx, eax
je 0x4b0fc0
test r15w, r15w
js 0x4b0fc0
mov r10, qword [r11 + 8]
movzx ebx, word [r10 + 0x12]
mov eax, ebx
xor eax, 0xffffffdf
and eax, ebx
test r15w, r15w
je 0x4b1064
movsx r8d, r15w
cmp r8d, 1
mov ecx, 1
cmovbe r8d, ecx
mov r9d, r12d
not r9d
or r9d, r12d
and r9d, edx
and r9d, 1
cmp r15d, 2
jae 0x4b106e
xor ecx, ecx
xor edx, edx
jmp 0x4b10fc
xor r8d, r8d
xor edx, edx
jmp 0x4b1140
mov r11d, r14d
not r11d
or r11d, r14d
and r11d, edx
and r11d, 0x7ffffffe
xor ecx, ecx
xor edx, edx
movzx eax, ax
shr eax, 5
mov ebp, eax
not ebp
and ebp, 1
and eax, 0xfffffffe
or eax, ebp
add edx, eax
mov rdi, rcx
not rdi
mov rax, r13
not rax
mov rbp, rdi
and rbp, r13
mov rsi, rcx
and rsi, rax
or rsi, rbp
mov rbp, r13
and rbp, 0xfffffffffffffffe
mov ebx, eax
and ebx, 1
or rbx, rbp
xor rbx, rsi
not edi
or eax, r13d
and eax, edi
and eax, 1
or rax, rbx
lea rax, [rax + rax*2]
movzx eax, byte [r10 + rax*8 + 0x12]
and al, 0x20
cmp al, 1
adc dx, 0
add rcx, 2
lea rax, [rcx + rcx*2]
movzx eax, word [r10 + rax*8 + 0x12]
and eax, 0x20
add r11, 0xfffffffffffffffe
jne 0x4b1085
test r9, r9
je 0x4b112e
lea rcx, [rcx + rcx*2]
movzx eax, ax
movzx ecx, word [r10 + rcx*8 + 0x2a]
and ecx, 0x20
shr eax, 5
mov ebp, eax
not ebp
and ebp, 0x72f0
and eax, 0x50f
or eax, ebp
xor eax, 0x72f1
add edx, eax
mov eax, ecx
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
test ax, ax
je 0x4b0fc3
sub r8d, edx
add r8w, word [r11 + 0x38]
mov edx, r8d
jmp 0x4b0fc3
cmp byte [rsp + 0xf0], 0
setne al
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
sete cl
cmp cl, al
mov r14, qword [rsp + 0x88]
je 0x4b11e2
test rdx, rdx
mov r13, qword [rsp + 0xa0]
jne 0x4b1220
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x4b11ec
lea ecx, [rax + 1]
mov dword [rbp + 0x90], ecx
mov rcx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x50
mov edx, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xd4]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b1216
mov r13, qword [rsp + 0xa0]
jmp 0x4b1220
mov dword [rsp + 0x20], 0
mov rcx, rbp
mov edx, 0x50
mov r8d, dword [rsp + 0xd8]
mov r9d, dword [rsp + 0xd4]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
xor eax, eax
mov qword [rsp + 0xb8], rax
cmp r13, 1
mov ebp, 0x81
sbb ebp, 0
mov rsi, qword [rsp + 0x130]
xor r15d, r15d
test rsi, rsi
je 0x4b14f8
test r13, r13
je 0x4b140f
lea r14, [0x005fade0]
mov r13, rsi
mov dword [rsp + 0xf0], ebp
jmp 0x4b126c
mov r15d, r12d
mov r13, qword [r13 + 0x40]
test r13, r13
je 0x4b13fa
mov r12d, r15d
movzx eax, byte [r13 + 0x10]
cmp ebp, eax
jne 0x4b125c
mov al, byte [r13 + 0x11]
mov ecx, eax
xor cl, 0xfe
test cl, al
je 0x4b125c
mov r10, qword [r13 + 0x20]
test r10, r10
je 0x4b1335
mov rax, qword [rsp + 0xa0]
mov r9d, dword [rax]
test r9d, r9d
jle 0x4b1319
mov r8d, dword [r10]
test r8d, r8d
jle 0x4b1319
xor r11d, r11d
mov rax, r11
shl rax, 5
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [rcx + rax + 0x10]
xor ebp, ebp
mov rax, rbp
shl rax, 4
mov rcx, qword [r10 + rax + 8]
xor eax, eax
jmp 0x4b12e9
test sil, sil
je 0x4b130c
add rax, 1
movzx esi, byte [rcx + rax]
movzx edi, byte [rdx + rax]
cmp sil, dil
je 0x4b12e0
movzx ebx, byte [rsi + r14]
cmp bl, byte [rdi + r14]
je 0x4b12e5
add rbp, 1
cmp rbp, r8
jne 0x4b12c3
jmp 0x4b1310
test ebp, ebp
jns 0x4b1335
add r11, 1
cmp r11, r9
jne 0x4b12ad
mov r15d, r12d
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov ebp, dword [rsp + 0xf0]
jmp 0x4b125f
mov r15d, 0xffffffff
cmp byte [r13 + 0x12], 0
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov ebp, dword [rsp + 0xf0]
jne 0x4b125f
mov rax, qword [rdi + 0xa0]
test rax, rax
cmove rax, rdi
mov rax, qword [rax + 0xb0]
jmp 0x4b1375
mov rax, qword [rax + 8]
test rax, rax
je 0x4b138d
cmp qword [rax], r13
jne 0x4b1371
mov ecx, dword [rsp + 0x2d0]
cmp dword [rax + 0x18], ecx
jne 0x4b1371
jmp 0x4b13bb
mov rcx, rdi
mov rdx, r13
mov r8, r11
mov r9d, dword [rsp + 0x2d0]
call fcn.005125d0
mov r11, qword [rsp + 0x70]
mov rcx, qword [rdi]
mov dword [rcx + 0x54], 0xffffffff
test rax, rax
je 0x4b125c
mov eax, dword [rax + 0x20]
mov r15d, eax
not r15d
mov ecx, r12d
not ecx
mov edx, r15d
and edx, 0x52099db1
and eax, 0xadf6624e
or eax, edx
or r15d, ecx
and ecx, 0x52099db1
and r12d, 0xadf6624e
or r12d, ecx
xor r12d, eax
not r15d
or r15d, r12d
jmp 0x4b125f
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
jmp 0x4b14f8
mov rbx, qword [rsp + 0x80]
jmp 0x4b1429
mov r15d, edi
mov rsi, qword [rsi + 0x40]
test rsi, rsi
je 0x4b14f0
mov edi, r15d
movzx eax, byte [rsi + 0x10]
cmp ebp, eax
jne 0x4b1419
mov al, byte [rsi + 0x11]
mov ecx, eax
xor cl, 0xfe
test cl, al
je 0x4b1419
mov r15d, 0xffffffff
cmp byte [rsi + 0x12], 0
jne 0x4b141c
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx + 0xa0]
test rax, rax
cmove rax, rcx
mov rax, qword [rax + 0xb0]
jmp 0x4b146f
mov rax, qword [rax + 8]
test rax, rax
je 0x4b1487
cmp qword [rax], rsi
jne 0x4b146b
mov ecx, dword [rsp + 0x2d0]
cmp dword [rax + 0x18], ecx
jne 0x4b146b
jmp 0x4b14b5
mov rcx, rbx
mov rdx, rsi
mov r8, r11
mov r9d, dword [rsp + 0x2d0]
call fcn.005125d0
mov r11, qword [rsp + 0x70]
mov rcx, qword [rbx]
mov dword [rcx + 0x54], 0xffffffff
test rax, rax
je 0x4b1419
mov eax, dword [rax + 0x20]
mov r15d, eax
not r15d
mov ecx, edi
not ecx
mov edx, r15d
and edx, 0x7138d002
and eax, 0x8ec72ffd
or eax, edx
or r15d, ecx
and ecx, 0x7138d002
and edi, 0x8ec72ffd
or edi, ecx
xor edi, eax
not r15d
or r15d, edi
jmp 0x4b141c
mov rdi, qword [rsp + 0x80]
movzx eax, word [r11 + 0x36]
test ax, ax
jle 0x4b17bf
movabs rcx, 0x6cb921eceeec85ae
mov ebx, 0x12
xor ebp, ebp
mov r12d, ecx
not r12d
or r12d, ecx
mov esi, dword [rsp + 0x12c]
jmp 0x4b1562
mov rcx, qword [r11 + 8]
movzx ecx, word [rcx + rbx]
mov edx, ecx
not edx
or edx, 0xffffff9f
cmp edx, 0xffffffff
je 0x4b15e5
shl ecx, 0x1a
sar ecx, 0x1f
add esi, ecx
add rbp, 1
add esi, 1
movsx rax, word [r11 + 0x36]
add rbx, 0x18
cmp rbp, rax
jge 0x4b17bf
movsx ecx, word [r11 + 0x34]
not ecx
mov edx, 0xffffffff
not edx
or edx, ecx
not edx
and edx, r12d
cmp rbp, rdx
jne 0x4b1529
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b15c3
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], esi
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b1549
mov dword [rsp + 0x20], 0
mov edx, 0x4b
xor r8d, r8d
mov r9d, esi
call fcn.0047df60
mov r11, qword [rsp + 0x70]
jmp 0x4b1549
mov rcx, qword [rsp + 0xe0]
mov ecx, dword [rcx + rbp*4]
test ecx, ecx
js 0x4b1666
cmp byte [rsp + 0x100], 0
je 0x4b16d6
cmp byte [rsp + 0xac], 2
cmovne eax, dword [rsp + 0x150]
movsx r9d, ax
add r9d, ecx
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b170e
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x5e
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], esi
jmp 0x4b15b8
mov eax, dword [rsp + 0x184]
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
setne r8b
sete dl
cmp rbp, 0x20
setb cl
cmp rbp, 0x1f
seta al
xor al, dl
jne 0x4b16a6
or cl, r8b
xor cl, 1
jne 0x4b16a6
mov eax, r15d
btc eax, ebp
not eax
bt eax, ebp
jae 0x4b157c
mov dword [rsp + 0x20], esi
mov rcx, qword [rsp + 0x78]
mov rdx, r11
mov r8d, dword [rsp + 0x98]
mov r9d, ebp
call fcn.004cdfb0
mov r11, qword [rsp + 0x70]
xor eax, eax
mov qword [rsp + 0x1f0], rax
jmp 0x4b1549
cmp qword [rdi + 0x10], 0
je 0x4b1549
shl rcx, 5
mov r14, qword [r13 + rcx + 8]
mov rcx, rdi
mov rdx, r14
mov r8d, esi
call fcn.004c68a0
cmp eax, esi
jne 0x4b1724
mov r14, qword [rsp + 0x88]
mov r11, qword [rsp + 0x70]
jmp 0x4b1549
mov dword [rsp + 0x20], esi
mov edx, 0x5e
mov r8, qword [rsp + 0xc0]
jmp 0x4b15d6
test r14, r14
je 0x4b173f
mov ecx, dword [r14 + 4]
not ecx
or ecx, 0xffbfffff
mov edx, 0x50
cmp ecx, 0xffffffff
jne 0x4b1744
mov edx, 0x51
mov rcx, qword [rdi + 0x10]
movsxd r8, dword [rcx + 0x90]
cmp dword [rcx + 0x94], r8d
mov r14, qword [rsp + 0x88]
jle 0x4b17af
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], esi
mov dword [rcx + rdi*8 + 0xc], 0
mov qword [rcx + rdi*8 + 0x10], 0
mov byte [rcx + rdi*8 + 1], 0
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
jmp 0x4b1549
mov dword [rsp + 0x20], 0
mov r8d, eax
jmp 0x4b15d3
mov eax, dword [r11 + 0x30]
mov ecx, eax
xor ecx, 0xffffff9f
test ecx, eax
je 0x4b17e3
mov rcx, rdi
mov edx, dword [rsp + 0x12c]
mov r8, r11
call fcn.005166c0
mov r11, qword [rsp + 0x70]
mov eax, dword [rsp + 0x184]
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
mov r15, qword [rsp + 0x170]
mov r12, qword [rsp + 0x178]
mov rbp, qword [rsp + 0xe0]
mov ebx, dword [rsp + 0x154]
mov esi, dword [rsp + 0x108]
je 0x4b1abb
mov rcx, qword [rsp + 0x78]
mov rdx, r11
mov r8d, dword [rsp + 0x12c]
call fcn.004d5160
mov dword [rsp + 0x40], esi
mov eax, dword [rsp + 0x2d0]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
mov rcx, rdi
mov rdx, qword [rsp + 0x130]
mov r8d, 0x81
mov r9, r13
call fcn.0050f580
mov r11, qword [rsp + 0x70]
cmp byte [rsp + 0xac], 2
je 0x4b1f00
mov rsi, qword [rsp + 0x78]
mov eax, dword [rsi + 0x90]
mov edx, dword [rsi + 0x94]
movsxd rcx, eax
cmp qword [rsp + 0xb8], 0
je 0x4b18f8
cmp edx, eax
jle 0x4b194a
lea edx, [rax + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x1b
mov ebp, dword [rsp + 0x98]
mov dword [rdx + rcx*8 + 4], ebp
mov ebp, dword [rsp + 0x108]
mov dword [rdx + rcx*8 + 8], ebp
mov ebp, dword [rsp + 0xb4]
mov dword [rdx + rcx*8 + 0xc], ebp
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4b1977
cmp edx, eax
jle 0x4b199f
add eax, 1
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rax + rcx*8], 0x1e
mov edx, dword [rsp + 0x98]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x108]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rsp + 0xd8]
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], 0
jmp 0x4b19cc
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov edx, 0x1b
mov r8d, dword [rsp + 0x98]
mov r9d, dword [rsp + 0x108]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4b19cc
mov rcx, qword [rsi + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov edx, dword [rsp + 0xb0]
mov dword [rcx + rax*8 + 0x10], edx
jmp 0x4b19cc
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov edx, 0x1e
mov r8d, dword [rsp + 0x98]
mov r9d, dword [rsp + 0x108]
call fcn.0047df60
mov r11, qword [rsp + 0x70]
movzx eax, word [r11 + 0x36]
test ax, ax
jle 0x4b1a79
movabs rcx, 0xfc94552ff3983ee4
mov edi, 0x12
xor esi, esi
mov ebx, ecx
not ebx
or ebx, ecx
mov ebp, dword [rsp + 0x12c]
jmp 0x4b1a16
shl ecx, 0x1a
sar ecx, 0x1f
add ebp, ecx
add rsi, 1
add ebp, 1
movsx rcx, ax
add rdi, 0x18
cmp rsi, rcx
jge 0x4b1a79
mov rcx, qword [r11 + 8]
movzx ecx, word [rcx + rdi]
mov edx, ecx
xor edx, 0xff9f
test edx, ecx
jne 0x4b19fa
mov rcx, qword [rsp + 0xe0]
cmp dword [rcx + rsi*4], 0
jns 0x4b1a02
movsx ecx, word [r11 + 0x34]
not ecx
mov edx, 0xffffffff
not edx
or edx, ecx
not edx
and edx, ebx
cmp rsi, rdx
je 0x4b1a02
mov dword [rsp + 0x20], ebp
mov rcx, qword [rsp + 0x78]
mov rdx, r11
mov r8d, dword [rsp + 0x98]
mov r9d, esi
call fcn.004cdfb0
mov r11, qword [rsp + 0x70]
movzx eax, word [r11 + 0x36]
jmp 0x4b1a02
mov eax, dword [r11 + 0x30]
mov ecx, eax
xor ecx, 0xffffff9f
test ecx, eax
mov rbp, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x80]
mov ebx, dword [rsp + 0x154]
mov esi, dword [rsp + 0x108]
je 0x4b1abb
mov rcx, rdi
mov edx, dword [rsp + 0x12c]
mov r8, r11
call fcn.005166c0
mov r11, qword [rsp + 0x70]
cmp byte [rsp + 0xac], 2
je 0x4b1f00
mov qword [rsp + 0x58], rbp
lea rax, [rsp + 0x16c]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x48], esi
mov eax, dword [rsp + 0x2d0]
mov byte [rsp + 0x40], al
mov esi, dword [rsp + 0x188]
mov byte [rsp + 0x38], sil
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x1d8]
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x60], 0
mov rcx, rdi
mov rdx, r11
mov r8, qword [rsp + 0x118]
mov r9d, dword [rsp + 0x98]
call fcn.00516c10
cmp dword [rsp + 0x16c], 0
setne al
test sil, sil
sete cl
cmp cl, al
je 0x4b1b5f
cmp byte [rsp + 0x188], 0
je 0x4b1c9b
mov rcx, qword [rsp + 0x78]
mov eax, dword [rcx + 0x90]
mov edx, dword [rcx + 0x94]
movsxd rcx, eax
cmp qword [rsp + 0xb8], 0
je 0x4b1bd5
cmp edx, eax
mov r8d, dword [rsp + 0x98]
jle 0x4b1c2b
lea edx, [rax + 1]
mov r9, qword [rsp + 0x78]
mov dword [r9 + 0x90], edx
mov rdx, qword [r9 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x1b
mov dword [rdx + rcx*8 + 4], r8d
mov esi, dword [rsp + 0x108]
mov dword [rdx + rcx*8 + 8], esi
mov esi, dword [rsp + 0xb4]
mov dword [rdx + rcx*8 + 0xc], esi
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4b1c53
cmp edx, eax
mov r8d, dword [rsp + 0x98]
mov esi, dword [rsp + 0xd8]
jle 0x4b1c80
add eax, 1
mov rdx, qword [rsp + 0x78]
mov dword [rdx + 0x90], eax
mov rax, qword [rdx + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rax + rcx*8], 0x1e
mov dword [rax + rcx*8 + 4], r8d
mov edx, dword [rsp + 0x108]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], 0
jmp 0x4b1c9b
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x20], eax
mov rsi, qword [rsp + 0x78]
mov rcx, rsi
mov edx, 0x1b
mov r9d, dword [rsp + 0x108]
call fcn.0047df60
mov r9, rsi
mov rcx, qword [r9]
cmp byte [rcx + 0x67], 0
jne 0x4b1c9b
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov edx, dword [rsp + 0xb0]
mov dword [rcx + rax*8 + 0x10], edx
jmp 0x4b1c9b
mov dword [rsp + 0x20], esi
mov rcx, qword [rsp + 0x78]
mov edx, 0x1e
mov r9d, dword [rsp + 0x108]
call fcn.0047df60
cmp dword [rsp + 0xc8], 0
mov rsi, qword [rsp + 0x70]
je 0x4b1cc9
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbp
mov rcx, rdi
mov rdx, rsi
mov r8d, dword [rsp + 0xd8]
xor r9d, r9d
call fcn.005101a0
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0xffffffff
mov rcx, rdi
mov rdx, rsi
mov r8d, dword [rsp + 0x98]
mov r9, qword [rsp + 0x1d8]
call fcn.00510cf0
cmp dword [rsp + 0x1f0], 0
je 0x4b1d64
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b1d47
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x8f
mov edx, dword [rsp + 0x98]
mov dword [rcx + rax*8 + 4], edx
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4b1d64
mov dword [rsp + 0x20], 0
mov edx, 0x8f
mov r8d, dword [rsp + 0x98]
xor r9d, r9d
call fcn.0047df60
mov ebx, dword [rsp + 0x188]
test bl, bl
sete al
cmp dword [rsp + 0xc8], 1
setg cl
cmp al, cl
mov rdx, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x98]
je 0x4b1d90
test bl, bl
je 0x4b1df3
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b1dce
lea ebx, [rax + 1]
mov dword [rcx + 0x90], ebx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x82
mov dword [rcx + rax*8 + 4], r10d
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4b1df3
mov dword [rsp + 0x20], 0
mov edx, 0x82
mov r8d, r10d
xor r9d, r9d
call fcn.0047df60
mov r10d, dword [rsp + 0x98]
mov rdx, qword [rsp + 0x70]
cmp dword [rsp + 0xc8], 0
je 0x4b1ea4
mov ebx, dword [rsp + 0x154]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbp
mov rcx, rdi
xor r8d, r8d
mov esi, dword [rsp + 0xd4]
mov r9d, esi
mov dword [rsp + 0x98], r10d
call fcn.005101a0
xor eax, eax
cmp dword [rsp + 0x90], 2
sete al
lea eax, [rax + rax + 4]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov rcx, rdi
mov rdx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x98]
mov r9, qword [rsp + 0x1d8]
call fcn.0051aaa0
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbp
mov rcx, rdi
mov rdx, qword [rsp + 0x70]
mov r8, r13
mov r9d, dword [rsp + 0xd8]
call fcn.00511060
jmp 0x4b1ef4
xor eax, eax
cmp dword [rsp + 0x90], 2
sete al
lea eax, [rax + rax + 4]
mov rcx, qword [rsp + 0x118]
mov qword [rsp + 0x28], rcx
mov ecx, dword [rsp + 0xd4]
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov rcx, rdi
mov r8d, r10d
mov r9, qword [rsp + 0x1d8]
call fcn.0051aaa0
mov r11, qword [rsp + 0x70]
mov esi, dword [rsp + 0x108]
mov ebx, dword [rsp + 0x204]
test ebx, ebx
je 0x4b1f72
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b1f52
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x56
mov dword [rcx + rax*8 + 4], ebx
mov qword [rcx + rax*8 + 8], 1
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b1f72
mov dword [rsp + 0x20], 0
mov edx, 0x56
mov r8d, ebx
mov r9d, 1
call fcn.0047df60
mov r11, qword [rsp + 0x70]
mov dword [rsp + 0x40], esi
mov eax, dword [rsp + 0x2d0]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], 2
mov rcx, rdi
mov rdx, qword [rsp + 0x130]
mov r8d, 0x81
mov r9, r13
call fcn.0050f580
cmp dword [rsp + 0x90], 1
mov r8, qword [rsp + 0x1f8]
je 0x4b20af
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rdx + 0x18]
mov eax, esi
not eax
and eax, 0x720b9dcf
and esi, 0x8df46230
or esi, eax
xor esi, 0x8df46230
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4b2002
mov eax, dword [rdx + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, esi
mov dword [rcx + rdx*4], eax
jmp 0x4b2012
mov r8d, esi
call fcn.004d3e00
mov r8, qword [rsp + 0x1f8]
cmp dword [rsp + 0x90], 2
jne 0x4b202b
mov rcx, qword [rsp + 0x1e8]
call fcn.004e7cc0
jmp 0x4b20a7
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b2085
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x26
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov rdx, qword [rsp + 0x148]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b20af
mov dword [rsp + 0x20], 0
mov edx, 0x26
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x148]
call fcn.0047df60
mov r8, qword [rsp + 0x1f8]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rdx + 0x18]
neg r8d
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4b20d5
mov eax, dword [rdx + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, r8d
mov dword [rcx + rdx*4], eax
jmp 0x4b20da
call fcn.004d3e00
cmp byte [rdi + 0x1e], 0
je 0x4b2138
test ebx, ebx
je 0x4b212b
mov rsi, qword [rsp + 0x78]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
mov rdi, qword [rsp + 0x158]
jle 0x4b216a
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], 0x53
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 1], xmm0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2185
mov rdi, qword [rsp + 0x158]
jmp 0x4b2d01
cmp qword [rsp + 0x2d8], 0
jne 0x4b20e0
cmp qword [rdi + 0xa8], 0
jne 0x4b20e0
mov al, 1
test al, al
je 0x4b20e0
cmp qword [rdi + 0x98], 0
je 0x4b20e0
mov rcx, rdi
call fcn.00515e00
jmp 0x4b20e0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x53
xor r8d, r8d
xor r9d, r9d
call fcn.0047df60
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4b21c7
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x54
mov dword [rcx + rax*8 + 4], ebx
mov qword [rcx + rax*8 + 8], 1
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b21e5
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x54
mov r8d, ebx
mov r9d, 1
call fcn.0047df60
mov r14, qword [rsi]
movzx eax, word [rsi + 0xc0]
test rax, rax
je 0x4b2456
mov rdi, qword [rsi + 0x98]
test rdi, rdi
je 0x4b242a
imul rbx, rax, 0x70
add rbx, rdi
mov rbp, qword [rdi + 0x18]
cmp qword [rbp + 0x300], 0
jne 0x4b223f
test rbp, rbp
je 0x4b236d
movabs r15, 0xe8c293e57439b37b
jmp 0x4b226e
add rdi, 0x38
cmp rdi, rbx
jae 0x4b242a
cmp dword [rdi + 0x20], 0
je 0x4b2232
mov rdx, qword [rdi + 0x28]
mov rcx, rbp
call fcn.00408130
jmp 0x4b2232
mov rcx, rdi
call fcn.00449ce0
mov word [rdi + 0x14], 0
add rdi, 0x38
cmp rdi, rbx
jae 0x4b242a
mov eax, dword [rdi + 0x14]
mov ecx, eax
xor ecx, 0x6fff
test cx, ax
jne 0x4b2253
cmp dword [rdi + 0x20], 0
je 0x4b2261
mov rsi, qword [rdi + 0x28]
cmp qword [rbp + 0x300], 0
je 0x4b22a6
mov rcx, rbp
mov rdx, rsi
call fcn.004297f0
mov dword [rdi + 0x20], 0
jmp 0x4b225b
cmp qword [rbp + 0x1f0], rsi
jbe 0x4b22c5
cmp qword [rbp + 0x1e0], rsi
jbe 0x4b2333
cmp qword [rbp + 0x1e8], rsi
jbe 0x4b2357
test rsi, rsi
je 0x4b229d
cmp dword [0x005f6010], 0
je 0x4b2349
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4b22e5
call qword [0x005f6090]
mov rcx, rsi
call qword [0x005f6048]
cdqe
mov rcx, qword [0x0213b040]
add rcx, r15
sub rcx, rax
sub rcx, r15
mov qword [0x0213b040], rcx
add qword [0x0213b088], 0xffffffffffffffff
mov rcx, rsi
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4b229d
call qword [0x005f60a0]
jmp 0x4b229d
mov rax, qword [rbp + 0x1d8]
mov qword [rsi], rax
mov qword [rbp + 0x1d8], rsi
jmp 0x4b229d
mov rcx, rsi
call qword [0x005f6038]
jmp 0x4b229d
mov rax, qword [rbp + 0x1c8]
mov qword [rsi], rax
mov qword [rbp + 0x1c8], rsi
jmp 0x4b229d
movabs rbp, 0xc9724a25f6cfde6
jmp 0x4b2394
mov rcx, rdi
call fcn.00449ce0
mov word [rdi + 0x14], 0
add rdi, 0x38
cmp rdi, rbx
jae 0x4b242a
mov eax, dword [rdi + 0x14]
mov ecx, eax
xor ecx, 0x6fff
test cx, ax
jne 0x4b2379
cmp dword [rdi + 0x20], 0
je 0x4b2387
mov rsi, qword [rdi + 0x28]
test rsi, rsi
je 0x4b241e
cmp dword [0x005f6010], 0
je 0x4b2415
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4b23ce
call qword [0x005f6090]
mov rcx, rsi
call qword [0x005f6048]
mov rcx, qword [0x0213b040]
cdqe
sub rcx, rbp
sub rcx, rax
add rcx, rbp
mov qword [0x0213b040], rcx
add qword [0x0213b088], 0xffffffffffffffff
mov rcx, rsi
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4b241e
call qword [0x005f60a0]
jmp 0x4b241e
mov rcx, rsi
call qword [0x005f6038]
mov dword [rdi + 0x20], 0
jmp 0x4b2381
mov rsi, qword [rsp + 0x78]
mov rdx, qword [rsi + 0x98]
mov rcx, r14
call fcn.00408130
mov r15, qword [rsp + 0x170]
mov rbp, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x158]
mov word [rsi + 0xc0], 1
mov edx, 0x70
mov rcx, r14
call fcn.00429840
mov qword [rsi + 0x98], rax
test rax, rax
je 0x4b249a
mov word [rax + 0x14], 1
mov qword [rax + 0x18], r14
mov dword [rax + 0x20], 0
mov word [rax + 0x4c], 1
mov qword [rax + 0x50], r14
mov dword [rax + 0x58], 0
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
jne 0x4b24ca
mov qword [rsp + 0x20], 0
lea rdx, [0x00604aa5]
mov rcx, rax
mov r8, 0xffffffffffffffff
mov r9b, 1
call fcn.00414070
mov r14, qword [rsp + 0x88]
jmp 0x4b2d01
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0x23
mov r8, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0xfc]
call fcn.0047df60
mov rax, qword [rsp + 0x80]
mov ecx, dword [rax + 0x44]
add ecx, 0xffffffff
mov r12d, ecx
mov dword [rax + 0x44], ecx
mov eax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b26de
mov qword [rsp + 0x148], rax
cdqe
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b270b
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0x23
mov r8, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0xfc]
call fcn.0047df60
mov ecx, dword [r15 + 0x90]
movsxd rax, ecx
test sil, sil
mov qword [rsp + 0x148], rcx
je 0x4b2764
mov cl, 1
mov dword [rsp + 0x100], ecx
cmp byte [rsp + 0xac], 2
je 0x4b30d7
cmp qword [rsp + 0xb8], 0
je 0x4b3035
movsx r14d, word [rsp + 0x150]
mov rax, qword [rsp + 0x148]
test r14w, r14w
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x138]
jle 0x4b2685
xor esi, esi
mov rax, qword [rsp + 0x148]
jmp 0x4b2655
lea edx, [rax + 1]
mov dword [rbx + 0x90], edx
mov rdx, qword [rbx + 0x88]
cdqe
lea rax, [rax + rax*2]
mov dword [rdx + rax*8], 0x5e
mov dword [rdx + rax*8 + 4], ebp
mov dword [rdx + rax*8 + 8], esi
mov dword [rdx + rax*8 + 0xc], ecx
mov qword [rdx + rax*8 + 0x10], 0
add esi, 1
mov eax, dword [rbx + 0x90]
cmp r14d, esi
je 0x4b2685
lea ecx, [rdi + rsi]
cmp dword [rbx + 0x94], eax
jg 0x4b2615
mov dword [rsp + 0x20], ecx
mov rcx, rbx
mov edx, 0x5e
mov r8d, ebp
mov r9d, esi
call fcn.0047df60
add esi, 1
mov eax, dword [rbx + 0x90]
cmp r14d, esi
jne 0x4b2655
cmp dword [rbx + 0x94], eax
jle 0x4b30a3
lea ecx, [rax + 1]
mov rdx, qword [rsp + 0x78]
mov dword [rdx + 0x90], ecx
mov rcx, qword [rdx + 0x88]
movsxd rdx, eax
lea rdx, [rdx + rdx*2]
mov dword [rcx + rdx*8], 0x1b
mov ebp, dword [rsp + 0x98]
mov dword [rcx + rdx*8 + 4], ebp
mov dword [rcx + rdx*8 + 8], r12d
mov rbp, qword [rsp + 0x138]
mov dword [rcx + rdx*8 + 0xc], ebp
mov qword [rcx + rdx*8 + 0x10], 0
jmp 0x4b30c9
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0x87
mov r8, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0xd8]
call fcn.0047df60
mov qword [rsp + 0x148], rax
movsxd rax, dword [r15 + 0x90]
cmp dword [r15 + 0x94], eax
jle 0x4b27c6
lea ecx, [rax + 1]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x1e
mov edx, dword [rsp + 0x98]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r12d
mov edx, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2fea
cmp dword [r15 + 0x94], ecx
jle 0x4b2ede
mov rcx, qword [rsp + 0x148]
add ecx, 1
mov rdx, qword [rsp + 0x78]
mov dword [rdx + 0x90], ecx
mov rcx, qword [rdx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x86
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xb4]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2f05
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
mov rcx, r15
mov edx, 0x1e
mov r8d, dword [rsp + 0x98]
mov r9d, r12d
call fcn.0047df60
jmp 0x4b2fea
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x158]
jmp 0x4b2d01
mov dword [rsp + 0x20], edi
mov rcx, r15
mov edx, 0x8a
mov r8, qword [rsp + 0xc0]
mov r9d, esi
call fcn.0047df60
mov rcx, qword [r15]
xor esi, esi
cmp byte [rcx + 0x67], 0
jne 0x4b2849
mov rcx, qword [r15 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov edx, dword [rsp + 0xb0]
mov dword [rcx + rax*8 + 0x10], edx
xor esi, esi
xor eax, eax
mov qword [rsp + 0x90], rax
mov dword [rsp + 0xb0], 0
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
jmp 0x4afec7
mov dword [rsp + 0x20], 0
mov r8d, eax
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x118]
mov rax, qword [rsp + 0xc8]
cmp byte [rax + 0x4a], 0
je 0x4b294d
mov rcx, qword [rdi]
cmp byte [rcx + 0x67], 0
jne 0x4b28fc
mov rsi, qword [rdi + 0x88]
movsxd rax, dword [rsp + 0x100]
lea rbx, [rax + rax*2]
mov r8, qword [rsi + rbx*8 + 0x10]
movsx edx, byte [rsi + rbx*8 + 1]
call fcn.00444fc0
mov rdi, qword [rsp + 0x90]
mov qword [rsi + rbx*8 + 0x10], 0
mov word [rsi + rbx*8], 0xb8
mov rbx, qword [rsp + 0x118]
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4b29cd
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x7a
mov edx, dword [rsp + 0xe8]
mov dword [rcx + rax*8 + 4], edx
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
mov dword [rsp + 0x98], 0
jmp 0x4b2a00
mov rdx, qword [rsp + 0x130]
add edx, 1
mov rcx, qword [rsp + 0x80]
mov rax, qword [rcx + 0xa0]
test rax, rax
cmove rax, rcx
mov byte [rax + 0x20], 1
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
mov qword [rsp + 0x130], rdx
jle 0x4b2d1e
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x61
mov rbp, rdx
mov rdx, qword [rsp + 0xf0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], ebx
mov dword [rcx + rax*8 + 0xc], ebp
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2d42
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x98], 0
mov rcx, rdi
mov edx, 0x7a
mov r8d, dword [rsp + 0xe8]
xor r9d, r9d
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
mov rsi, qword [rax + 0xa0]
test rsi, rsi
cmove rsi, rax
mov eax, dword [rsi + 0x128]
test eax, eax
jle 0x4b2a43
mov rcx, qword [rsi + 0x180]
xor edx, edx
cmp qword [rcx + rdx*8], rbp
je 0x4b2b2f
add rdx, 1
cmp rax, rdx
jne 0x4b2a2e
jmp 0x4b2a4a
mov rcx, qword [rsi + 0x180]
lea eax, [rax*8 + 8]
movsxd rdx, eax
call fcn.00404830
test rax, rax
je 0x4b2a8b
mov qword [rsi + 0x180], rax
movsxd rcx, dword [rsi + 0x128]
lea edx, [rcx + 1]
mov dword [rsi + 0x128], edx
mov rdx, qword [rsp + 0x70]
mov qword [rax + rcx*8], rdx
mov rdi, qword [rsp + 0x90]
jmp 0x4b2b2f
mov rsi, qword [rsi]
cmp byte [rsi + 0x67], 0
mov rdi, qword [rsp + 0x90]
jne 0x4b2b2f
cmp byte [rsi + 0x68], 0
jne 0x4b2b2f
mov byte [rsi + 0x67], 1
cmp dword [rsi + 0xe4], 0
jle 0x4b2ac1
mov dword [rsi + 0x198], 1
add dword [rsi + 0x1a0], 1
mov word [rsi + 0x1a4], 0
mov rcx, qword [rsi + 0x160]
test rcx, rcx
mov r15, qword [rsp + 0x170]
mov r12, qword [rsp + 0x178]
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x118]
je 0x4b2b2f
lea rdx, [0x005fc480]
call fcn.00419aa0
mov rdi, qword [rsp + 0x90]
mov rax, qword [rsi + 0x160]
mov dword [rax + 0x18], 7
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xf0]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x30], 0xfffffff5
mov rcx, rdi
mov edx, 7
xor r8d, r8d
mov r9d, ebx
call fcn.004c62a0
mov rsi, qword [rsp + 0x90]
movsxd rax, dword [rsi + 0x90]
test rax, rax
jle 0x4b2b9a
mov edx, dword [rsp + 0x2d0]
cmp edx, 0xb
mov ecx, 2
cmovne ecx, edx
mov rdx, qword [rsi + 0x88]
lea ebp, [rax - 1]
lea rbp, [rbp + rbp*2]
mov word [rdx + rbp*8 + 2], cx
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rdx + 0xa0]
test rcx, rcx
cmove rcx, rdx
mov byte [rcx + 0x21], 1
cmp byte [rsp + 0x98], 0
je 0x4b2c21
mov rcx, qword [rsp + 0x100]
lea r9d, [rcx + 1]
cmp dword [rsi + 0x94], eax
mov rbp, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x158]
jle 0x4b2c43
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x26
mov rdx, qword [rsp + 0xb8]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2c68
mov rcx, qword [rsp + 0xc8]
call fcn.004e7cc0
mov rbp, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x158]
jmp 0x4b2d01
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x26
mov r8, qword [rsp + 0xb8]
call fcn.0047df60
mov rsi, qword [rsp + 0x90]
mov eax, dword [rsi + 0x90]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
je 0x4b2c80
lea rcx, [0x0213b3e8]
jmp 0x4b2ca2
lea ecx, [rax - 1]
mov rdx, qword [rsp + 0x100]
test edx, edx
cmovns ecx, edx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rsi + 0x88]
mov dword [rcx + 8], eax
cmp dword [rsi + 0x94], eax
jle 0x4b2ce1
movsxd rcx, eax
add eax, 1
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rax + rcx*8], 0x7a
mov rdx, qword [rsp + 0xb8]
mov dword [rax + rcx*8 + 4], edx
xorps xmm0, xmm0
movups xmmword [rax + rcx*8 + 8], xmm0
jmp 0x4b2d01
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x7a
mov r8, qword [rsp + 0xb8]
xor r9d, r9d
call fcn.0047df60
test rdi, rdi
je 0x4ad58a
mov rax, qword [rsp + 0x208]
mov qword [rdi + 0x168], rax
jmp 0x4ad58a
mov dword [rsp + 0x20], edx
mov rcx, rdi
mov edx, 0x61
mov r8, qword [rsp + 0xf0]
mov r9d, ebx
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
mov ebp, dword [rsp + 0xac]
jle 0x4b2d8e
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x7f
mov dword [rcx + rax*8 + 4], esi
mov dword [rcx + rax*8 + 8], ebp
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2db1
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x7f
mov r8d, esi
mov r9d, ebp
call fcn.0047df60
mov rdi, qword [rsp + 0x90]
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4b2dfd
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], pe_nt_image_headers64
mov dword [rcx + rax*8 + 4], esi
mov rdx, qword [rsp + 0x130]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], ebp
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4af8d9
mov dword [rsp + 0x20], ebp
mov rcx, rdi
mov edx, pe_nt_image_headers64
mov r8d, esi
mov r9, qword [rsp + 0x130]
call fcn.0047df60
jmp 0x4af8d9
mov dword [rsp + 0x20], 0
mov rcx, r15
mov edx, 0xe
xor r8d, r8d
xor r9d, r9d
call fcn.0047df60
mov ebp, eax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x108]
mov dword [rsp + 0x20], eax
mov rdi, qword [rsp + 0x80]
mov rcx, rdi
mov rbx, qword [rsp + 0x70]
mov rdx, rbx
mov r8d, 0x71
xor r9d, r9d
call fcn.0050d2b0
mov r11, rbx
test ebp, ebp
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov esi, r12d
je 0x4b06dd
mov eax, dword [r15 + 0x90]
lea ecx, [rax - 1]
cmp ecx, ebp
jne 0x4b3017
mov r15, qword [rsp + 0x78]
mov dword [r15 + 0x90], ebp
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov esi, r12d
jmp 0x4b06dd
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x86
mov r8, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0xb4]
call fcn.0047df60
mov rcx, qword [rsp + 0x78]
mov eax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b2f61
movsxd rcx, eax
lea edx, [rcx + 1]
mov rbp, qword [rsp + 0x78]
mov dword [rbp + 0x90], edx
mov rdx, qword [rbp + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x1b
mov ebp, dword [rsp + 0x98]
mov dword [rdx + rcx*8 + 4], ebp
mov dword [rdx + rcx*8 + 8], r12d
mov ebp, dword [rsp + 0xb4]
mov dword [rdx + rcx*8 + 0xc], ebp
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4b2f86
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x78]
mov edx, 0x1b
mov r8d, dword [rsp + 0x98]
mov r9d, r12d
call fcn.0047df60
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
je 0x4b2fcb
mov dword [rsp + 0x100], 0
jmp 0x4b30d7
mov eax, edx
mov qword [rsp + 0x90], rax
mov r12, qword [rsp + 0x178]
mov r13, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x80]
jmp 0x4aff43
mov r15, qword [rsp + 0x78]
mov rcx, qword [r15 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], 0
mov dword [rsp + 0x100], 0
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
jmp 0x4b0430
mov rdx, qword [rsp + 0x78]
mov rdx, qword [rdx]
cmp byte [rdx + 0x67], 0
je 0x4b30fe
lea rcx, [0x0213b3e8]
jmp 0x4b311a
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x148]
cmp dword [rcx + 0x94], edx
jle 0x4b3168
mov rcx, qword [rsp + 0x148]
add ecx, 1
mov rdx, qword [rsp + 0x78]
mov dword [rdx + 0x90], ecx
mov rcx, qword [rdx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov rdx, qword [rsp + 0xc0]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b318f
mov rax, qword [rsp + 0x138]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x78]
mov edx, 0x1b
mov r8d, dword [rsp + 0x98]
mov r9d, r12d
call fcn.0047df60
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
je 0x4b3147
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
jmp 0x4b0430
test ebp, ebp
cmovns ecx, ebp
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
mov rdx, qword [rsp + 0x78]
add rcx, qword [rdx + 0x88]
mov dword [rcx + 8], eax
mov r13, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x80]
mov r11, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
mov esi, r12d
jmp 0x4b06dd
mov r15, qword [rsp + 0x78]
mov rcx, qword [r15 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], r14d
jmp 0x4b2ff5
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x87
mov r8, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0xd8]
call fcn.0047df60
mov rcx, qword [rsp + 0x78]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4b31ed
lea ecx, [rax + 1]
mov r15, qword [rsp + 0x78]
mov dword [r15 + 0x90], ecx
mov rcx, qword [r15 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x1e
mov edx, dword [rsp + 0x98]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r12d
mov edx, dword [rsp + 0xd8]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4b2ff5
mov eax, dword [rsp + 0xd8]
mov dword [rsp + 0x20], eax
mov r15, qword [rsp + 0x78]
mov rcx, r15
mov edx, 0x1e
mov r8d, dword [rsp + 0x98]
mov r9d, r12d
call fcn.0047df60
jmp 0x4b2ff5