Function at 0x2fc4c15a0
Capabilities:
Access peb ldr_data
Encode data using xor
Get kernel32 base address
Get process filename
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, 0x98
mov eax, dword [0x2fc4e6160]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x2fc4e616c], 0xa
setl cl
test cl, al
jne 0x2fc4c15dd
xor cl, al
jne 0x2fc4c15dd
jmp 0x2fc4c15db
mov r13d, dword [0x2fc4c5020]
mov dword [rsp + 0x94], r13d
mov eax, dword [0x2fc4e6150]
mov ecx, 0xffffffff
lea edx, [rax + rcx]
imul edx, eax
xor edx, ecx
or edx, 0xfffffffe
cmp edx, ecx
sete al
cmp dword [0x2fc4e6168], 0xa
setl bl
mov ecx, ebx
and cl, al
xor bl, al
or bl, cl
cmp bl, 1
jne 0x2fc4c1691
xor edi, edi
movabs rsi, 0x103091b51f5e1a4f
lea r15, [0x2fc4c5020]
mov r8b, 0xff
mov r9b, 0x1a
mov r10b, 0xe5
mov rax, rdi
shr rax, 3
mul rsi
cmp r13, rdi
je 0x2fc4c1693
shr rdx, 4
imul rax, rdx, 0xfffffffffffff818
add rax, r15
add rax, 4
mov al, byte [rax + rdi]
mov cl, byte [rdi + r15 + 0x7ec]
mov edx, ecx
xor dl, r8b
and dl, r9b
and cl, r10b
or cl, dl
mov edx, eax
xor dl, r8b
and dl, r9b
and al, r10b
or al, dl
xor al, cl
mov byte [rdi + r15 + 0x7ec], al
inc rdi
test bl, bl
jne 0x2fc4c163a
jmp 0x2fc4c1691
mov eax, dword [0x2fc4e6160]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x2fc4e616c], 0xa
setl cl
test cl, al
jne 0x2fc4c16bf
xor cl, al
je 0x2fc4c177e
lea r11, [r15 + r13]
add r11, 0x7ec
mov eax, dword [0x2fc4e6150]
mov edx, dword [0x2fc4e6168]
mov ecx, 0xffffffff
lea ebx, [rax + rcx]
imul ebx, eax
mov ebp, 0xfffffffe
mov eax, ebx
xor eax, ebp
test eax, ebx
setne r8b
sete bl
mov r9d, 9
cmp edx, r9d
setg al
mov r10d, 0xa
cmp edx, r10d
setl dl
xor dl, bl
or al, r8b
mov r8b, 1
xor al, r8b
or al, dl
mov ebx, dword [0x2fc4e6160]
mov edi, dword [0x2fc4e616c]
cmp edi, r10d
setl dl
cmp edi, r9d
setg r9b
add ecx, ebx
imul ecx, ebx
xor ebp, ecx
test ebp, ecx
setne cl
sete r10b
or cl, r9b
xor cl, r8b
mov ebx, edx
xor bl, r10b
or cl, bl
and dl, r10b
or dl, bl
xor ebp, ebp
mov ebx, dword [r11 + rbp]
mov dword [rsp + rbp + 0x5c], ebx
test rbp, rbp
lea rbp, [rbp + 4]
jne 0x2fc4c1755
test al, al
jne 0x2fc4c1782
test cl, cl
je 0x2fc4c1780
mov ebp, dword [r11]
mov dword [rsp + 0x5c], ebp
mov ebp, 0
test dl, dl
jne 0x2fc4c1755
jmp 0x2fc4c177e
jmp 0x2fc4c1780
mov ebp, dword [rsp + 0x5c]
test rbp, rbp
je 0x2fc4c17d3
lea rbx, [r15 + r13]
add rbx, 0x7f0
xor edi, edi
mov r8b, 0xff
mov rax, rdi
shr rax, 3
mul rsi
shr rdx, 4
imul rax, rdx, 0xfffffffffffff818
add rax, r15
mov al, byte [rdi + rax + 4]
mov cl, byte [rbx + rdi]
mov edx, ecx
xor dl, r8b
and dl, al
xor al, r8b
and al, cl
or al, dl
mov byte [rbx + rdi], al
inc rdi
cmp rdi, rbp
jb 0x2fc4c179b
mov eax, dword [0x2fc4e617c]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x2fc4e6184], 0xa
setl cl
test cl, al
jne 0x2fc4c17fd
xor cl, al
jne 0x2fc4c17fd
jmp 0x2fc4c17fb
add r11, 4
add r13, 0x7f0
mov r9d, 0xffffffff
mov qword [rsp + 0x48], r11
movsxd rcx, dword [0x2fc4c5848]
cmp byte [r11], 0
mov r12, r11
je 0x2fc4c1833
mov r12, r11
cmp byte [r12 + 1], 0
lea r12, [r12 + 1]
jne 0x2fc4c1826
movsx eax, byte [r12 + 1]
mov rbp, r12
mov qword [rsp + 0x28], rax
test eax, eax
je 0x2fc4c1852
mov rbp, r12
cmp byte [rbp + 2], 0
lea rbp, [rbp + 1]
jne 0x2fc4c1848
lea rdi, [rbp + 2]
cmp byte [rbp + 2], 0
mov qword [rsp + 0x20], rcx
je 0x2fc4c186b
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x2fc4c1861
mov ecx, dword [0x2fc4e6174]
mov edx, dword [0x2fc4e6180]
lea ebx, [rcx + r9]
imul ebx, ecx
mov ecx, ebx
mov r10d, 0xfffffffe
xor ecx, r10d
test ecx, ebx
setne r14b
sete bl
mov ecx, 0xa
cmp edx, ecx
setl al
cmp edx, 9
setg r8b
xor al, bl
mov ebx, dword [0x2fc4e6178]
lea esi, [rbx + r9]
imul esi, ebx
xor esi, r9d
or esi, r10d
cmp esi, r9d
sete bl
cmp dword [0x2fc4e6154], ecx
setl r9b
mov rcx, qword [rsp + 0x28]
lea esi, [rcx - 0x41]
lea edx, [rcx + 0x20]
cmp sil, 0x1a
cmovae edx, ecx
mov dword [rsp + 0x30], edx
test al, al
jne 0x2fc4c18ef
or r8b, r14b
xor r8b, 1
je 0x2fc4c1ff4
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x88], rbp
mov rax, qword [rsp + 0x20]
add rax, r15
add rax, 0x7ec
mov qword [rsp + 0x40], rax
lea rcx, [r12 + 1]
mov edx, r9d
mov eax, r9d
and al, bl
xor dl, bl
or dl, al
mov byte [rsp + 0x38], dl
mov rax, qword gs:[0x60]
mov r11, qword [rax + 0x18]
add r11, 0x10
mov qword [rsp + 0x20], rcx
not rcx
mov qword [rsp + 0x50], rcx
mov r11, qword [r11]
mov r10, qword [r11 + 0x60]
cmp byte [rsp + 0x28], 0
je 0x2fc4c1961
mov rcx, qword [rsp + 0x20]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x2fc4c1955
jmp 0x2fc4c1966
mov rcx, qword [rsp + 0x20]
cmp byte [rsp + 0x38], 0
je 0x2fc4c1ff0
mov r14, rcx
sub r14, qword [rsp + 0x20]
je 0x2fc4c1a1a
movzx edi, word [r10]
test edi, edi
sete r9b
setne al
lea ebp, [rdi - 0x41]
lea ebx, [rdi + 0x20]
cmp bp, 0x1a
cmovae ebx, edi
sub ebx, dword [rsp + 0x30]
setne dl
sete r8b
cmp r9b, dl
jne 0x2fc4c1a12
or al, r8b
xor al, 1
jne 0x2fc4c1a12
add rcx, qword [rsp + 0x50]
xor edi, edi
cmp rcx, rdi
je 0x2fc4c1a1a
movsx edx, byte [r12 + rdi + 2]
movzx ebp, word [r10 + rdi*2 + 2]
test ebp, ebp
sete r9b
setne al
lea esi, [rbp - 0x41]
mov r8d, 0x20
lea ebx, [r8 + rbp]
cmp si, 0x1a
cmovae ebx, ebp
lea ebp, [rdx - 0x41]
lea esi, [rdx + r8]
cmp bpl, 0x1a
cmovae esi, edx
sub ebx, esi
setne dl
sete r8b
cmp r9b, dl
jne 0x2fc4c1a12
dec r14
or al, r8b
mov dl, 1
xor al, dl
inc rdi
test al, al
je 0x2fc4c19b7
test ebx, ebx
jne 0x2fc4c1942
mov r10, qword [r11 + 0x30]
movsxd rax, dword [r10 + 0x3c]
cmp dword [r10 + rax + 0x8c], 0
je 0x2fc4c1b39
mov esi, dword [r10 + rax + 0x88]
cmp dword [r10 + rsi + 0x14], 0
je 0x2fc4c1b39
mov eax, dword [0x2fc4e6164]
mov ecx, dword [0x2fc4e6170]
lea edx, [rax - 1]
imul edx, eax
mov r14d, edx
xor r14d, 0xfffffffe
and r14d, edx
sete bl
setne r8b
cmp ecx, 0xa
setl al
cmp ecx, 9
setg dl
cmp al, bl
jne 0x2fc4c1a84
or dl, r8b
xor dl, 1
je 0x2fc4c2002
mov eax, dword [r10 + rsi + 0x18]
mov dword [rsp + 0x28], eax
test eax, eax
je 0x2fc4c1b39
mov edi, dword [r10 + rsi + 0x1c]
mov eax, dword [0x2fc4e6158]
mov edx, dword [0x2fc4e615c]
lea ebp, [rax - 1]
imul ebp, eax
mov eax, ebp
xor eax, 0xfffffffe
test eax, ebp
sete bl
setne r8b
cmp edx, 0xa
setl al
cmp edx, 9
setg dl
cmp al, bl
jne 0x2fc4c1ad6
or dl, r8b
xor dl, 1
je 0x2fc4c2006
mov dword [rsp + 0x38], ecx
add rdi, r10
mov qword [rsp + 0x30], rdi
mov eax, dword [r10 + rsi + 0x20]
mov r11d, dword [r10 + rsi + 0x24]
add rax, r10
add r11, r10
xor edi, edi
mov esi, dword [rax]
add rsi, r10
xor edx, edx
lea rbp, [rdx + r13]
mov r8b, byte [r15 + rbp]
mov r9b, byte [rsi + rdx]
cmp r8b, r9b
sete cl
test r8b, r8b
setne bl
cmp cl, bl
jne 0x2fc4c1b1f
inc rdx
test r8b, r8b
jne 0x2fc4c1afb
cmp r8b, r9b
je 0x2fc4c1b76
add r11, 2
add rax, 4
inc edi
cmp edi, dword [rsp + 0x28]
jne 0x2fc4c1af4
xor r10d, r10d
jmp 0x2fc4c1b85
mov eax, dword [0x2fc4e6164]
mov ecx, dword [0x2fc4e6170]
lea edx, [rax - 1]
imul edx, eax
mov r14d, edx
xor r14d, 0xfffffffe
and r14d, edx
sete al
cmp ecx, 0xa
setl dl
test dl, al
jne 0x2fc4c1b71
xor dl, al
mov r10d, 0
jne 0x2fc4c1b89
jmp 0x2fc4c1ffc
xor r10d, r10d
jmp 0x2fc4c1b89
movzx eax, word [r11]
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + rax*4]
add r10, rax
mov ecx, dword [rsp + 0x38]
test r14d, r14d
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp dl, bl
jne 0x2fc4c1bac
or al, cl
xor al, 1
je 0x2fc4c1ff6
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + 0x50]
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r10
mov ebp, dword [0x2fc4e6150]
mov ecx, dword [0x2fc4e6168]
mov edi, 0xffffffff
lea edx, [rdi + rbp]
imul edx, ebp
xor edx, edi
or edx, 0xfffffffe
cmp edx, edi
sete r8b
setne dl
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, r8b
jne 0x2fc4c200a
or cl, dl
xor cl, 1
jne 0x2fc4c200a
movsxd r8, dword [0x2fc4c5848]
mov eax, dword [0x2fc4e617c]
mov edx, dword [0x2fc4e6184]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
jne 0x2fc4c1c4b
or cl, al
xor cl, 1
je 0x2fc4c1ff8
mov rax, qword [rsp + 0x48]
cmp byte [rax], 0
mov r12, rax
je 0x2fc4c1c68
mov r12, rax
cmp byte [r12 + 1], 0
lea r12, [r12 + 1]
jne 0x2fc4c1c5b
movsx eax, byte [r12 + 1]
mov qword [rsp + 0x28], rax
test eax, eax
je 0x2fc4c1c85
lea rax, [r12 + 2]
cmp byte [rax], 0
lea rax, [rax + 1]
jne 0x2fc4c1c7c
mov eax, dword [0x2fc4e6174]
lea edx, [rax + rdi]
imul edx, eax
xor edx, edi
mov ecx, 0xfffffffe
or edx, ecx
cmp edx, edi
sete r9b
mov esi, 0xa
cmp dword [0x2fc4e6180], esi
setl dl
mov ebp, dword [0x2fc4e6178]
lea ebx, [rdi + rbp]
imul ebx, ebp
xor ebx, edi
or ebx, ecx
cmp ebx, edi
sete bl
cmp dword [0x2fc4e6154], esi
setl al
mov rcx, qword [rsp + 0x28]
lea edi, [rcx - 0x41]
lea ebp, [rcx + 0x20]
cmp dil, 0x1a
cmovae ebp, ecx
mov dword [rsp + 0x30], ebp
test dl, r9b
jne 0x2fc4c1cf0
xor dl, r9b
je 0x2fc4c1ffa
mov qword [rsp + 0x40], r8
lea rdx, [r12 + 1]
mov ecx, eax
and al, bl
xor cl, bl
or cl, al
mov byte [rsp + 0x38], cl
mov rax, qword gs:[0x60]
mov r14, qword [rax + 0x18]
add r14, 0x10
mov qword [rsp + 0x20], rdx
not rdx
mov qword [rsp + 0x50], rdx
mov r14, qword [r14]
mov r9, qword [r14 + 0x60]
cmp byte [rsp + 0x28], 0
je 0x2fc4c1d43
mov rax, qword [rsp + 0x20]
cmp byte [rax + 1], 0
lea rax, [rax + 1]
jne 0x2fc4c1d37
jmp 0x2fc4c1d48
mov rax, qword [rsp + 0x20]
cmp byte [rsp + 0x38], 0
je 0x2fc4c1ff2
mov rbx, rax
sub rbx, qword [rsp + 0x20]
je 0x2fc4c1df3
movzx edx, word [r9]
test edx, edx
sete r8b
lea edi, [rdx - 0x41]
lea esi, [rdx + 0x20]
cmp di, 0x1a
cmovae esi, edx
sub esi, dword [rsp + 0x30]
setne dl
test r8b, dl
jne 0x2fc4c1deb
xor r8b, dl
jne 0x2fc4c1deb
add rax, qword [rsp + 0x50]
xor r8d, r8d
cmp rax, r8
je 0x2fc4c1df3
movsx edx, byte [r12 + r8 + 2]
movzx edi, word [r9 + r8*2 + 2]
test edi, edi
sete r11b
setne r10b
lea ebp, [rdi - 0x41]
mov ecx, 0x20
lea esi, [rdi + rcx]
cmp bp, 0x1a
cmovae esi, edi
lea edi, [rdx - 0x41]
lea ebp, [rdx + rcx]
cmp dil, 0x1a
cmovae ebp, edx
sub esi, ebp
setne cl
sete dl
cmp r11b, cl
jne 0x2fc4c1deb
dec rbx
or r10b, dl
mov cl, 1
xor r10b, cl
inc r8
test r10b, r10b
je 0x2fc4c1d91
test esi, esi
jne 0x2fc4c1d24
mov r14, qword [r14 + 0x30]
movsxd rax, dword [r14 + 0x3c]
cmp dword [r14 + rax + 0x8c], 0
je 0x2fc4c1f17
mov edi, dword [r14 + rax + 0x88]
cmp dword [r14 + rdi + 0x14], 0
je 0x2fc4c1f17
mov eax, dword [0x2fc4e6164]
mov r10d, dword [0x2fc4e6170]
mov ecx, 0xffffffff
lea r11d, [rax + rcx]
imul r11d, eax
xor r11d, ecx
or r11d, 0xfffffffe
mov ebp, 0xffffffff
cmp r11d, ecx
sete dl
setne al
cmp r10d, 0xa
setl bl
cmp r10d, 9
setg cl
cmp bl, dl
jne 0x2fc4c1e6a
or cl, al
xor cl, 1
je 0x2fc4c2004
mov r8d, dword [r14 + rdi + 0x18]
test r8d, r8d
je 0x2fc4c1f17
mov esi, dword [r14 + rdi + 0x1c]
mov eax, dword [0x2fc4e6158]
mov edx, dword [0x2fc4e615c]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
jne 0x2fc4c1eb7
or cl, al
xor cl, 1
je 0x2fc4c2008
xor r11d, ebp
add rsi, r14
mov qword [rsp + 0x20], rsi
mov esi, dword [r14 + rdi + 0x20]
mov r12d, dword [r14 + rdi + 0x24]
add rsi, r14
add r12, r14
xor edi, edi
mov ebp, dword [rsi]
add rbp, r14
xor eax, eax
lea rdx, [rax + r13]
mov dl, byte [r15 + rdx]
mov bl, byte [rbp + rax]
cmp dl, bl
sete cl
test dl, dl
setne r9b
cmp cl, r9b
jne 0x2fc4c1efe
inc rax
test dl, dl
jne 0x2fc4c1edb
cmp dl, bl
je 0x2fc4c1fdb
add r12, 2
add rsi, 4
inc edi
cmp edi, r8d
jne 0x2fc4c1ed4
jmp 0x2fc4c1f5e
mov eax, dword [0x2fc4e6164]
mov r10d, dword [0x2fc4e6170]
lea ecx, [rax - 1]
imul ecx, eax
mov r11d, ecx
xor r11d, 0xfffffffe
and r11d, ecx
setne al
sete dl
cmp r10d, 9
setg cl
cmp r10d, 0xa
setl bl
xor bl, dl
jne 0x2fc4c1f5e
or cl, al
xor cl, 1
mov r14d, 0
jne 0x2fc4c1f61
jmp 0x2fc4c2000
xor r14d, r14d
test r11d, r11d
sete al
cmp r10d, 0xa
setl cl
test al, cl
jne 0x2fc4c1f7a
xor al, cl
je 0x2fc4c1ffe
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + r15 + 0x83c]
mov r8d, 0x3000
mov r9d, 0x40
xor ecx, ecx
call r14
mov eax, dword [0x2fc4e617c]
mov r9d, 0xffffffff
lea ecx, [rax + r9]
imul ecx, eax
xor ecx, r9d
or ecx, 0xfffffffe
cmp ecx, r9d
sete al
cmp dword [0x2fc4e6184], 0xa
setl cl
test cl, al
mov r11, qword [rsp + 0x48]
jne 0x2fc4c1813
xor cl, al
jne 0x2fc4c1813
jmp 0x2fc4c17fb
movzx eax, word [r12]
mov rcx, qword [rsp + 0x20]
mov eax, dword [rcx + rax*4]
add r14, rax
jmp 0x2fc4c1f61
jmp 0x2fc4c1ff0
jmp 0x2fc4c1ff2
jmp 0x2fc4c1ff4
jmp 0x2fc4c1ff6
jmp 0x2fc4c1ff8
jmp 0x2fc4c1ffa
jmp 0x2fc4c1ffc
jmp 0x2fc4c1ffe
jmp 0x2fc4c2000
jmp 0x2fc4c2002
jmp 0x2fc4c2004
jmp 0x2fc4c2006
jmp 0x2fc4c2008
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x40]
movzx edi, word [rax + 6]
test di, di
je 0x2fc4c20cc
mov rax, qword [rsp + 0x40]
lea r9, [rax + 0x108]
xor r14d, r14d
mov r8d, 0xffffffff
lea rsi, [r14 + r14*4]
mov eax, dword [r9 + rsi*8 + 0x10]
mov edx, dword [0x2fc4e6160]
mov ebp, dword [0x2fc4e616c]
lea ebx, [rdx + r8]
imul ebx, edx
xor ebx, r8d
or ebx, 0xfffffffe
cmp ebx, r8d
sete r11b
setne r10b
cmp ebp, 0xa
setl dl
cmp ebp, 9
setg bl
cmp dl, r11b
jne 0x2fc4c2080
or bl, r10b
xor bl, 1
je 0x2fc4c23f4
test eax, eax
je 0x2fc4c20bd
mov edi, dword [r9 + rsi*8 + 0xc]
mov edx, dword [r9 + rsi*8 + 0x14]
add rdi, qword [rsp + 0x28]
lea rsi, [rdx + r15]
add rsi, 0x7ec
xor edx, edx
mov rbx, rax
dec rbx
mov cl, byte [rsi + rdx]
mov byte [rdi + rdx], cl
inc rdx
cmp rax, rdx
jne 0x2fc4c20a3
mov rax, qword [rsp + 0x40]
movzx edi, word [rax + 6]
inc r14
movzx eax, di
cmp r14, rax
jb 0x2fc4c2036
mov qword [rsp + 0x38], r12
mov rax, qword [rsp + 0x40]
mov r15d, dword [rax + 0xb0]
mov rax, qword [rsp + 0x28]
cmp dword [rax + r15], 0
je 0x2fc4c23c8
mov rcx, qword [rsp + 0x28]
add r15, rcx
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x30]
movabs rdx, 0x934006d5dfbad397
lea rbp, [rcx + rdx]
sub rbp, rax
sub rbp, rdx
lea rbx, [rcx + rcx*2]
lea rdx, [rax + rax*2]
sub rbx, rdx
mov qword [rsp + 0x48], rbx
lea r12, [rcx + rcx]
add rax, rax
sub r12, rax
mov edi, 0xffffffff
mov rsi, r15
mov ebx, dword [rsi + 4]
cmp rbx, 8
jb 0x2fc4c23b5
mov r8d, dword [0x2fc4e6150]
mov r10d, dword [0x2fc4e6168]
lea eax, [r8 + rdi]
imul eax, r8d
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete r9b
cmp r10d, 0xa
setl dl
test dl, r9b
jne 0x2fc4c2177
xor dl, r9b
je 0x2fc4c23f6
movabs rax, 0x664c9e69860bc85a
sub rbx, rax
movabs rcx, 0x1fffffff8
add rbx, rcx
add rbx, rax
shr rbx, 1
movabs rax, 0xc2cce6b2e7bdbc22
mov ecx, eax
xor ecx, edi
or ecx, eax
and ecx, ebx
mov qword [rsp + 0x30], rcx
xor r9d, r9d
cmp r9, qword [rsp + 0x30]
je 0x2fc4c23b2
mov r14, rsi
movzx eax, word [rsi + r9*2 + 8]
mov edx, eax
shr edx, 0xc
mov r11d, eax
xor r11d, 0xf000
and r11d, eax
cmp eax, 0xa000
jae 0x2fc4c2290
cmp edx, 3
jne 0x2fc4c2351
mov eax, dword [r15]
mov rcx, qword [rsp + 0x28]
lea rax, [rcx + rax*4]
mov esi, r11d
add dword [rax + rsi*4], ebp
mov r8d, dword [0x2fc4e6150]
mov r10d, dword [0x2fc4e6168]
lea eax, [r8 - 1]
imul eax, r8d
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne r11b
sete al
cmp r10d, 9
setg bl
cmp r10d, 0xa
setl dl
xor dl, al
jne 0x2fc4c2351
or bl, r11b
xor bl, 1
jne 0x2fc4c2351
mov rax, qword [rsp + 0x28]
lea rbx, [rax + rsi*4]
mov eax, dword [r15]
add dword [rbx + rax*4], ebp
mov eax, dword [r15]
add dword [rbx + rax*4], ebp
mov r8d, dword [0x2fc4e6150]
mov r10d, dword [0x2fc4e6168]
lea eax, [r8 + rdi]
imul eax, r8d
xor eax, edi
or eax, 0xfffffffe
cmp eax, edi
sete dl
cmp r10d, 0xa
setl al
test al, dl
jne 0x2fc4c2351
xor al, dl
je 0x2fc4c224c
jmp 0x2fc4c2351
cmp edx, 0xa
jne 0x2fc4c2351
mov eax, dword [r15]
add r11, qword [rsp + 0x28]
movabs rcx, 0x230f8ae54e5ca60
add r11, rcx
add r11, rax
sub r11, rcx
mov rbx, qword [r11]
lea rsi, [rbx + rbp]
mov qword [r11], rsi
mov r8d, dword [0x2fc4e6150]
mov r10d, dword [0x2fc4e6168]
lea eax, [r8 - 1]
imul eax, r8d
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete r13b
cmp r10d, 0xa
setl dl
test dl, r13b
jne 0x2fc4c2351
xor dl, r13b
jne 0x2fc4c2351
add rbx, qword [rsp + 0x48]
mov qword [r11], rbx
mov r8d, dword [0x2fc4e6150]
mov r10d, dword [0x2fc4e6168]
lea eax, [r8 - 1]
imul eax, r8d
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
setne r13b
sete al
cmp r10d, 9
setg dl
cmp r10d, 0xa
setl cl
xor cl, al
jne 0x2fc4c2351
add rsi, rbp
movabs rax, 0x4fdc82860f29228
add rsi, rax
add rsi, rbp
sub rsi, rax
or dl, r13b
xor dl, 1
add rbx, r12
test dl, dl
je 0x2fc4c22f5
lea eax, [r8 + rdi]
imul eax, r8d
xor eax, edi
or eax, 0xfffffffe
cmp eax, edi
setne r11b
sete al
cmp r10d, 9
setg bl
cmp r10d, 0xa
setl dl
xor dl, al
jne 0x2fc4c2381
or bl, r11b
xor bl, 1
je 0x2fc4c23f8
inc r9
lea eax, [r8 - 1]
imul eax, r8d
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete dl
cmp r10d, 0xa
setl bl
test bl, dl
mov rsi, r14
jne 0x2fc4c21b1
xor bl, dl
jne 0x2fc4c21b1
jmp 0x2fc4c23f6
mov ebx, dword [rsi + 4]
mov eax, ebx
lea r15, [rsi + rax]
cmp dword [rsi + rax], 0
mov rsi, r15
jne 0x2fc4c2134
mov ecx, dword [0x2fc4e6150]
mov eax, dword [0x2fc4e6168]
lea ebp, [rcx - 1]
imul ebp, ecx
mov edx, ebp
xor edx, 0xfffffffe
test edx, ebp
sete dl
cmp eax, 0xa
setl bl
test bl, dl
jne 0x2fc4c23fa
xor bl, dl
jne 0x2fc4c23fa
jmp 0x2fc4c23f2
jmp 0x2fc4c23f4
jmp 0x2fc4c23f6
jmp 0x2fc4c23f8
mov rdx, qword [rsp + 0x40]
mov edx, dword [rdx + 0x90]
mov rbp, qword [rsp + 0x28]
add rdx, rbp
mov qword [rsp + 0x60], rdx
lea rdx, [rbp + 2]
mov qword [rsp + 0x80], rdx
lea edx, [rcx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
setne dl
sete bl
cmp eax, 9
setg cl
cmp eax, 0xa
setl al
xor al, bl
or cl, dl
xor cl, 1
or cl, al
test cl, cl
je 0x2fc4c2446
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0xc]
mov qword [rsp + 0x30], rax
test rax, rax
je 0x2fc4c2fbd
mov eax, dword [0x2fc4e6174]
mov edx, dword [0x2fc4e6180]
mov edi, 0xffffffff
lea ebp, [rax + rdi]
imul ebp, eax
mov eax, ebp
mov r8d, 0xfffffffe
xor eax, r8d
test eax, ebp
setne r9b
sete bl
mov r10d, 9
cmp edx, r10d
setg al
mov r15d, 0xa
cmp edx, r15d
setl dl
xor dl, bl
mov r14d, dword [0x2fc4e617c]
mov ebp, dword [0x2fc4e6178]
mov esi, dword [0x2fc4e6154]
lea ebx, [rdi + rbp]
imul ebx, ebp
xor ebx, edi
or ebx, r8d
cmp ebx, edi
setne r8b
sete r11b
cmp esi, r10d
setg r10b
cmp esi, r15d
setl bl
test dl, dl
jne 0x2fc4c24eb
or al, r9b
mov dl, 1
xor al, dl
je 0x2fc4c2fa5
mov edx, dword [0x2fc4e6184]
cmp edx, 9
setg al
cmp edx, 0xa
setl sil
mov edx, 0xffffffff
lea ebp, [r14 + rdx]
imul ebp, r14d
xor ebp, edx
or ebp, 0xfffffffe
cmp ebp, edx
setne r9b
sete dl
xor dl, sil
jne 0x2fc4c2529
or al, r9b
xor al, 1
je 0x2fc4c2fa7
mov rax, qword [rsp + 0x30]
add rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
xor bl, r11b
or r10b, r8b
mov al, 1
xor r10b, al
or r10b, bl
mov rax, qword gs:[0x60]
mov r11, qword [rax + 0x18]
add r11, 0x10
mov rax, qword [rsp + 0x20]
movsx r9d, byte [rax]
lea eax, [r9 - 0x41]
lea r8d, [r9 + 0x20]
cmp al, 0x1a
cmovae r8d, r9d
movabs rcx, 0x7985627a7d1e330e
mov r11, qword [r11]
mov r15, qword [r11 + 0x60]
test r9b, r9b
je 0x2fc4c2595
mov rdi, qword [rsp + 0x20]
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x2fc4c2589
jmp 0x2fc4c259a
mov rdi, qword [rsp + 0x20]
test r10b, r10b
je 0x2fc4c2f95
mov r12, rdi
sub r12, rcx
sub r12, qword [rsp + 0x20]
add r12, rcx
je 0x2fc4c263f
movzx edx, word [r15]
test edx, edx
sete al
lea esi, [rdx - 0x41]
lea ebx, [rdx + 0x20]
cmp si, 0x1a
cmovae ebx, edx
sub ebx, r8d
setne dl
test al, dl
jne 0x2fc4c2637
xor al, dl
jne 0x2fc4c2637
add rdi, qword [rsp + 0x50]
xor esi, esi
cmp rdi, rsi
je 0x2fc4c263f
mov rax, qword [rsp + 0x38]
movsx eax, byte [rax + rsi + 2]
movzx ebp, word [r15 + rsi*2 + 2]
test ebp, ebp
sete dl
lea r14d, [rbp - 0x41]
mov r13d, 0x20
lea ebx, [rbp + r13]
cmp r14w, 0x1a
cmovae ebx, ebp
lea r14d, [rax - 0x41]
lea ebp, [rax + r13]
cmp r14b, 0x1a
cmovae ebp, eax
sub ebx, ebp
setne al
test dl, al
jne 0x2fc4c2637
dec r12
xor dl, al
inc rsi
test dl, dl
je 0x2fc4c25e2
test ebx, ebx
jne 0x2fc4c2578
mov r15, qword [r11 + 0x30]
movsxd rax, dword [r15 + 0x3c]
cmp dword [r15 + rax + 0x8c], 0
je 0x2fc4c275d
mov edi, dword [r15 + rax + 0x88]
cmp dword [r15 + rdi + 0x14], 0
je 0x2fc4c275d
mov eax, dword [0x2fc4e6164]
mov r9d, dword [0x2fc4e6170]
mov edx, 0xffffffff
lea r11d, [rax + rdx]
imul r11d, eax
xor r11d, edx
or r11d, 0xfffffffe
cmp r11d, edx
sete al
setne r8b
cmp r9d, 0xa
setl bl
cmp r9d, 9
setg dl
cmp bl, al
jne 0x2fc4c26b3
or dl, r8b
xor dl, 1
je 0x2fc4c2fb7
mov r10d, dword [r15 + rdi + 0x18]
test r10d, r10d
je 0x2fc4c275d
mov ecx, dword [r15 + rdi + 0x1c]
mov eax, dword [0x2fc4e6158]
mov ebx, 0xffffffff
lea edx, [rax + rbx]
imul edx, eax
xor edx, ebx
or edx, 0xfffffffe
mov ebp, 0xffffffff
cmp edx, ebx
sete al
cmp dword [0x2fc4e615c], 0xa
setl dl
test dl, al
jne 0x2fc4c26fc
xor dl, al
je 0x2fc4c2fbb
xor r11d, ebp
add rcx, r15
mov esi, dword [r15 + rdi + 0x20]
mov r12d, dword [r15 + rdi + 0x24]
add rsi, r15
add r12, r15
xor ebp, ebp
mov edi, dword [rsi]
add rdi, r15
xor edx, edx
mov rax, qword [rsp + 0x88]
mov bl, byte [rax + rdx + 2]
mov r8b, byte [rdi + rdx]
cmp bl, r8b
sete r14b
test bl, bl
setne al
cmp r14b, al
jne 0x2fc4c2743
inc rdx
test bl, bl
jne 0x2fc4c271b
cmp bl, r8b
je 0x2fc4c2f76
add r12, 2
add rsi, 4
inc ebp
cmp ebp, r10d
jne 0x2fc4c2714
jmp 0x2fc4c27a6
mov eax, dword [0x2fc4e6164]
mov r9d, dword [0x2fc4e6170]
lea edx, [rax - 1]
imul edx, eax
mov r11d, edx
xor r11d, 0xfffffffe
and r11d, edx
sete bl
setne r8b
cmp r9d, 0xa
setl al
cmp r9d, 9
setg dl
cmp al, bl
jne 0x2fc4c27a6
or dl, r8b
xor dl, 1
mov r15d, 0
jne 0x2fc4c27a9
jmp 0x2fc4c2fb1
xor r15d, r15d
test r11d, r11d
setne al
sete bl
cmp r9d, 9
setg r8b
cmp r9d, 0xa
setl dl
xor dl, bl
jne 0x2fc4c27d0
or al, r8b
xor al, 1
je 0x2fc4c2fad
mov rcx, qword [rsp + 0x30]
call r15
mov qword [rsp + 0x48], rax
mov ecx, dword [0x2fc4e6150]
mov eax, dword [0x2fc4e6168]
mov ebp, 0xffffffff
lea edx, [rcx + rbp]
imul edx, ecx
xor edx, ebp
or edx, 0xfffffffe
cmp edx, ebp
sete dl
cmp eax, 0xa
setl bl
test bl, dl
mov rbp, qword [rsp + 0x28]
jne 0x2fc4c2815
xor bl, dl
je 0x2fc4c2fab
mov rdx, qword [rsp + 0x60]
mov edi, dword [rdx]
mov edx, dword [rdx + 0x10]
add rdx, rbp
mov qword [rsp + 0x30], rdx
add rdi, rbp
mov qword [rsp + 0x78], rdi
mov rdx, qword [rdi]
test rdx, rdx
je 0x2fc4c2f86
mov rax, rdx
xor rax, 0xffffffffffff0000
and rax, rdx
mov rcx, qword [rsp + 0x80]
add rcx, rdx
test rdx, rdx
cmovs rcx, rax
mov qword [rsp + 0x68], rcx
mov r12, qword [rsp + 0x38]
mov eax, dword [0x2fc4e6174]
mov esi, 0xffffffff
lea ecx, [rax + rsi]
imul ecx, eax
mov eax, ecx
mov r8d, 0xfffffffe
xor eax, r8d
test eax, ecx
sete dl
mov r10d, 0xa
cmp dword [0x2fc4e6180], r10d
setl al
mov ebx, dword [0x2fc4e617c]
mov ecx, dword [0x2fc4e6178]
mov ebp, dword [0x2fc4e6154]
lea edi, [rcx + rsi]
imul edi, ecx
xor edi, esi
or edi, r8d
cmp edi, esi
setne r8b
sete r9b
cmp ebp, r10d
setl cl
cmp ebp, 9
setg r10b
test al, dl
jne 0x2fc4c28d4
xor al, dl
je 0x2fc4c2f97
cmp dword [0x2fc4e6184], 0xa
setl al
mov ebp, 0xffffffff
lea edx, [rbx + rbp]
imul edx, ebx
xor edx, ebp
or edx, 0xfffffffe
cmp edx, ebp
sete dl
test al, dl
jne 0x2fc4c28ff
xor al, dl
je 0x2fc4c2f99
xor cl, r9b
or r10b, r8b
xor r10b, 1
or r10b, cl
mov rax, qword gs:[0x60]
mov r11, qword [rax + 0x18]
add r11, 0x10
mov rax, qword [rsp + 0x20]
movsx r9d, byte [rax]
lea eax, [r9 - 0x41]
lea r8d, [r9 + 0x20]
cmp al, 0x1a
cmovae r8d, r9d
mov r11, qword [r11]
mov r15, qword [r11 + 0x60]
test r9b, r9b
je 0x2fc4c2951
mov rdi, qword [rsp + 0x20]
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x2fc4c2945
jmp 0x2fc4c2956
mov rdi, qword [rsp + 0x20]
test r10b, r10b
je 0x2fc4c2f91
movabs rax, 0xe328528728b624c2
lea rsi, [rdi + rax]
sub rsi, qword [rsp + 0x20]
sub rsi, rax
je 0x2fc4c2a14
movzx ecx, word [r15]
test ecx, ecx
sete al
lea edx, [rcx - 0x41]
lea ebx, [rcx + 0x20]
cmp dx, 0x1a
cmovae ebx, ecx
sub ebx, r8d
setne cl
test al, cl
jne 0x2fc4c2a0c
xor al, cl
jne 0x2fc4c2a0c
add rdi, qword [rsp + 0x50]
xor r13d, r13d
cmp rdi, r13
je 0x2fc4c2a14
movsx ecx, byte [r12 + r13 + 2]
movzx ebp, word [r15 + r13*2 + 2]
test ebp, ebp
setne al
sete r14b
lea r12d, [rbp - 0x41]
mov edx, 0x20
lea ebx, [rdx + rbp]
cmp r12w, 0x1a
cmovae ebx, ebp
lea r12d, [rcx - 0x41]
lea ebp, [rcx + rdx]
cmp r12b, 0x1a
cmovae ebp, ecx
sub ebx, ebp
sete cl
setne dl
xor dl, r14b
jne 0x2fc4c2a07
dec rsi
or al, cl
mov cl, 1
xor al, cl
inc r13
test al, al
mov r12, qword [rsp + 0x38]
je 0x2fc4c29a7
jmp 0x2fc4c2a0c
mov r12, qword [rsp + 0x38]
test ebx, ebx
jne 0x2fc4c2934
mov r15, qword [r11 + 0x30]
movsxd rax, dword [r15 + 0x3c]
cmp dword [r15 + rax + 0x8c], 0
je 0x2fc4c2b2b
mov esi, dword [r15 + rax + 0x88]
cmp dword [r15 + rsi + 0x14], 0
je 0x2fc4c2b2b
mov eax, dword [0x2fc4e6164]
mov r9d, dword [0x2fc4e6170]
mov ecx, 0xffffffff
lea r11d, [rax + rcx]
imul r11d, eax
xor r11d, ecx
or r11d, 0xfffffffe
mov edi, 0xffffffff
cmp r11d, ecx
sete al
cmp r9d, 0xa
setl cl
test cl, al
jne 0x2fc4c2a7e
xor cl, al
je 0x2fc4c2faf
mov r10d, dword [r15 + rsi + 0x18]
test r10d, r10d
mov r12, qword [rsp + 0x38]
je 0x2fc4c2b2b
mov r8d, dword [r15 + rsi + 0x1c]
mov eax, dword [0x2fc4e6158]
mov ecx, dword [0x2fc4e615c]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, dl
jne 0x2fc4c2ad0
or cl, al
xor cl, 1
je 0x2fc4c2fb5
xor r11d, edi
add r8, r15
mov edi, dword [r15 + rsi + 0x20]
mov r12d, dword [r15 + rsi + 0x24]
add rdi, r15
add r12, r15
xor esi, esi
mov ebp, dword [rdi]
add rbp, r15
xor ecx, ecx
mov rax, qword [rsp + 0x70]
mov bl, byte [rax + rcx + 1]
mov al, byte [rbp + rcx]
cmp bl, al
sete r14b
test bl, bl
setne dl
cmp r14b, dl
jne 0x2fc4c2b13
inc rcx
test bl, bl
jne 0x2fc4c2aef
cmp bl, al
je 0x2fc4c2b7f
add r12, 2
add rdi, 4
inc esi
cmp esi, r10d
jne 0x2fc4c2ae8
xor r15d, r15d
jmp 0x2fc4c2b8b
mov eax, dword [0x2fc4e6164]
mov r9d, dword [0x2fc4e6170]
mov edx, 0xffffffff
lea ecx, [rax + rdx]
imul ecx, eax
xor ecx, edx
or ecx, 0xfffffffe
mov r11d, ecx
xor r11d, edx
cmp ecx, edx
sete dl
setne al
cmp r9d, 0xa
setl bl
cmp r9d, 9
setg cl
cmp bl, dl
jne 0x2fc4c2b7a
or cl, al
xor cl, 1
mov r15d, 0
jne 0x2fc4c2b90
jmp 0x2fc4c2fa1
xor r15d, r15d
jmp 0x2fc4c2b90
movzx eax, word [r12]
mov eax, dword [r8 + rax*4]
add r15, rax
mov r12, qword [rsp + 0x38]
test r11d, r11d
sete dl
setne al
cmp r9d, 0xa
setl bl
cmp r9d, 9
setg cl
cmp dl, bl
jne 0x2fc4c2bb5
or al, cl
xor al, 1
je 0x2fc4c2f9b
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
call r15
mov rcx, qword [rsp + 0x30]
mov qword [rcx], rax
mov ecx, dword [0x2fc4e6150]
mov eax, dword [0x2fc4e6168]
mov ebp, 0xffffffff
lea edx, [rcx + rbp]
imul edx, ecx
xor edx, ebp
or edx, 0xfffffffe
cmp edx, ebp
sete dl
cmp eax, 0xa
setl bl
test bl, dl
jne 0x2fc4c2f2c
xor bl, dl
jne 0x2fc4c2f2c
mov eax, dword [0x2fc4e6174]
mov edi, 0xffffffff
lea ecx, [rax + rdi]
imul ecx, eax
mov eax, ecx
mov esi, 0xfffffffe
xor eax, esi
test eax, ecx
sete dl
mov r8d, 0xa
cmp dword [0x2fc4e6180], r8d
setl bl
mov ecx, dword [0x2fc4e617c]
mov eax, dword [0x2fc4e6178]
lea ebp, [rax + rdi]
imul ebp, eax
xor ebp, edi
or ebp, esi
cmp ebp, edi
sete al
cmp dword [0x2fc4e6154], r8d
setl r10b
test bl, dl
jne 0x2fc4c2c62
xor bl, dl
je 0x2fc4c2f9d
cmp dword [0x2fc4e6184], 0xa
setl dl
lea ebp, [rcx - 1]
imul ebp, ecx
mov ecx, ebp
xor ecx, 0xfffffffe
test ecx, ebp
sete cl
test dl, cl
jne 0x2fc4c2c88
xor dl, cl
je 0x2fc4c2f9f
mov ecx, r10d
and cl, al
xor r10b, al
or r10b, cl
mov rax, qword gs:[0x60]
mov r11, qword [rax + 0x18]
add r11, 0x10
mov rax, qword [rsp + 0x20]
movsx r9d, byte [rax]
lea eax, [r9 - 0x41]
lea r8d, [r9 + 0x20]
cmp al, 0x1a
cmovae r8d, r9d
mov r11, qword [r11]
mov r15, qword [r11 + 0x60]
test r9b, r9b
je 0x2fc4c2cd8
mov rdi, qword [rsp + 0x20]
cmp byte [rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x2fc4c2ccc
jmp 0x2fc4c2cdd
mov rdi, qword [rsp + 0x20]
test r10b, r10b
je 0x2fc4c2f93
movabs rax, 0xae38b67688032d71
lea rsi, [rdi + rax]
sub rsi, qword [rsp + 0x20]
sub rsi, rax
je 0x2fc4c2d91
movzx eax, word [r15]
test eax, eax
sete r14b
setne cl
lea ebp, [rax - 0x41]
lea ebx, [rax + 0x20]
cmp bp, 0x1a
cmovae ebx, eax
sub ebx, r8d
setne dl
sete al
cmp r14b, dl
jne 0x2fc4c2d89
or cl, al
xor cl, 1
jne 0x2fc4c2d89
add rdi, qword [rsp + 0x50]
xor edx, edx
cmp rdi, rdx
je 0x2fc4c2d91
movsx eax, byte [r12 + rdx + 2]
movzx ebp, word [r15 + rdx*2 + 2]
test ebp, ebp
sete cl
lea r14d, [rbp - 0x41]
mov r13d, 0x20
lea ebx, [rbp + r13]
cmp r14w, 0x1a
cmovae ebx, ebp
lea r14d, [rax - 0x41]
lea ebp, [rax + r13]
cmp r14b, 0x1a
cmovae ebp, eax
sub ebx, ebp
setne al
test cl, al
jne 0x2fc4c2d89
dec rsi
xor cl, al
inc rdx
test cl, cl
je 0x2fc4c2d38
test ebx, ebx
jne 0x2fc4c2cbb
mov r15, qword [r11 + 0x30]
movsxd rax, dword [r15 + 0x3c]
cmp dword [r15 + rax + 0x8c], 0
je 0x2fc4c2e95
mov esi, dword [r15 + rax + 0x88]
cmp dword [r15 + rsi + 0x14], 0
je 0x2fc4c2e95
mov eax, dword [0x2fc4e6164]
mov r9d, dword [0x2fc4e6170]
lea ecx, [rax - 1]
imul ecx, eax
mov r11d, ecx
xor r11d, 0xfffffffe
and r11d, ecx
sete al
cmp r9d, 0xa
setl cl
test cl, al
jne 0x2fc4c2def
xor cl, al
je 0x2fc4c2fb3
mov r10d, dword [r15 + rsi + 0x18]
test r10d, r10d
je 0x2fc4c2e95
mov r8d, dword [r15 + rsi + 0x1c]
mov eax, dword [0x2fc4e6158]
mov ecx, dword [0x2fc4e615c]
mov edi, 0xffffffff
lea edx, [rax + rdi]
imul edx, eax
xor edx, edi
or edx, 0xfffffffe
cmp edx, edi
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, dl
jne 0x2fc4c2e41
or cl, al
xor cl, 1
je 0x2fc4c2fb9
add r8, r15
mov edi, dword [r15 + rsi + 0x20]
mov r12d, dword [r15 + rsi + 0x24]
add rdi, r15
add r12, r15
xor esi, esi
mov rbp, qword [rsp + 0x70]
mov r14b, 1
mov edx, dword [rdi]
add rdx, r15
xor ecx, ecx
mov bl, byte [rbp + rcx + 1]
mov al, byte [rdx + rcx]
test bl, bl
je 0x2fc4c2e7c
cmp bl, al
jne 0x2fc4c2e7c
inc rcx
test r14b, r14b
jne 0x2fc4c2e65
cmp bl, al
je 0x2fc4c2f1e
add r12, 2
add rdi, 4
inc esi
cmp esi, r10d
jne 0x2fc4c2e5e
jmp 0x2fc4c2edc
mov eax, dword [0x2fc4e6164]
mov r9d, dword [0x2fc4e6170]
lea ecx, [rax - 1]
imul ecx, eax
mov r11d, ecx
xor r11d, 0xfffffffe
and r11d, ecx
sete dl
setne al
cmp r9d, 0xa
setl bl
cmp r9d, 9
setg cl
cmp bl, dl
jne 0x2fc4c2edc
or cl, al
xor cl, 1
mov r15d, 0
jne 0x2fc4c2edf
jmp 0x2fc4c2fa9
xor r15d, r15d
test r11d, r11d
sete dl
setne al
cmp r9d, 0xa
setl bl
cmp r9d, 9
setg cl
cmp dl, bl
jne 0x2fc4c2f04
or al, cl
xor al, 1
je 0x2fc4c2fa3
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
call r15
mov rcx, qword [rsp + 0x30]
mov qword [rcx], rax
jmp 0x2fc4c285e
movzx eax, word [r12]
mov eax, dword [r8 + rax*4]
add r15, rax
jmp 0x2fc4c2edf
mov edx, 8
mov rdi, qword [rsp + 0x78]
add rdi, rdx
add qword [rsp + 0x30], rdx
lea ebp, [rcx - 1]
imul ebp, ecx
mov edx, ebp
xor edx, 0xfffffffe
test edx, ebp
setne r8b
sete r9b
cmp eax, 9
setg bl
cmp eax, 0xa
setl dl
xor dl, r9b
jne 0x2fc4c282a
or bl, r8b
xor bl, 1
jne 0x2fc4c282a
jmp 0x2fc4c2fab
movzx eax, word [r12]
mov eax, dword [rcx + rax*4]
add r15, rax
jmp 0x2fc4c27a9
add qword [rsp + 0x60], 0x14
jmp 0x2fc4c241e
jmp 0x2fc4c2f91
jmp 0x2fc4c2f93
jmp 0x2fc4c2f95
jmp 0x2fc4c2f97
jmp 0x2fc4c2f99
jmp 0x2fc4c2f9b
jmp 0x2fc4c2f9d
jmp 0x2fc4c2f9f
jmp 0x2fc4c2fa1
jmp 0x2fc4c2fa3
jmp 0x2fc4c2fa5
jmp 0x2fc4c2fa7
jmp 0x2fc4c2fa9
jmp 0x2fc4c2fab
jmp 0x2fc4c2fad
jmp 0x2fc4c2faf
jmp 0x2fc4c2fb1
jmp 0x2fc4c2fb3
jmp 0x2fc4c2fb5
jmp 0x2fc4c2fb7
jmp 0x2fc4c2fb9
jmp 0x2fc4c2fbb
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0x28]
mov rcx, qword [rsp + 0x28]
add rcx, rax
call rcx
xor eax, eax
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret