Function at 0x4d0800
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movdqa xmmword [rsp + 0x100], xmm10
movdqa xmmword [rsp + 0xf0], xmm9
movdqa xmmword [rsp + 0xe0], xmm8
movdqa xmmword [rsp + 0xd0], xmm7
movdqa xmmword [rsp + 0xc0], xmm6
mov rbx, r9
mov r13d, r8d
mov r15, rdx
mov rbp, rcx
call fcn.004c6120
mov r10, rax
mov r12d, dword [rbp + 0x34]
lea eax, [r12 + 1]
mov dword [rbp + 0x34], eax
test rbx, rbx
je 0x4d0950
mov eax, dword [r15 + 4]
not eax
or eax, 0xffffefff
cmp eax, 0xffffffff
je 0x4d0959
mov r8, r15
mov rax, qword [r15 + 0x20]
mov rdx, qword [rax + 0x20]
mov edi, dword [rdx]
test edi, edi
jle 0x4d0960
mov r11, rbp
xor eax, eax
jmp 0x4d08b7
cmp sil, 0x75
jne 0x4d0966
add rax, 1
cmp rax, rdi
je 0x4d0964
mov rcx, rax
shl rcx, 5
mov rbp, qword [rdx + rcx + 8]
mov sil, byte [rbp]
lea ecx, [rsi + 0x53]
cmp cl, 1
ja 0x4d08e0
nop
mov rbp, qword [rbp + 0x10]
movzx esi, byte [rbp]
lea ecx, [rsi + 0x53]
cmp cl, 2
jb 0x4d08d0
cmp sil, 0xb0
jne 0x4d08ea
mov sil, byte [rbp + 2]
cmp sil, 0x99
jb 0x4d08a0
cmp sil, 0xa7
jae 0x4d0900
cmp sil, 0x9c
jb 0x4d08aa
jmp 0x4d0966
jne 0x4d0966
mov ecx, dword [rbp + 4]
not ecx
or ecx, 0xffdfffff
cmp ecx, 0xffffffff
jne 0x4d0966
mov rsi, qword [rbp + 0x40]
test rsi, rsi
je 0x4d0966
movzx ebp, word [rbp + 0x30]
test bp, bp
js 0x4d08aa
mov rsi, qword [rsi + 8]
test rsi, rsi
je 0x4d08aa
lea rcx, [rbp*2]
add rcx, rbp
mov ecx, dword [rsi + rcx*8 + 8]
not ecx
or ecx, 0xfffffff0
cmp ecx, 0xffffffff
jne 0x4d08aa
jmp 0x4d0966
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x4d0979
mov qword [rsp + 0x70], rbx
jmp 0x4d0979
xor eax, eax
jmp 0x4d0969
mov eax, edi
mov rbp, r11
xor ecx, ecx
cmp eax, edi
cmove rbx, rcx
mov qword [rsp + 0x70], rbx
mov r15, r8
mov rdi, qword [rsp + 0x180]
mov ebx, r13d
xor ebx, 0xfffffffb
cmp dword [rbp + 0x30], 0
jne 0x4d09ec
mov eax, dword [r15 + 4]
mov ecx, eax
xor ecx, 0xffffefbf
and ecx, eax
cmp ecx, 0x1000
jne 0x4d09ec
mov rax, qword [r15 + 0x20]
cmp qword [rax + 0x50], 0
jne 0x4d09ec
mov ecx, dword [rax + 4]
not ecx
or ecx, 0xfffffff6
cmp ecx, 0xffffffff
jne 0x4d09ec
cmp qword [rax + 0x60], 0
jne 0x4d09ec
cmp qword [rax + 0x30], 0
jne 0x4d09ec
mov rcx, qword [rax + 0x28]
cmp dword [rcx], 1
jne 0x4d09ec
cmp qword [rcx + 0x30], 0
jne 0x4d09ec
mov rcx, qword [rcx + 0x28]
mov qword [rsp + 0x28], rcx
cmp byte [rcx + 0x3f], 1
jne 0x4d0db1
mov r14d, r13d
not r13d
or r13d, 0xfffffffe
cmp r13d, 0xffffffff
je 0x4d0a10
mov eax, dword [r15 + 4]
mov ecx, eax
xor ecx, 0xffffefff
test ecx, eax
je 0x4d0ad5
mov r13d, dword [rbp + 0xc8]
test ebx, r14d
je 0x4d0a94
mov dword [rbp + 0xc8], 0
mov rcx, rbp
mov rdx, r15
mov r8d, r12d
call fcn.004d1ee0
mov dword [rbp + 0xc8], r13d
mov r13d, 2
mov r8, qword [rsp + 0x188]
test rdi, rdi
setne al
lea ecx, [r13 - 3]
cmp ecx, 2
setb cl
cmp al, cl
je 0x4d0d6c
test rdi, rdi
je 0x4d0d6c
mov rax, qword [r15 + 0x10]
mov cl, byte [rax]
cmp cl, 0xb0
jne 0x4d0a78
mov cl, byte [rax + 2]
cmp cl, 0x8a
je 0x4d0b67
mov edx, 1
cmp cl, 0xb1
je 0x4d0b6b
jmp 0x4d0b7c
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x4d0a26
mov r14, r10
mov esi, dword [rbp + 0x38]
lea eax, [rsi + 1]
mov dword [rbp + 0x38], eax
mov dword [rbx], eax
mov rcx, rbp
mov rdx, r15
mov r8d, r12d
call fcn.004d1ee0
inc esi
je 0x4d0a34
mov rcx, r14
mov edx, r12d
mov r8d, esi
call fcn.004d1d20
jmp 0x4d0a34
mov r13, qword [r15 + 0x10]
mov qword [r15 + 0x10], 0
mov word [rsp + 0xb4], 1
lea rax, [0x004ce7b0]
mov qword [rsp + 0x98], rax
lea rax, [0x004cea20]
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0xb8], 0
lea rcx, [rsp + 0x90]
mov rdx, r15
mov rsi, rdi
mov rdi, rbp
mov rbp, r10
call fcn.004cea30
mov r10, rbp
mov rbp, rdi
mov rdi, rsi
cmp word [rsp + 0xb4], 0
mov qword [r15 + 0x10], r13
je 0x4d0b52
mov rax, qword [r15 + 0x20]
cmp dword [rax], 2
jg 0x4d0a10
add dword [rbp + 0x34], 0xffffffff
mov r13d, 5
mov r12d, 0xffffffff
jmp 0x4d0a41
mov rax, qword [rax + 0x20]
add rax, 0x20
mov rax, qword [rax]
mov edx, dword [rax]
test edx, edx
jle 0x4d0d6c
mov r11d, edx
cmp edx, 8
jae 0x4d0b8b
xor edx, edx
jmp 0x4d0d60
mov qword [rsp + 0x38], r12
mov edx, r11d
and edx, 0xfffffff8
lea rax, [rdx - 8]
mov rbp, rax
shr rbp, 3
add rbp, 1
mov r15d, ebp
and r15d, 3
cmp rax, 0x18
jae 0x4d0bc1
movdqa xmm4, xmmword [0x005fa6c0]
xor ebx, ebx
jmp 0x4d0d0e
movabs r9, 0x24a708a6b465d831
movabs r12, 0x3ffffffffffffffc
xor r12, rbp
not r12
and r12, rbp
movdqa xmm4, xmmword [0x005fa6c0]
mov rbp, 0xffffffffffffffff
xor ebx, ebx
movdqa xmm8, xmmword [0x005fa6d0]
movdqa xmm9, xmmword [str._b_b_b_b_f_f_f_f]
movdqa xmm10, xmmword [0x005fa6f0]
mov r14, r9
not r14
mov r10, r9
and r10, 0xffffffffffffffef
movdqa xmm2, xmmword [0x005fa700]
movdqa xmm5, xmmword [0x005fa710]
movdqa xmm6, xmmword [0x005fa720]
movdqa xmm7, xmmword [0x005fa730]
movdqa xmm1, xmmword [str.]
nop
movdqa xmm0, xmm4
paddd xmm0, xmm8
movdqu xmmword [rdi + rbx*4], xmm4
movdqu xmmword [rdi + rbx*4 + 0x10], xmm0
mov rax, rdi
mov edi, ebx
and edi, 8
mov rcx, rbx
xor rcx, 8
or rcx, rdi
movdqa xmm0, xmm4
paddd xmm0, xmm9
movdqa xmm3, xmm4
paddd xmm3, xmm10
movdqu xmmword [rax + rcx*4], xmm0
movdqu xmmword [rax + rcx*4 + 0x10], xmm3
mov rcx, rbp
and rcx, r9
mov edi, ebp
not edi
mov rsi, rbx
and rsi, r14
or rsi, rcx
mov ecx, r14d
and ecx, 0x10
or rcx, r10
xor rcx, rsi
mov esi, r9d
or esi, r14d
and esi, edi
mov rdi, rax
and esi, 0x10
or rsi, rcx
movdqa xmm0, xmm4
psubd xmm0, xmm2
movdqa xmm3, xmm4
paddd xmm3, xmm5
movdqu xmmword [rax + rsi*4], xmm0
movdqu xmmword [rax + rsi*4 + 0x10], xmm3
mov ecx, ebx
and ecx, 0x18
mov rsi, rbx
xor rsi, 0x18
or rsi, rcx
movdqa xmm0, xmm4
paddd xmm0, xmm6
movdqa xmm3, xmm4
paddd xmm3, xmm7
movdqu xmmword [rax + rsi*4], xmm0
movdqu xmmword [rax + rsi*4 + 0x10], xmm3
add rbx, 0x20
paddd xmm4, xmm1
add rbp, 0xffffffffffffffe0
add r12, 0xfffffffffffffffc
jne 0x4d0c40
test r15, r15
je 0x4d0d53
lea rax, [rdi + rbx*4]
add rax, 0x10
movdqa xmm1, xmmword [0x005fa750]
movdqa xmm2, xmmword [str._b_b_b_b_f_f_f_f]
nop
movdqa xmm0, xmm4
psubd xmm0, xmm1
movdqu xmmword [rax - 0x10], xmm4
movdqu xmmword [rax], xmm0
add rbx, 8
paddd xmm4, xmm2
add rax, 0x20
add r15, 0xffffffffffffffff
jne 0x4d0d30
cmp rdx, r11
mov r12, qword [rsp + 0x38]
je 0x4d0d6c
nop dword [rax]
mov dword [rdi + rdx*4], edx
add rdx, 1
cmp r11, rdx
jne 0x4d0d60
mov dword [r8], r12d
mov eax, r13d
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rax + 0x20]
mov r11d, dword [r14]
test r11d, r11d
jle 0x4d0df2
mov r8, r11
shl r8, 5
xor edx, edx
xor esi, esi
mov rcx, rdi
mov rdi, qword [r14 + rdx + 8]
cmp byte [rdi], 0xa7
mov rdi, rcx
jne 0x4d09ec
add rsi, 1
add rdx, 0x20
cmp r8, rdx
jne 0x4d0dc8
test rax, rax
je 0x4d09ec
mov qword [rsp + 0x38], r12
mov r12, qword [rsp + 0x28]
mov rax, qword [r12 + 0x60]
test rax, rax
je 0x4d0e2e
mov rcx, qword [rbp]
mov rdi, qword [rcx + 0x20]
add rdi, 0x18
mov ecx, 0xffffffff
xor edx, edx
add rdx, 1
add ecx, 1
lea rsi, [rdi + 0x20]
cmp qword [rdi], rax
mov rdi, rsi
jne 0x4d0e19
jmp 0x4d0e33
mov ecx, 0xffff8000
mov rax, qword [rbp + 0xa0]
test rax, rax
cmove rax, rbp
mov r8d, 1
shl r8d, cl
mov edi, 0xfffffffe
rol edi, cl
mov edx, dword [rax + 0x74]
mov esi, edx
not esi
or edi, esi
cmp edi, 0xffffffff
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x34], ecx
je 0x4d0e91
lea rdx, [r12 + 0x28]
mov sil, 1
cmp ecx, 1
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x180]
jne 0x4d0ee9
jmp 0x4d0f3e
mov edi, edx
and edi, r8d
xor edx, r8d
or edx, edi
mov dword [rax + 0x74], edx
cmp ecx, 1
jne 0x4d0ed2
mov r14, r10
mov rcx, rax
call fcn.004306d0
lea rdx, [r12 + 0x28]
mov sil, 1
mov r12, qword [rsp + 0x38]
mov r10, r14
mov rdi, qword [rsp + 0x180]
mov r11, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
jmp 0x4d0f3e
lea rdx, [r12 + 0x28]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x180]
mov r14, qword [rsp + 0x50]
mov rax, qword [rbp]
mov rax, qword [rax + 0x20]
movsxd rcx, dword [rsp + 0x34]
shl rcx, 5
mov rax, qword [rax + rcx + 8]
cmp byte [rax + 0x11], 0
je 0x4d0f32
mov r8d, dword [rdx]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov qword [rsp + 0x40], rdx
mov edx, dword [rsp + 0x34]
xor r9d, r9d
call fcn.004c63a0
xor esi, esi
mov rdx, qword [rsp + 0x40]
jmp 0x4d0f34
xor esi, esi
mov r10, qword [rsp + 0x60]
mov r11, qword [rsp + 0x48]
cmp r11d, 1
jne 0x4d0f53
mov rax, qword [r14 + 8]
cmp word [rax + 0x30], 0
js 0x4d10ef
test r11d, r11d
mov dword [rsp + 0x5c], r13d
jle 0x4d1665
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x80], r15
mov r9, qword [r15 + 0x10]
mov r12b, byte [r9]
lea rax, [r9 + 0x20]
mov qword [rsp + 0x68], rax
cmp r12b, 0xb0
mov qword [rsp + 0x40], r9
je 0x4d1144
cmp r12b, 0xb1
jne 0x4d12d0
mov rax, qword [rsp + 0x68]
mov r13, qword [rax]
mov eax, dword [r13]
mov dword [rsp + 0x68], eax
mov ebp, 1
mov edx, 1
mov edi, 8
xor esi, esi
mov rcx, r9
cmp dword [rsp + 0x68], 2
jl 0x4d0fdd
cmp r12b, 0x8a
je 0x4d0fd5
cmp byte [r9 + 2], 0x8a
mov rax, r13
jne 0x4d0fd9
mov rax, qword [r13 + 0x20]
mov rcx, qword [rax + rdi]
mov r15d, r12d
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + rdi]
movsx rax, word [rax + 0x30]
mov r14b, 0x44
mov r12, rdx
test rax, rax
js 0x4d102b
mov rdx, qword [rsp + 0x28]
cmp word [rdx + 0x36], ax
jle 0x4d102b
mov rdx, qword [rsp + 0x28]
mov r8, qword [rdx + 8]
mov rdx, rdi
mov edi, 0xffffffff
xor rdi, rax
not rdi
and rdi, rax
lea rax, [rdi + rdi*2]
mov rdi, rdx
movzx r14d, byte [r8 + rax*8 + 0xc]
call fcn.004ce540
cmp al, 0x41
setl cl
cmp r14b, 0x40
setg dl
cmp dl, cl
je 0x4d1060
cmp r14b, 0x40
jle 0x4d1060
cmp al, 0x42
setg al
cmp r14b, 0x42
setg cl
mov r11, qword [rsp + 0x48]
jg 0x4d108d
mov edx, 0x41
jmp 0x4d1096
cmp al, 0x41
movzx ecx, r14b
movzx eax, al
cmovl eax, ecx
mov ecx, eax
not cl
and cl, 0x8b
mov edx, eax
and dl, 0x74
or dl, cl
xor dl, 0xcb
and al, 0x40
or al, dl
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
jmp 0x4d10a6
lea edx, [rax + rax]
or dl, 0x41
movzx edx, dl
mov r9, qword [rsp + 0x40]
xor al, cl
mov eax, 0x43
jne 0x4d10a6
mov eax, edx
movsx eax, al
add eax, 0xffffffbf
xor ecx, ecx
cmp r14b, 0x42
setg cl
cmp eax, 2
cmovae ebp, ecx
cmp r12, r11
setb cl
test ebp, ebp
setne al
sete dl
cmp cl, dl
je 0x4d1631
add rsi, 1
lea rdx, [r12 + 1]
add rdi, 0x20
cmp r12, r11
mov r12d, r15d
jb 0x4d0fbb
jmp 0x4d1631
mov ebx, esi
mov rsi, rdx
mov r14, rbp
mov r13d, dword [r10 + 0x90]
mov rdi, r10
cmp dword [r10 + 0x94], r13d
jle 0x4d13f5
movsxd rax, r13d
lea ecx, [rax + 1]
mov rdx, rdi
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], 0xe
pxor xmm0, xmm0
movdqu xmmword [rcx + rax*8 + 1], xmm0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4d1413
mov eax, r12d
xor al, 0x8a
mov byte [rsp + 0x78], r12b
cmp r12b, 0x8a
sete r8b
mov cl, byte [r9 + 2]
mov edx, ecx
xor dl, 0x8a
mov ebp, ecx
cmp cl, 0x8a
sete cl
xor cl, r8b
or dl, al
sete al
test cl, cl
jne 0x4d14c5
test al, al
jne 0x4d14c5
mov esi, 1
mov r13d, 1
mov r15d, 8
xor r12d, r12d
mov r14, qword [rsp + 0x68]
mov rax, r14
cmp bpl, 0xb1
je 0x4d11b9
mov rcx, qword [rsp + 0x40]
cmp bpl, 0x8a
jne 0x4d11cd
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x20]
add rax, 0x20
mov rax, qword [rax]
cmp dword [rax], 2
mov rcx, qword [rsp + 0x40]
jl 0x4d11cd
mov rax, qword [r14]
mov rcx, qword [rax + r15]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + r15]
movsx rax, word [rax + 0x30]
mov r8b, 0x44
test rax, rax
js 0x4d1225
mov rdx, qword [rsp + 0x28]
cmp word [rdx + 0x36], ax
jle 0x4d1225
mov rdx, qword [rsp + 0x28]
mov r8, qword [rdx + 8]
not eax
mov edi, 0xffffffff
not edi
or edi, eax
movabs rdx, 0xcd252cf52c1063b4
mov eax, edx
not eax
or eax, edx
not edi
and edi, eax
lea rax, [rdi + rdi*2]
mov r14, qword [rsp + 0x68]
movzx r8d, byte [r8 + rax*8 + 0xc]
mov edi, r8d
call fcn.004ce540
mov r8d, edi
cmp dil, 0x41
jl 0x4d125a
cmp al, 0x41
jl 0x4d125a
mov cl, 1
test cl, cl
je 0x4d125a
cmp al, 0x42
setg al
cmp r8b, 0x42
setg cl
mov r11, qword [rsp + 0x48]
jg 0x4d1276
mov edx, 0x41
jmp 0x4d127f
cmp al, 0x41
movzx ecx, r8b
movzx eax, al
cmovl eax, ecx
mov ecx, eax
and cl, 0x40
xor al, 0x40
or al, cl
mov r11, qword [rsp + 0x48]
jmp 0x4d128a
lea edx, [rax + rax]
or dl, 0x41
movzx edx, dl
xor al, cl
mov eax, 0x43
jne 0x4d128a
mov eax, edx
movsx eax, al
add eax, 0xffffffbf
xor ecx, ecx
cmp r8b, 0x42
setg cl
cmp eax, 2
cmovae esi, ecx
test esi, esi
setne al
cmp r13, r11
jae 0x4d1631
test esi, esi
je 0x4d1631
add r12, 1
add r13, 1
add r15, 0x20
mov cl, 1
test cl, cl
jne 0x4d1198
jmp 0x4d1631
mov esi, 1
mov r13d, 1
mov ebp, 8
xor r14d, r14d
mov rcx, r9
cmp r12b, 0x8a
jne 0x4d1300
mov rax, qword [r9 + 0x20]
mov rax, qword [rax + 0x20]
cmp dword [rax], 2
mov rcx, r9
jl 0x4d1300
mov rcx, qword [rax + rbp]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax + rbp]
movsx rax, word [rax + 0x30]
mov r15b, 0x44
test rax, rax
js 0x4d1342
mov rdi, qword [rsp + 0x28]
cmp word [rdi + 0x36], ax
jle 0x4d1342
mov rdx, qword [rsp + 0x28]
mov r8, qword [rdx + 8]
mov edi, 0xffffffff
xor rdi, rax
not rdi
and rdi, rax
lea rax, [rdi + rdi*2]
movzx r15d, byte [r8 + rax*8 + 0xc]
call fcn.004ce540
cmp r15b, 0x41
jl 0x4d1382
cmp al, 0x41
jl 0x4d1382
mov cl, 1
test cl, cl
je 0x4d1382
cmp al, 0x42
setg cl
cmp r15b, 0x42
setg dl
xor dl, cl
add dl, dl
or dl, 0x41
cmp al, 0x42
movzx ecx, dl
mov eax, ecx
mov edx, 0x43
cmovg eax, edx
cmp r15b, 0x42
cmovle eax, ecx
jmp 0x4d13a3
cmp al, 0x41
movzx ecx, r15b
movzx eax, al
cmovl eax, ecx
mov ecx, eax
not cl
and cl, 0x33
mov edx, eax
and dl, 0xcc
or dl, cl
xor dl, 0x73
and al, 0x40
or al, dl
mov r11, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
movsx eax, al
add eax, 0xffffffbf
xor ecx, ecx
cmp r15b, 0x42
setg cl
cmp eax, 2
cmovae esi, ecx
cmp r13, r11
setb cl
test esi, esi
setne al
sete dl
cmp cl, dl
je 0x4d1631
add r14, 1
lea rcx, [r13 + 1]
add rbp, 0x20
cmp r13, r11
mov r13, rcx
jb 0x4d12e3
jmp 0x4d1631
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0xe
xor r8d, r8d
xor r9d, r9d
call fcn.0047df60
mov r13d, eax
mov rbp, qword [r14 + 0x10]
test bl, bl
jne 0x4d1455
mov rax, qword [r14]
mov rax, qword [rax + 0x20]
movsxd rcx, dword [rsp + 0x34]
shl rcx, 5
mov rax, qword [rax + rcx + 8]
cmp byte [rax + 0x11], 0
je 0x4d1455
mov r8d, dword [rsi]
mov rax, qword [rsp + 0x28]
mov rax, qword [rax]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov edx, dword [rsp + 0x34]
xor r9d, r9d
call fcn.004c63a0
mov rax, qword [rsp + 0x28]
cmp byte [rax + 0x30], 0
js 0x4d19b1
mov rax, qword [rsp + 0x28]
mov r9d, dword [rax + 0x28]
movsx esi, word [rax + 0x38]
mov eax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x4d1a2f
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rbp + 0x90], edx
mov rdx, qword [rbp + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x70
mov rbx, qword [rsp + 0x38]
mov dword [rdx + rcx*8 + 4], ebx
mov dword [rdx + rcx*8 + 8], r9d
mov ebx, dword [rsp + 0x34]
mov dword [rdx + rcx*8 + 0xc], ebx
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4d1a49
mov r13d, 1
mov esi, 1
mov edx, 8
xor r14d, r14d
mov r12, qword [rsp + 0x40]
mov r8b, byte [rsp + 0x78]
mov rax, qword [rsp + 0x68]
cmp bpl, 0xb1
je 0x4d14fc
cmp bpl, 0x8a
jne 0x4d1504
mov rax, qword [r12 + 0x20]
add rax, 0x20
mov rax, qword [rax]
cmp dword [rax], 2
jge 0x4d1509
mov rcx, r12
jmp 0x4d1526
cmp r8b, 0x8a
movzx ebp, bpl
mov eax, 0x8a
cmovne ebp, eax
mov rax, qword [r12 + 0x20]
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + rdx]
mov rax, qword [rsp + 0x50]
mov r15, rdx
mov rax, qword [rax + rdx]
movsx rax, word [rax + 0x30]
mov r8b, 0x44
test rax, rax
js 0x4d1581
mov rdx, qword [rsp + 0x28]
cmp word [rdx + 0x36], ax
jle 0x4d1581
mov rdx, qword [rsp + 0x28]
mov r8, qword [rdx + 8]
not eax
mov edi, 0xffffffff
not edi
or edi, eax
movabs rdx, 0xf241febcb0905c1b
mov eax, edx
not eax
or eax, edx
mov r12, qword [rsp + 0x40]
not edi
and edi, eax
lea rax, [rdi + rdi*2]
movzx r8d, byte [r8 + rax*8 + 0xc]
mov edi, r8d
call fcn.004ce540
mov r8d, edi
cmp al, 0x41
setl cl
cmp dil, 0x40
setg dl
cmp dl, cl
je 0x4d15cd
cmp r8b, 0x40
jle 0x4d15cd
cmp al, 0x42
setg cl
cmp r8b, 0x42
setg dl
xor dl, cl
add dl, dl
or dl, 0x41
cmp al, 0x42
movzx ecx, dl
mov eax, ecx
mov edx, 0x43
cmovg eax, edx
cmp r8b, 0x42
cmovle eax, ecx
jmp 0x4d15e2
cmp al, 0x41
movzx ecx, r8b
movzx eax, al
cmovl eax, ecx
mov ecx, eax
and cl, 0x40
xor al, 0x40
or al, cl
mov r11, qword [rsp + 0x48]
movsx eax, al
add eax, 0xffffffbf
xor ecx, ecx
cmp r8b, 0x42
setg cl
cmp eax, 2
cmovae r13d, ecx
cmp rsi, r11
setb cl
test r13d, r13d
setne al
sete dl
cmp cl, dl
movzx r8d, byte [rsp + 0x78]
je 0x4d1631
add r14, 1
lea rcx, [rsi + 1]
mov rdx, r15
add rdx, 0x20
cmp rsi, r11
mov rsi, rcx
jb 0x4d14e2
test al, al
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x80]
mov r10, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x180]
mov r13d, dword [rsp + 0x5c]
mov r14, qword [rsp + 0x50]
je 0x4d09ec
mov rax, qword [rsp + 0x28]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x4d09ec
mov rax, 0xffffffffffffffff
mov ecx, r11d
shl rax, cl
not rax
mov qword [rsp + 0x78], rax
jmp 0x4d16a9
xor r9d, r9d
cmp r9, qword [rsp + 0x78]
je 0x4d1a72
mov rsi, qword [rsi + 0x28]
test rsi, rsi
je 0x4d09ec
movzx eax, word [rsi + 0x60]
cmp r11d, eax
jg 0x4d169c
cmp qword [rsi + 0x48], 0
setne r9b
sete r8b
cmp ax, 0x3e
seta cl
cmp ax, 0x3f
setb dl
cmp cl, r9b
jne 0x4d169c
or dl, r8b
xor dl, 1
jne 0x4d169c
test ebx, r13d
je 0x4d16f3
movzx ecx, word [rsi + 0x5e]
cmp r11d, ecx
jl 0x4d169c
cmp r11d, eax
jge 0x4d16f3
cmp byte [rsi + 0x62], 0
je 0x4d169c
test r11d, r11d
mov qword [rsp + 0x28], rsi
jle 0x4d168e
xor r8d, r8d
xor r9d, r9d
mov rdx, qword [r15 + 0x10]
mov al, byte [rdx]
mov ecx, eax
cmp al, 0xb0
jne 0x4d1712
mov cl, byte [rdx + 2]
cmp cl, 0x8a
je 0x4d1722
cmp cl, 0xb1
jne 0x4d1756
lea rcx, [rdx + 0x20]
jmp 0x4d172a
mov rcx, qword [rdx + 0x20]
add rcx, 0x20
mov rcx, qword [rcx]
cmp dword [rcx], 2
jl 0x4d1756
cmp al, 0x8a
je 0x4d173c
cmp byte [rdx + 2], 0x8a
jne 0x4d1746
mov rax, qword [rdx + 0x20]
mov rax, qword [rax + 0x20]
jmp 0x4d174a
mov rax, qword [rdx + 0x20]
mov rcx, r8
shl rcx, 5
mov rdx, qword [rax + rcx + 8]
mov rax, r8
shl rax, 5
mov r11, qword [r14 + rax + 8]
mov eax, dword [rdx + 4]
mov ecx, eax
xor ecx, 0xfffffdff
test ecx, eax
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x68], r8
je 0x4d17b5
mov r14, r11
mov rcx, rbp
call fcn.0047fd40
mov r8, qword [rsi + 8]
movzx r9d, word [r14 + 0x30]
test rax, rax
mov r11, qword [rsp + 0x48]
jne 0x4d17f2
xor r10d, r10d
cmp word [r8 + r10*2], r9w
je 0x4d1862
add r10, 1
cmp r11, r10
jne 0x4d179c
jmp 0x4d1942
test r11, r11
je 0x4d17d5
mov eax, dword [r11 + 4]
mov ecx, eax
xor ecx, 0xfffffdff
test ecx, eax
je 0x4d17d5
mov rcx, rbp
mov r14, r11
mov rdx, r11
jmp 0x4d1781
mov r14, r11
mov rcx, rbp
call fcn.0047fd40
test rax, rax
je 0x4d192d
mov r8, qword [rsi + 8]
movzx r9d, word [r14 + 0x30]
xor r10d, r10d
lea r12, [0x005fade0]
jmp 0x4d180d
add r10, 1
cmp r10, qword [rsp + 0x48]
je 0x4d1956
cmp word [r8 + r10*2], r9w
jne 0x4d17fe
mov r11, qword [rax]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x40]
mov r14, qword [rcx + r10*8]
xor edx, edx
jmp 0x4d1837
movzx ecx, byte [rsi + r12]
cmp cl, byte [rdi + r12]
jne 0x4d17fe
add rdx, 1
movzx esi, byte [r11 + rdx]
movzx edi, byte [r14 + rdx]
cmp sil, dil
jne 0x4d1828
test sil, sil
jne 0x4d1833
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x180]
mov r13d, dword [rsp + 0x5c]
mov r11, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
cmp r11d, r10d
mov r9, qword [rsp + 0x40]
je 0x4d1986
mov eax, r10d
not eax
mov ecx, 0xffffffff
not ecx
or ecx, eax
movabs rdx, 0xb9f7658df317a3e8
mov eax, edx
not eax
or eax, edx
not ecx
and ecx, eax
mov eax, 1
shl rax, cl
mov rdx, r9
btc rdx, rcx
not rdx
bt rdx, rcx
jb 0x4d1995
mov rdx, rax
not rdx
mov rdi, r9
not rdi
movabs r8, 0x218ecb0cc3e8de2
mov rcx, r8
not rcx
mov rsi, rdx
and rsi, r8
and rax, rcx
or rax, rsi
or rdx, rdi
and rdi, r8
and r9, rcx
or r9, rdi
xor r9, rax
not rdx
or rcx, r8
and rcx, rdx
mov rdi, qword [rsp + 0x180]
test rdi, rdi
mov r8, qword [rsp + 0x68]
je 0x4d1909
mov dword [rdi + r8*4], r10d
or r9, rcx
add r8, 1
cmp r8, r11
mov r12, qword [rsp + 0x38]
mov r10, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x28]
jne 0x4d1703
jmp 0x4d1691
mov rcx, rbp
mov rdx, r14
call fcn.0047fd40
mov r13d, dword [rsp + 0x5c]
jmp 0x4d1786
mov r10, qword [rsp + 0x60]
mov r9, qword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
jmp 0x4d1691
mov r12, qword [rsp + 0x38]
mov r10, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x180]
mov r13d, dword [rsp + 0x5c]
mov r11, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x28]
mov r9, qword [rsp + 0x40]
jmp 0x4d1691
mov r10, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x28]
jmp 0x4d1691
mov r12, qword [rsp + 0x38]
mov r10, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x180]
mov rsi, qword [rsp + 0x28]
jmp 0x4d1691
mov rax, qword [rsp + 0x28]
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x4d19d7
mov eax, dword [rsi + 0x64]
mov ecx, eax
xor ecx, 0xfffffffc
and ecx, eax
cmp ecx, 2
je 0x4d19d9
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x4d19bf
xor esi, esi
mov r9d, dword [rsi + 0x58]
movsxd rax, dword [rbp + 0x90]
cmp dword [rbp + 0x94], eax
jle 0x4d1aba
lea ecx, [rax + 1]
mov dword [rbp + 0x90], ecx
mov rcx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x70
mov rdx, qword [rsp + 0x38]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov edx, dword [rsp + 0x34]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4d1ad4
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x20], eax
mov rcx, rbp
mov edx, 0x70
mov r8, qword [rsp + 0x38]
call fcn.0047df60
mov rcx, qword [rbp]
cmp byte [rcx + 0x67], 0
jne 0x4d1c0b
mov rcx, qword [rbp + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], esi
jmp 0x4d1c0b
mov ebx, dword [r10 + 0x90]
mov rdi, r10
cmp dword [r10 + 0x94], ebx
jle 0x4d1b0c
movsxd rax, ebx
lea ecx, [rax + 1]
mov rdx, rdi
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 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 0x4d1b29
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x20], eax
mov rcx, rbp
mov edx, 0x70
mov r8, qword [rsp + 0x38]
call fcn.0047df60
mov rcx, r14
mov rbp, qword [r14 + 0x10]
mov rdx, rsi
call fcn.004c65a0
test rax, rax
je 0x4d1c0b
mov rcx, qword [rbp]
cmp byte [rcx + 0x67], 0
je 0x4d1bea
mov edx, 0xfffffff8
mov r8, rax
call fcn.00444fc0
jmp 0x4d1c0b
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0xe
xor r8d, r8d
xor r9d, r9d
call fcn.0047df60
mov ebx, eax
mov rsi, qword [rsp + 0x28]
mov r9, qword [rsi]
lea r8, [0x00602f94]
mov rcx, rbp
xor edx, edx
call fcn.004d0380
mov r9d, dword [rsi + 0x58]
mov rcx, rdi
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4d1b97
lea ecx, [rax + 1]
mov rdx, rdi
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x70
mov rdx, qword [rsp + 0x38]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov edx, dword [rsp + 0x34]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4d1bb1
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov edx, 0x70
mov r8, qword [rsp + 0x38]
call fcn.0047df60
mov rcx, rbp
mov rsi, qword [rbp + 0x10]
mov rdx, qword [rsp + 0x28]
call fcn.004c65a0
test rax, rax
je 0x4d1c8a
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
je 0x4d1c69
mov edx, 0xfffffff8
mov r8, rax
call fcn.00444fc0
jmp 0x4d1c8a
mov rcx, qword [rbp + 0x88]
mov edx, dword [rbp + 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
mov rax, qword [rsp + 0x28]
mov r9, qword [rax]
lea r8, [0x00602f65]
mov rcx, r14
xor edx, edx
call fcn.004d0380
mov rcx, rdi
mov eax, dword [rdi + 0x90]
mov rcx, qword [rdi]
cmp byte [rcx + 0x67], 0
je 0x4d1c3f
lea rcx, [0x0213b3e8]
jmp 0x4d1c5b
lea ecx, [rax - 1]
test r13d, r13d
cmovns ecx, r13d
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rdi + 0x88]
mov dword [rcx + 8], eax
mov r13d, 1
jmp 0x4d1d03
mov rcx, qword [rsi + 0x88]
mov edx, dword [rsi + 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
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x38]
movzx r13d, byte [rax]
cmp qword [rsp + 0x70], 0
je 0x4d1cc7
mov r8d, dword [rbp + 0x38]
add r8d, 1
mov dword [rbp + 0x38], r8d
mov rax, qword [rsp + 0x70]
mov dword [rax], r8d
cmp dword [rsp + 0x48], 1
jne 0x4d1cc7
mov rcx, rdi
mov rdx, qword [rsp + 0x38]
call fcn.004d1d20
mov rcx, rdi
mov eax, dword [rdi + 0x90]
mov rcx, qword [rdi]
cmp byte [rcx + 0x67], 0
je 0x4d1ce2
lea rcx, [0x0213b3e8]
jmp 0x4d1cfc
lea ecx, [rax - 1]
test ebx, ebx
cmovns ecx, ebx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rdi + 0x88]
add r13d, 3
mov dword [rcx + 8], eax
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x180]
jmp 0x4d0a41