Function at 0x4fd2e0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov qword [rsp + 0x90], rdx
mov dword [rsp + 0x84], 0
mov rbp, qword [rcx]
mov rdx, qword [rcx + 8]
mov r13, qword [rbp]
mov r11, qword [rbp + 8]
mov qword [rsp + 0x88], rcx
mov rax, qword [rcx + 0x10]
mov qword [rsp + 0xe0], rax
movzx eax, byte [rax + 0x10]
mov qword [rsp + 0x58], rbp
mov rcx, qword [rbp + 0x10]
mov qword [rsp + 0x50], rcx
imul r15, rax, 0x68
mov rax, qword [r11 + r15 + 0x28]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x68], rdx
mov edx, dword [rdx + 0x14]
mov dword [rsp + 0x48], 0
mov r12d, 0
test edx, edx
jle 0x4fd44b
movabs r14, 0x1daa94d8498163ec
mov rax, qword [rsp + 0x68]
mov rbx, qword [rax + 0x20]
mov edi, dword [r11 + r15 + 0x4c]
lea r9, [r11 + r15]
add r9, 0x44
add rbx, 0x28
xor esi, esi
not r8
mov r10b, 1
xor r12d, r12d
jmp 0x4fd3c0
add r12d, 1
mov ecx, eax
and ecx, 0x40
xor eax, 0x40
or eax, ecx
mov word [rbx - 0x16], ax
nop dword [rax]
add esi, 1
add rbx, 0x38
add edx, 0xffffffff
je 0x4fd44b
movzx eax, word [rbx - 0x16]
mov ecx, eax
and ecx, 0xffffffbf
mov word [rbx - 0x16], cx
cmp dword [rbx - 0xc], edi
jne 0x4fd3b0
mov rcx, qword [rbx]
not rcx
or rcx, r8
mov rbp, r14
not rbp
or rbp, r14
not rcx
test rcx, rbp
jne 0x4fd3b0
test al, al
js 0x4fd3b0
mov ecx, dword [rbx - 0x14]
mov ebp, ecx
xor ebp, 0x800
and ebp, ecx
test bp, bp
je 0x4fd3b0
test r10b, r10b
je 0x4fd3b0
movzx ecx, byte [r9]
not cl
or cl, 0xa7
cmp cl, 0xff
je 0x4fd39b
mov r10d, r12d
mov r12, qword [rbx - 0x28]
mov ecx, dword [r12 + 4]
mov ebp, ecx
xor ebp, 0xfffffffc
test ebp, ecx
je 0x4fd440
cmp dword [r12 + 0x34], edi
mov r12d, r10d
mov r10b, 1
je 0x4fd39b
jmp 0x4fd3b0
mov r12d, r10d
mov r10b, 1
jmp 0x4fd3b0
mov dword [rsp + 0x78], r12d
mov qword [rsp + 0x98], r13
mov eax, 0
cmp qword [rsp + 0x50], 0
je 0x4fd68b
mov rax, qword [rsp + 0x50]
mov r14d, dword [rax]
mov dword [rsp + 0x48], 0
mov r13d, 0
test r14d, r14d
jle 0x4fd635
lea rax, [r11 + r15]
add rax, 0x4c
mov qword [rsp + 0x70], rax
xor r13d, r13d
lea r15, [0x004ce7b0]
lea r12, [0x004cea20]
lea rdi, [0x005fade0]
jmp 0x4fd4bd
add r13, 1
cmp r13, r14
je 0x4fd63f
mov rsi, r13
shl rsi, 5
mov rax, qword [rsp + 0x50]
mov rbp, qword [rax + rsi + 8]
mov word [rsp + 0xcc], 1
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0xb8], r12
mov dword [rsp + 0xd0], 0
test rbp, rbp
je 0x4fd4b0
lea rcx, [rsp + 0xa8]
mov rdx, rbp
call fcn.004cea30
cmp word [rsp + 0xcc], 0
jne 0x4fd4b0
mov rax, qword [rsp + 0x50]
mov al, byte [rax + rsi + 0x18]
not al
or al, 0xfd
cmp al, 0xff
jne 0x4fd635
mov al, byte [rbp]
cmp al, 0x71
je 0x4fd54c
cmp al, 0xa7
jne 0x4fd635
mov eax, dword [rbp + 0x2c]
mov rcx, qword [rsp + 0x70]
cmp eax, dword [rcx]
je 0x4fd4b0
jmp 0x4fd635
mov rax, qword [rbp + 0x10]
cmp byte [rax], 0xa7
jne 0x4fd635
mov ecx, dword [rax + 0x2c]
mov rdx, qword [rsp + 0x70]
cmp ecx, dword [rdx]
jne 0x4fd635
movzx ecx, word [rax + 0x30]
mov word [rbp + 0x30], cx
movzx eax, word [rax + 0x30]
test ax, ax
js 0x4fd4b0
mov rcx, qword [rsp + 0xa0]
mov rcx, qword [rcx + 8]
lea rdx, [rax + rax*2]
movzx esi, word [rcx + rdx*8 + 0x12]
mov eax, esi
not eax
or eax, 0xfdff
cmp ax, 0xffff
je 0x4fd5df
mov rcx, qword [rcx + rdx*8]
add rcx, 0xffffffffffffffff
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x4fd5b0
not esi
or esi, 0xfffb
cmp si, 0xffff
je 0x4fd5e3
lea rax, [rcx + 1]
cmp byte [rcx + 1], 0
mov rcx, rax
jne 0x4fd5d0
jmp 0x4fd5e6
xor eax, eax
jmp 0x4fd5ea
mov rax, rcx
add rax, 1
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x4fd635
test rax, rax
lea rdx, [0x005fc4bb]
cmove rax, rdx
xor edx, edx
jmp 0x4fd61e
movzx ebx, byte [rbp + rdi]
cmp bl, byte [rsi + rdi]
jne 0x4fd635
add rdx, 1
movzx ebp, byte [rcx + rdx]
movzx esi, byte [rax + rdx]
cmp bpl, sil
jne 0x4fd610
test bpl, bpl
jne 0x4fd61a
jmp 0x4fd4b0
mov eax, 0
cmp r13d, r14d
jne 0x4fd68b
mov rax, qword [rsp + 0x58]
movzx eax, word [rax + 0x44]
test al, al
js 0x4fd65f
shr eax, 6
mov ecx, eax
xor ecx, 0x3fe
and ecx, eax
mov dword [rsp + 0x48], ecx
jmp 0x4fd688
shr eax, 9
mov edx, eax
xor edx, 0x7e
and edx, eax
mov eax, edx
not eax
and eax, 0x8dcd87fe
mov ecx, edx
and ecx, 1
or ecx, eax
xor ecx, 0x8dcd87fc
and edx, 2
or edx, ecx
mov dword [rsp + 0x48], edx
mov eax, r14d
mov rbp, qword [rsp + 0x98]
mov rcx, qword [rbp]
movsxd rbx, dword [rsp + 0x78]
mov dword [rsp + 0x70], eax
movsxd rdi, eax
lea rax, [rbx + rbx*8]
lea rax, [rax + rax*2]
add rax, rbx
lea rsi, [rax + rdi*8]
add rsi, 0x88
test rcx, rcx
je 0x4fd8fa
mov rdx, rsi
call fcn.00429840
mov r13, rax
test rax, rax
je 0x4fd90e
xor r14d, r14d
mov rcx, r13
xor edx, edx
mov r8, rsi
call fcn.005f4c10
lea r15, [rbx*8 + 0x80]
add r15, r13
lea rax, [rbx + rbx*2]
lea rax, [r15 + rax*4]
mov qword [r13 + 8], r15
mov qword [r13 + 0x18], rax
mov qword [rsp + 0x78], rax
lea rax, [rax + rdi*8]
mov qword [r13 + 0x20], rax
mov rax, qword [rsp + 0x68]
mov qword [r13 + 0x60], rax
mov qword [r13 + 0x68], rbp
mov ecx, dword [rsp + 0x48]
mov dword [r13 + 0x70], ecx
mov dword [r13 + 0x74], 0
mov r10d, dword [rax + 0x14]
test r10d, r10d
jle 0x4fd927
mov rbx, qword [rax + 0x20]
add rbx, 0x20
xor r8d, r8d
xor esi, esi
xor r9d, r9d
xor ecx, ecx
mov dword [rsp + 0x58], 0
jmp 0x4fd770
movzx eax, byte [rbx - 9]
mov byte [r15 + r12*4 + 4], al
add ecx, 1
add esi, 1
add rbx, 0x38
cmp r10d, esi
je 0x4fd931
movzx eax, word [rbx - 0xe]
mov edx, eax
xor edx, 0xffbf
test dx, ax
je 0x4fd760
movsxd rdx, ecx
mov ebp, dword [rbx]
lea r12, [rdx + rdx*2]
mov dword [r15 + r12*4], ebp
mov dword [r15 + r12*4 + 8], esi
mov edi, dword [rbx - 0xc]
mov ebp, edi
xor ebp, 0xffffc000
and ebp, edi
cmp bp, 1
jne 0x4fd7e0
test ax, ax
js 0x4fd7ca
mov eax, 1
shl eax, cl
cmp ecx, 0x20
cmovge eax, r8d
mov ebp, eax
and ebp, r9d
xor eax, r9d
or eax, ebp
mov dword [r13 + 0x74], eax
mov r9d, eax
mov byte [r15 + r12*4 + 4], 2
jmp 0x4fd75d
cmp bp, 0x40
je 0x4fd754
movzx r11d, bp
mov edx, r11d
not edx
mov eax, edx
or eax, 0xfffffe7f
cmp eax, 0xffffffff
je 0x4fd818
lea rax, [r15 + r12*4]
add rax, 4
cmp r11d, 0x100
jne 0x4fd85c
mov byte [rax], 0x47
jmp 0x4fd75d
mov byte [r15 + r12*4 + 4], dil
or edx, 0xffffffc3
cmp edx, 0xffffffff
je 0x4fd75d
mov rax, qword [rbx - 0x20]
mov r11, qword [rax + 0x18]
movzx eax, byte [r11]
cmp al, 0xb0
jne 0x4fd83e
movzx eax, byte [r11 + 2]
cmp al, 0x8a
je 0x4fd864
cmp al, 0xb1
jne 0x4fd75d
add r11, 0x20
mov rax, qword [r11]
cmp dword [rax], 2
jl 0x4fd75d
jmp 0x4fd878
mov byte [rax], 0x48
jmp 0x4fd75d
mov r11, qword [r11 + 0x20]
add r11, 0x20
mov rax, qword [r11]
cmp dword [rax], 2
jl 0x4fd75d
lea rax, [r15 + r12*4]
add rax, 4
mov qword [rsp + 0x48], rax
mov eax, 1
shl eax, cl
cmp ecx, 0x10
cmovge eax, r8d
mov edi, eax
not edi
mov edx, dword [rsp + 0x58]
mov r11d, edx
not r11d
mov r12d, edi
and r12d, 0x3125
and eax, 0xffffceda
or eax, r12d
or edi, r11d
and r11d, 0x3125
and edx, 0xffffceda
or edx, r11d
xor edx, eax
not edi
or edi, edx
mov dword [rsp + 0x58], edi
cmp bp, 4
je 0x4fd8ed
cmp bp, 0x10
jne 0x4fd75d
mov rax, qword [rsp + 0x48]
mov byte [rax], 8
jmp 0x4fd75d
mov rax, qword [rsp + 0x48]
mov byte [rax], 0x20
jmp 0x4fd75d
mov rcx, rsi
call fcn.00404550
mov r13, rax
test rax, rax
jne 0x4fd6d6
lea rdx, [0x005fc480]
mov rcx, rbp
call fcn.00419aa0
mov eax, 7
jmp 0x4fe396
mov dword [rsp + 0x58], 0
xor ecx, ecx
mov qword [rsp + 0x48], r13
mov dword [r13], ecx
mov eax, dword [rsp + 0x70]
test eax, eax
jle 0x4fd9f6
mov edi, eax
shl rdi, 5
xor esi, esi
lea r13, [0x004ce7b0]
lea r12, [0x004cea20]
lea rbp, [rsp + 0xa8]
xor r15d, r15d
xor r14d, r14d
jmp 0x4fd97d
add r15, 1
add rsi, 0x20
cmp rdi, rsi
je 0x4fd9f6
mov rax, qword [rsp + 0x50]
mov rbx, qword [rax + rsi + 8]
mov word [rsp + 0xcc], 1
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0xb8], r12
mov dword [rsp + 0xd0], 0
test rbx, rbx
je 0x4fd970
mov rcx, rbp
mov rdx, rbx
call fcn.004cea30
cmp word [rsp + 0xcc], 0
jne 0x4fd970
movsx eax, word [rbx + 0x30]
movsxd r14, r14d
mov rdx, qword [rsp + 0x78]
mov dword [rdx + r14*8], eax
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + rsi + 0x18]
mov ecx, eax
xor cl, 0xfe
and cl, al
mov byte [rdx + r14*8 + 4], cl
add r14d, 1
jmp 0x4fd970
mov rdi, qword [rsp + 0x48]
mov dword [rdi + 0x10], r14d
mov rbx, qword [rsp + 0xe0]
mov word [rbx + 0x12], 0
mov dword [rbx + 0x38], 0x400
mov word [rbx + 0x3c], 0
and byte [rbx + 0x1c], 0xfe
lea r13, [rdi + 0x80]
mov ecx, dword [rdi]
movzx eax, word [rbx + 0x40]
cmp ecx, eax
mov r15, qword [rsp + 0x98]
mov qword [rsp + 0x50], rcx
jle 0x4fdcc1
mov rbp, qword [r15]
lea esi, [rcx + 7]
and esi, 0xfffffff8
movsxd rdx, esi
shl rdx, 3
mov rcx, rbp
call fcn.00429840
test rax, rax
je 0x4fdaad
mov r12, rax
mov rdx, qword [rbx + 0x48]
movzx r8d, word [rbx + 0x40]
shl r8, 3
mov rcx, rax
call fcn.005f4c20
mov r14, qword [rbx + 0x48]
lea rax, [rbx + 0x58]
cmp r14, rax
je 0x4fdcb9
test rbp, rbp
je 0x4fdc2f
cmp qword [rbp + 0x300], 0
je 0x4fdc14
mov rcx, rbp
mov rdx, r14
call fcn.004297f0
jmp 0x4fdcb9
mov r14, qword [r15]
cmp dword [rdi], 0
jle 0x4fdbff
movabs r12, 0x6b050c458c85e9
xor esi, esi
mov rbp, r12
not rbp
jmp 0x4fdaf4
mov rdx, rbx
call fcn.004297f0
mov qword [rdi + rsi*8 + 0x80], 0
add rsi, 1
movsxd rax, dword [rdi]
cmp rsi, rax
jge 0x4fdbff
mov rbx, qword [r13 + rsi*8]
test rbx, rbx
je 0x4fdad8
mov eax, dword [rbx + 0x14]
not eax
or eax, 0x6fff
cmp ax, 0xffff
jne 0x4fdb14
cmp dword [rbx + 0x20], 0
je 0x4fdb1c
mov rcx, rbx
call fcn.00449ce0
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x4fdb60
cmp qword [rcx + 0x300], 0
jne 0x4fdad0
cmp qword [rcx + 0x1f0], rbx
jbe 0x4fdb60
cmp qword [rcx + 0x1e0], rbx
jbe 0x4fdbd3
cmp qword [rcx + 0x1e8], rbx
jbe 0x4fdbe9
nop
cmp dword [0x005f6010], 0
je 0x4fdbc5
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fdb7b
call qword [0x005f6090]
mov rcx, rbx
call qword [0x005f6048]
cdqe
sub qword [0x0213b040], rax
mov rax, qword [0x0213b088]
add rax, r12
add rax, rbp
mov qword [0x0213b088], rax
mov rcx, rbx
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fdad8
call qword [0x005f60a0]
jmp 0x4fdad8
mov rcx, rbx
call qword [0x005f6038]
jmp 0x4fdad8
mov rax, qword [rcx + 0x1d8]
mov qword [rbx], rax
mov qword [rcx + 0x1d8], rbx
jmp 0x4fdad8
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov qword [rcx + 0x1c8], rbx
jmp 0x4fdad8
mov rcx, r14
mov rdx, rdi
call fcn.00408130
mov eax, 7
jmp 0x4fe396
cmp qword [rbp + 0x1f0], r14
jbe 0x4fdc2f
cmp qword [rbp + 0x1e0], r14
jbe 0x4fdc95
cmp qword [rbp + 0x1e8], r14
jbe 0x4fdca8
test r14, r14
je 0x4fdcb9
cmp dword [0x005f6010], 0
je 0x4fdc8a
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fdc53
call qword [0x005f6090]
mov rcx, r14
call qword [0x005f6048]
cdqe
sub qword [0x0213b040], rax
add qword [0x0213b088], 0xffffffffffffffff
mov rcx, r14
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fdcb9
call qword [0x005f60a0]
jmp 0x4fdcb9
mov rcx, r14
call qword [0x005f6038]
jmp 0x4fdcb9
mov rax, qword [rbp + 0x1d8]
mov qword [r14], rax
mov qword [rbp + 0x1d8], r14
jmp 0x4fdcb9
mov rax, qword [rbp + 0x1c8]
mov qword [r14], rax
mov qword [rbp + 0x1c8], r14
mov qword [rbx + 0x48], r12
mov word [rbx + 0x40], si
lea rax, [rsp + 0x84]
mov qword [rsp + 0x38], rax
lea r12, [rsp + 0xa8]
mov qword [rsp + 0x30], r12
mov ebp, dword [rsp + 0x58]
mov word [rsp + 0x28], bp
mov qword [rsp + 0x20], rdi
mov r14, qword [rsp + 0x88]
mov rcx, r14
mov rsi, qword [rsp + 0x90]
mov rdx, rsi
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.004ffa30
cmp dword [rsp + 0x84], 0
je 0x4fdd45
mov qword [rsp + 0x30], r12
mov word [rsp + 0x28], bp
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x38], 0
mov rcx, r14
mov rdx, rsi
mov r8, 0xffffffffffffffff
xor r9d, r9d
call fcn.004ffa30
mov r12d, eax
test eax, eax
jne 0x4fe17d
mov rax, qword [rbx]
not rax
or rax, rsi
mov qword [rsp + 0x78], rax
cmp rax, 0xffffffffffffffff
sete cl
setne al
mov r9d, dword [rsp + 0xa8]
test r9d, r9d
sete r8b
setne dl
xor dl, al
jne 0x4fdd8d
or cl, r8b
xor r12d, r12d
xor cl, 1
je 0x4fe17d
mov qword [rsp + 0xd8], r13
mov r12, rsi
not r12
test r9d, r9d
je 0x4fde0e
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
mov word [rsp + 0x28], bp
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x38], 0
mov rcx, r14
mov rdx, rsi
mov r8, 0xffffffffffffffff
mov r9w, 1
call fcn.004ffa30
mov edx, eax
mov rax, qword [rbx]
mov rbp, r12
xor rbp, rax
not rbp
xor ecx, ecx
and rbp, rax
mov qword [rsp + 0x70], rbp
sete cl
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x64], ecx
test edx, edx
mov rax, qword [rsp + 0x68]
mov r11, qword [rsp + 0x50]
jne 0x4fe05f
jmp 0x4fde27
xor eax, eax
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x44], 0
mov rax, qword [rsp + 0x68]
mov r11, qword [rsp + 0x50]
test r11d, r11d
jle 0x4fe055
not qword [rsp + 0x78]
movabs r14, 0xed94f747d6150ede
mov ecx, r11d
and ecx, 1
mov qword [rsp + 0xa0], rcx
mov r13d, r11d
xor r13d, 1
and r13d, r11d
xor r15d, r15d
mov ecx, dword [rsp + 0x44]
mov dword [rsp + 0x64], ecx
jmp 0x4fde92
mov rax, qword [rsp + 0x68]
test edx, edx
je 0x4fde92
jmp 0x4fe05f
mov rax, qword [rsp + 0x68]
mov r11, qword [rsp + 0x50]
test edx, edx
jne 0x4fe05f
mov r9, qword [rax + 0x20]
mov rax, qword [rsp + 0x48]
mov r8, qword [rax + 8]
cmp r11d, 1
jne 0x4fdec0
mov rdx, 0xffffffffffffffff
xor edi, edi
jmp 0x4fdf5c
lea rsi, [r8 + 8]
mov rdx, 0xffffffffffffffff
xor edi, edi
mov r10, r13
movsxd rcx, dword [rsi]
imul rcx, rcx, 0x38
mov rbx, qword [r9 + rcx + 0x28]
not rbx
mov rcx, r12
not rcx
mov rax, r14
not rax
or rbx, rcx
or rax, r14
not rbx
and rbx, rax
cmp rbx, rdx
mov rax, rdx
cmovb rax, rbx
cmp rbx, r15
cmovbe rax, rdx
mov edx, edi
and edx, 1
mov rbp, rdi
xor rbp, 1
or rbp, rdx
lea rdx, [rbp*2]
add rdx, rbp
movsxd rdx, dword [r8 + rdx*4 + 8]
imul rdx, rdx, 0x38
mov rdx, qword [r9 + rdx + 0x28]
xor rcx, rdx
and rcx, rdx
cmp rcx, rax
mov rdx, rax
cmovb rdx, rcx
cmp rcx, r15
cmovbe rdx, rax
add rdi, 2
add r10, 0xfffffffffffffffe
add rsi, 0x18
cmp r13, rdi
jne 0x4fded0
cmp qword [rsp + 0xa0], 0
je 0x4fdf9b
lea rax, [rdi + rdi*2]
movsxd rax, dword [r8 + rax*4 + 8]
imul rax, rax, 0x38
mov rax, qword [r9 + rax + 0x28]
mov rcx, r12
xor rcx, rax
not rcx
and rcx, rax
cmp rcx, rdx
setb al
cmp rcx, r15
seta bl
cmovbe rcx, rdx
xor bl, al
cmove rdx, rcx
cmp rdx, 0xffffffffffffffff
je 0x4fe05d
mov r15, rdx
cmp rdx, qword [rsp + 0x78]
sete al
cmp rdx, qword [rsp + 0x70]
sete cl
xor edx, edx
test al, cl
jne 0x4fde70
xor al, cl
jne 0x4fde70
mov rax, r15
mov rsi, qword [rsp + 0x90]
and rax, rsi
mov r8, r15
xor r8, rsi
or r8, rax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x58]
mov word [rsp + 0x28], ax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x88]
mov rdx, rsi
xor r9d, r9d
call fcn.004ffa30
mov edx, eax
mov rax, qword [rsp + 0xe0]
cmp qword [rax], rsi
jne 0x4fde80
cmp dword [rsp + 0xa8], 0
mov ecx, 1
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x64], 1
cmove eax, ecx
mov dword [rsp + 0x44], eax
jmp 0x4fde80
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x64], eax
xor edx, edx
mov eax, edx
mov ecx, dword [rsp + 0x64]
and eax, ecx
xor ecx, edx
or ecx, eax
je 0x4fe0a5
mov r15, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x90]
mov r14, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x48]
mov r13, qword [rsp + 0xd8]
mov r8d, dword [rsp + 0x58]
lea r9, [rsp + 0xa8]
mov ebx, dword [rsp + 0x44]
jmp 0x4fe11b
lea rbp, [rsp + 0xa8]
mov qword [rsp + 0x30], rbp
mov ebx, dword [rsp + 0x58]
mov word [rsp + 0x28], bx
mov rdi, qword [rsp + 0x48]
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x38], 0
mov r14, qword [rsp + 0x88]
mov rcx, r14
mov rsi, qword [rsp + 0x90]
mov rdx, rsi
mov r8, rsi
xor r9d, r9d
call fcn.004ffa30
mov r9, rbp
mov r8d, ebx
cmp dword [rsp + 0xa8], 0
mov edx, eax
mov eax, 1
mov ebx, dword [rsp + 0x44]
cmove ebx, eax
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0xd8]
mov eax, ebx
not eax
mov ecx, edx
not ecx
mov ebp, eax
and ebp, 0xc4cfbd3a
and ebx, 0x3b3042c5
or ebx, ebp
or eax, ecx
and ecx, 0xc4cfbd3a
mov r12d, edx
and edx, 0x3b3042c5
or edx, ecx
xor edx, ebx
not eax
or eax, edx
jne 0x4fe17d
mov qword [rsp + 0x30], r9
mov word [rsp + 0x28], r8w
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x38], 0
mov rcx, r14
mov rdx, rsi
mov r8, rsi
mov r9w, 1
call fcn.004ffa30
mov r12d, eax
cmp dword [rdi + 0x38], 0
je 0x4fe21b
mov rsi, qword [rdi + 0x30]
test rsi, rsi
je 0x4fe21b
cmp dword [0x005f6010], 0
je 0x4fe373
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fe1b3
call qword [0x005f6090]
mov rcx, rsi
call qword [0x005f6048]
cdqe
movabs rcx, 0xcbf2e928d5c1efd1
mov rdx, qword [0x0213b040]
add rdx, rcx
sub rdx, rax
sub rdx, rcx
mov qword [0x0213b040], rdx
movabs rax, 0xa9b9ae343238c5f4
mov rcx, rax
not rcx
add rcx, qword [0x0213b088]
add rcx, rax
mov qword [0x0213b088], rcx
mov rcx, rsi
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fe21b
call qword [0x005f60a0]
mov r14, qword [r15]
cmp dword [rdi], 0
jle 0x4fe388
movabs rsi, 0x3f43b521e0cc9591
xor ebp, ebp
jmp 0x4fe264
mov rdx, rbx
call fcn.004297f0
mov qword [rdi + rbp*8 + 0x80], 0
add rbp, 1
movsxd rax, dword [rdi]
cmp rbp, rax
jge 0x4fe388
mov rbx, qword [r13 + rbp*8]
test rbx, rbx
je 0x4fe248
mov eax, dword [rbx + 0x14]
not eax
or eax, 0x6fff
cmp ax, 0xffff
jne 0x4fe284
cmp dword [rbx + 0x20], 0
je 0x4fe28c
mov rcx, rbx
call fcn.00449ce0
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x4fe2d0
cmp qword [rcx + 0x300], 0
jne 0x4fe240
cmp qword [rcx + 0x1f0], rbx
jbe 0x4fe2d0
cmp qword [rcx + 0x1e0], rbx
jbe 0x4fe347
cmp qword [rcx + 0x1e8], rbx
jbe 0x4fe35d
nop
cmp dword [0x005f6010], 0
je 0x4fe339
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fe2eb
call qword [0x005f6090]
mov rcx, rbx
call qword [0x005f6048]
mov rcx, qword [0x0213b040]
cdqe
sub rcx, rsi
sub rcx, rax
add rcx, rsi
mov qword [0x0213b040], rcx
add qword [0x0213b088], 0xffffffffffffffff
mov rcx, rbx
call qword [0x005f6038]
mov rcx, qword [0x0213b0e8]
test rcx, rcx
je 0x4fe248
call qword [0x005f60a0]
jmp 0x4fe248
mov rcx, rbx
call qword [0x005f6038]
jmp 0x4fe248
mov rax, qword [rcx + 0x1d8]
mov qword [rbx], rax
mov qword [rcx + 0x1d8], rbx
jmp 0x4fe248
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov qword [rcx + 0x1c8], rbx
jmp 0x4fe248
mov rcx, rsi
call qword [0x005f6038]
mov r14, qword [r15]
cmp dword [rdi], 0
jg 0x4fe227
mov rcx, r14
mov rdx, rdi
call fcn.00408130
mov eax, r12d
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret