Function at 0x1401e6560
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
mov rdi, qword [rcx + 0x40]
mov eax, 0x40
sub rax, rdi
mov rsi, r8
mov r14, rdx
mov rbp, rcx
cmp r8, rax
jae 0x1401e65a2
add rcx, rdi
call fcn.14038e7d0
add rdi, rsi
jmp 0x1401e7ae7
mov r15d, dword [rbp + 0x6c]
mov r13d, dword [rcx + 0x48]
mov eax, dword [rcx + 0x4c]
mov ecx, dword [rcx + 0x50]
mov edx, dword [rbp + 0x54]
mov r8d, dword [rbp + 0x58]
mov r9d, dword [rbp + 0x5c]
mov r10d, dword [rbp + 0x60]
mov r11d, dword [rbp + 0x64]
mov ebx, dword [rbp + 0x68]
mov dword [rsp + 0x74], r15d
mov r15d, dword [rbp + 0x70]
mov dword [rsp + 0x20], r15d
mov r15d, dword [rbp + 0x74]
mov dword [rsp + 0x168], r15d
mov r15d, dword [rbp + 0x78]
mov dword [rsp + 0xb0], r15d
mov r15d, dword [rbp + 0x7c]
mov dword [rsp + 0x94], r15d
mov r15d, dword [rbp + 0x80]
mov dword [rsp + 0x2c], r15d
mov r15d, dword [rbp + 0x84]
mov dword [rsp + 0x28], r15d
mov r15d, dword [rbp + 0x88]
mov dword [rsp + 0xc0], r15d
mov r15d, dword [rbp + 0x8c]
mov dword [rsp + 0xc4], r15d
mov r15d, dword [rbp + 0x90]
mov dword [rsp + 0x78], r15d
mov r15d, dword [rbp + 0x94]
mov dword [rsp + 0x34], r15d
mov r15d, dword [rbp + 0x98]
mov dword [rsp + 0x30], r15d
mov r15d, dword [rbp + 0x9c]
mov dword [rsp + 0x6c], r15d
mov r15d, dword [rbp + 0xa0]
mov dword [rsp + 0x68], r15d
mov r15d, dword [rbp + 0xa4]
mov dword [rsp + 0x24], r15d
mov r15d, dword [rbp + 0xa8]
mov dword [rsp + 0x90], r15d
mov r15d, dword [rbp + 0xac]
mov dword [rsp + 0x8c], r15d
mov r15d, dword [rbp + 0xb0]
mov dword [rsp + 0x40], r15d
mov r15d, dword [rbp + 0xb4]
mov dword [rsp + 0xc8], r15d
mov r15d, dword [rbp + 0xb8]
mov dword [rsp + 0xb4], r15d
mov r15d, dword [rbp + 0xbc]
mov dword [rsp + 0xb8], r15d
mov r15d, dword [rbp + 0xc0]
mov dword [rsp + 0xac], r15d
mov r15d, dword [rbp + 0xc4]
mov dword [rsp + 0x7c], r15d
mov r15d, dword [rbp + 0xc8]
mov dword [rsp + 0x80], r15d
mov r15d, dword [rbp + 0xcc]
mov dword [rsp + 0x84], r15d
mov r15d, dword [rbp + 0xd0]
mov dword [rsp + 0x88], r15d
mov r15d, dword [rbp + 0xd4]
mov dword [rsp + 0xbc], r15d
mov r15d, dword [rbp + 0xd8]
mov dword [rsp + 0x98], r15d
mov r15d, dword [rbp + 0xdc]
mov dword [rsp + 0xd4], r15d
mov r15d, dword [rbp + 0xe0]
mov dword [rsp + 0x9c], r15d
mov r15d, dword [rbp + 0xe4]
mov dword [rsp + 0xd0], r15d
mov r15d, dword [rbp + 0xe8]
mov dword [rsp + 0x4c], r13d
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x54], edx
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x3c], r9d
mov dword [rsp + 0x5c], r10d
mov dword [rsp + 0x60], r11d
mov dword [rsp + 0x64], ebx
mov r12d, dword [rbp + 0xfc]
mov dword [rsp + 0xa0], r15d
mov r15d, dword [rbp + 0xec]
mov dword [rsp + 0xa4], r15d
mov r15d, dword [rbp + 0xf0]
mov dword [rsp + 0xa8], r15d
mov r15d, dword [rbp + 0xf4]
mov dword [rsp + 0xcc], r15d
mov r15d, dword [rbp + 0xf8]
mov dword [rsp + 0xdc], r15d
mov dword [rsp + 0xd8], r12d
test rsi, rsi
je 0x1401e791d
mov eax, 0x40
lea rcx, [rdi + rbp]
sub rax, rdi
mov rbx, rsi
cmp rax, rsi
mov rdx, r14
cmovbe rbx, rax
mov r8, rbx
call fcn.14038e7d0
add r14, rbx
sub rsi, rbx
add rdi, rbx
mov qword [rsp + 0x158], r14
mov qword [rsp + 0x160], rsi
cmp rdi, 0x40
jne 0x1401e78eb
mov r9d, dword [rbp]
mov r15d, dword [rbp + 0x34]
mov r11d, dword [rbp + 4]
mov edi, dword [rbp + 0x18]
mov r13d, dword [rbp + 0x20]
mov ebx, dword [rbp + 0x2c]
mov r12d, dword [rbp + 0x30]
mov rcx, qword [rsp + 0x150]
add edi, dword [rsp + 0x78]
mov r10d, dword [rsp + 0xc8]
mov edx, dword [rsp + 0x6c]
add r10d, dword [rcx + 0x3c]
add edx, dword [rbp + 0x24]
add r13d, dword [rsp + 0x30]
mov esi, dword [rsp + 0x34]
add esi, dword [rbp + 0x1c]
mov r8d, dword [rsp + 0x68]
add r8d, dword [rbp + 0x28]
mov eax, dword [rsp + 0x168]
mov r14d, dword [rsp + 0x8c]
add r12d, dword [rsp + 0x90]
add r14d, r15d
mov r15d, dword [rcx + 0x38]
add r15d, dword [rsp + 0x40]
mov ebp, dword [rsp + 0x24]
rol eax, 0xf
add ebp, ebx
mov ebx, dword [rsp + 0xb0]
add ebx, r9d
ror edx, 0xf
ror r14d, 0xf
lea ecx, [rax + rax*4]
ror ebx, 0xf
xor ecx, dword [rsp + 0xd8]
xor ecx, dword [rsp + 0x98]
xor ecx, dword [rsp + 0x4c]
ror r8d, 0xf
ror edi, 0xf
ror r15d, 0xf
mov eax, edi
lea ecx, [rcx + rcx*2]
rol ebx, 1
not eax
ror esi, 0xf
and eax, edx
ror r13d, 0xf
xor ecx, eax
ror ebp, 0xf
xor ecx, r9d
ror r12d, 0xf
xor ecx, r14d
ror r10d, 0xf
xor ebx, ecx
mov dword [rsp + 0xc8], ecx
mov eax, ecx
mov dword [rsp + 0x34], r13d
rol eax, 0xf
mov r9d, ebx
not r9d
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0x44], ebp
lea ecx, [rax + rax*4]
mov dword [rsp + 0x78], r12d
xor ecx, dword [rsp + 0xdc]
mov eax, esi
xor ecx, dword [rsp + 0xbc]
not eax
xor ecx, dword [rsp + 0x38]
and eax, r8d
mov dword [rsp + 0x50], r14d
mov dword [rsp + 0x68], r15d
mov dword [rsp + 0x40], r10d
lea ecx, [rcx + rcx*2]
mov dword [rsp + 0x6c], r9d
xor ecx, eax
xor ecx, r11d
add r11d, dword [rsp + 0x94]
xor ecx, r15d
mov dword [rsp + 0xe0], ecx
ror r11d, 0xf
rol r11d, 1
xor r11d, ecx
mov eax, r11d
not eax
mov dword [rsp + 0x8c], eax
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, r13d
xor ecx, dword [rsp + 0x88]
not eax
xor ecx, dword [rsp + 0x48]
and eax, ebp
mov r13, qword [rsp + 0x150]
lea ecx, [rcx + rcx*2]
xor ecx, eax
xor ecx, dword [r13 + 8]
xor ecx, r10d
mov r10d, dword [rsp + 0x2c]
add r10d, dword [r13 + 8]
mov dword [rsp + 0xe4], ecx
ror r10d, 0xf
rol r10d, 1
xor r10d, ecx
mov eax, r10d
not eax
mov dword [rsp + 0x90], eax
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, edx
xor ecx, dword [rsp + 0x84]
not eax
xor ecx, dword [rsp + 0x54]
and eax, r12d
mov rdx, r13
lea ecx, [rcx + rcx*2]
xor ecx, eax
xor ecx, dword [rdx + 0xc]
xor ecx, r9d
mov r9d, dword [rsp + 0x28]
add r9d, dword [rdx + 0xc]
mov dword [rsp + 0xe8], ecx
ror r9d, 0xf
rol r9d, 1
xor r9d, ecx
mov eax, r9d
not eax
mov dword [rsp + 0x24], eax
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, r8d
xor ecx, dword [rsp + 0x80]
not eax
xor ecx, dword [rsp + 0x58]
and eax, r14d
mov r8d, dword [rsp + 0xc0]
add r8d, dword [rdx + 0x10]
ror r8d, 0xf
lea r13d, [rcx + rcx*2]
rol r8d, 1
xor r13d, eax
xor r13d, dword [rdx + 0x10]
xor r13d, dword [rsp + 0x8c]
xor r8d, r13d
mov eax, r8d
not eax
mov dword [rsp + 0x28], eax
mov eax, r13d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, ebp
xor ecx, dword [rsp + 0x7c]
not eax
xor ecx, dword [rsp + 0x3c]
and eax, r15d
lea r14d, [rcx + rcx*2]
xor r14d, eax
mov eax, dword [rdx + 0x14]
xor r14d, eax
xor r14d, dword [rsp + 0x90]
mov rbp, qword [rsp + 0x150]
mov edx, dword [rsp + 0xc4]
add edx, eax
rol esi, 1
ror edx, 0xf
rol edx, 1
xor edx, r14d
rol edi, 1
mov eax, edx
not eax
mov dword [rsp + 0x2c], eax
mov eax, r14d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, r12d
xor ecx, dword [rsp + 0xac]
not eax
and eax, dword [rsp + 0x40]
xor ecx, dword [rsp + 0x5c]
lea r15d, [rcx + rcx*2]
xor r15d, eax
xor r15d, dword [rbp + 0x18]
xor r15d, dword [rsp + 0x24]
mov eax, r15d
xor edi, r15d
rol eax, 0xf
mov dword [rsp + 0xc4], edi
not edi
mov dword [rsp + 0xb0], edi
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x50]
xor ecx, dword [rsp + 0xb8]
not eax
and eax, dword [rsp + 0x6c]
xor ecx, dword [rsp + 0x60]
lea r12d, [rcx + rcx*2]
xor r12d, eax
xor r12d, dword [rbp + 0x1c]
xor r12d, dword [rsp + 0x28]
xor esi, r12d
mov eax, esi
mov dword [rsp + 0xc0], esi
not eax
mov dword [rsp + 0x94], eax
mov eax, r12d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x68]
xor ecx, dword [rsp + 0xb4]
not eax
and eax, dword [rsp + 0x8c]
xor ecx, dword [rsp + 0x64]
lea ebp, [rcx + rcx*2]
xor ebp, eax
mov rax, qword [rsp + 0x150]
xor ebp, dword [rax + 0x20]
mov eax, dword [rsp + 0x34]
xor ebp, dword [rsp + 0x2c]
rol eax, 1
xor eax, ebp
mov dword [rsp + 0x34], eax
not eax
mov dword [rsp + 0x38], eax
mov eax, ebp
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x40]
xor ecx, dword [rsp + 0xcc]
not eax
and eax, dword [rsp + 0x90]
xor ecx, dword [rsp + 0x74]
lea esi, [rcx + rcx*2]
xor esi, eax
mov rax, qword [rsp + 0x150]
xor esi, dword [rax + 0x24]
mov eax, dword [rsp + 0x30]
xor esi, edi
rol eax, 1
xor eax, esi
mov dword [rsp + 0x30], eax
and ebx, dword [rsp + 0x24]
not eax
and r11d, dword [rsp + 0x28]
and r10d, dword [rsp + 0x2c]
and r9d, dword [rsp + 0xb0]
mov dword [rsp + 0x4c], eax
mov eax, esi
rol eax, 0xf
and r8d, dword [rsp + 0x94]
lea ecx, [rax + rax*4]
mov rax, qword [rsp + 0x150]
xor ecx, dword [rsp + 0xa8]
xor ecx, dword [rsp + 0x20]
lea edi, [rcx + rcx*2]
xor edi, ebx
xor edi, dword [rax + 0x28]
mov eax, dword [rsp + 0x70]
xor edi, dword [rsp + 0x94]
rol eax, 1
xor eax, edi
mov dword [rsp + 0x70], eax
not eax
mov dword [rsp + 0x20], eax
mov eax, edi
rol eax, 0xf
lea ecx, [rax + rax*4]
mov rax, qword [rsp + 0x150]
xor ecx, dword [rsp + 0xa4]
xor ecx, dword [rsp + 0x168]
lea ebx, [rcx + rcx*2]
xor ebx, r11d
xor ebx, dword [rax + 0x2c]
mov eax, dword [rsp + 0x44]
xor ebx, dword [rsp + 0x38]
rol eax, 1
xor eax, ebx
mov dword [rsp + 0x44], eax
not eax
mov dword [rsp + 0x168], eax
mov eax, ebx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov rax, qword [rsp + 0x150]
xor ecx, dword [rsp + 0xa0]
xor ecx, dword [rsp + 0xc8]
lea r11d, [rcx + rcx*2]
xor r11d, r10d
xor r11d, dword [rax + 0x30]
mov eax, dword [rsp + 0x78]
xor r11d, dword [rsp + 0x4c]
rol eax, 1
xor eax, r11d
mov dword [rsp + 0x78], eax
not eax
mov dword [rsp + 0x48], eax
mov eax, r11d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov rax, qword [rsp + 0x150]
xor ecx, dword [rsp + 0xd0]
xor ecx, dword [rsp + 0xe0]
lea r10d, [rcx + rcx*2]
xor r10d, r9d
xor r10d, dword [rax + 0x34]
xor r10d, dword [rsp + 0x20]
mov eax, dword [rsp + 0x50]
rol eax, 1
xor eax, r10d
mov dword [rsp + 0x50], eax
not eax
mov dword [rsp + 0x54], eax
mov eax, r10d
rol eax, 0xf
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0x9c]
xor ecx, dword [rsp + 0xe4]
lea r9d, [rcx + rcx*2]
mov rcx, qword [rsp + 0x150]
xor r9d, r8d
xor r9d, dword [rcx + 0x38]
xor r9d, dword [rsp + 0x168]
and edx, dword [rsp + 0x38]
mov eax, dword [rsp + 0x68]
rol eax, 1
xor eax, r9d
mov dword [rsp + 0x68], eax
not eax
mov dword [rsp + 0x58], eax
mov eax, r9d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x40]
xor ecx, dword [rsp + 0xd4]
xor ecx, dword [rsp + 0xe8]
rol eax, 1
lea r8d, [rcx + rcx*2]
mov rcx, qword [rsp + 0x150]
xor r8d, edx
xor r8d, dword [rcx + 0x3c]
xor r8d, dword [rsp + 0x48]
xor eax, r8d
mov dword [rsp + 0x40], eax
not eax
mov dword [rsp + 0x3c], eax
mov eax, r8d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0xc4]
and eax, dword [rsp + 0x4c]
xor ecx, dword [rsp + 0x98]
xor ecx, r13d
mov r13, qword [rsp + 0x150]
lea edx, [rcx + rcx*2]
xor edx, eax
mov eax, dword [rsp + 0x6c]
xor edx, dword [r13]
xor edx, dword [rsp + 0x54]
rol eax, 1
xor eax, edx
mov dword [rsp + 0x6c], eax
not eax
mov dword [rsp + 0x5c], eax
mov eax, edx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0xc0]
and eax, dword [rsp + 0x20]
xor ecx, dword [rsp + 0xbc]
xor ecx, r14d
lea r14d, [rcx + rcx*2]
xor r14d, eax
mov eax, dword [rsp + 0x8c]
xor r14d, dword [r13 + 4]
xor r14d, dword [rsp + 0x58]
mov r13d, dword [rsp + 0x34]
and r13d, dword [rsp + 0x168]
rol eax, 1
xor eax, r14d
mov dword [rsp + 0x8c], eax
not eax
mov dword [rsp + 0x60], eax
mov eax, r14d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x90]
xor ecx, dword [rsp + 0x88]
xor ecx, r15d
rol eax, 1
lea r15d, [rcx + rcx*2]
xor r15d, r13d
mov r13, qword [rsp + 0x150]
xor r15d, dword [r13 + 8]
xor r15d, dword [rsp + 0x3c]
xor eax, r15d
mov dword [rsp + 0x90], eax
not eax
mov dword [rsp + 0x64], eax
mov eax, r15d
rol eax, 0xf
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0x84]
xor ecx, r12d
mov eax, dword [rsp + 0x30]
lea r12d, [rcx + rcx*2]
and eax, dword [rsp + 0x48]
xor r12d, eax
mov eax, dword [rsp + 0x24]
xor r12d, dword [r13 + 0xc]
xor r12d, dword [rsp + 0x5c]
rol eax, 1
xor eax, r12d
mov dword [rsp + 0x24], eax
not eax
mov dword [rsp + 0x74], eax
mov eax, r12d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x70]
xor ecx, dword [rsp + 0x80]
and eax, dword [rsp + 0x54]
xor ecx, ebp
lea r13d, [rcx + rcx*2]
xor r13d, eax
mov rax, qword [rsp + 0x150]
xor r13d, dword [rax + 0x10]
xor r13d, dword [rsp + 0x60]
mov eax, dword [rsp + 0x28]
rol eax, 1
xor eax, r13d
mov ebp, eax
mov dword [rsp + 0x28], eax
mov eax, r13d
not ebp
rol eax, 0xf
mov dword [rsp + 0x30], ebp
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0x7c]
xor ecx, esi
lea eax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x44]
and ecx, dword [rsp + 0x58]
xor eax, ecx
mov rcx, qword [rsp + 0x150]
xor eax, dword [rcx + 0x14]
xor eax, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x2c]
rol ecx, 1
xor ecx, eax
mov dword [rsp + 0xe8], eax
mov esi, ecx
mov dword [rsp + 0x2c], ecx
rol eax, 0xf
not esi
mov dword [rsp + 0x34], esi
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0xac]
xor ecx, edi
lea eax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x78]
and ecx, dword [rsp + 0x3c]
xor eax, ecx
mov rcx, qword [rsp + 0x150]
xor eax, dword [rcx + 0x18]
xor eax, dword [rsp + 0x74]
mov ecx, dword [rsp + 0xb0]
rol ecx, 1
xor ecx, eax
mov dword [rsp + 0xe4], eax
mov dword [rsp + 0xb0], ecx
not ecx
mov dword [rsp + 0x44], ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0xb8]
xor ecx, ebx
lea eax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x50]
and ecx, dword [rsp + 0x5c]
xor eax, ecx
mov rcx, qword [rsp + 0x150]
xor eax, dword [rcx + 0x1c]
xor eax, ebp
mov dword [rsp + 0xe0], eax
mov rbp, qword [rsp + 0x150]
mov ecx, dword [rsp + 0x94]
mov rdi, rbp
rol ecx, 1
xor ecx, eax
rol eax, 0xf
mov ebx, ecx
mov dword [rsp + 0x94], ecx
not ebx
mov dword [rsp + 0x70], ebx
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0xb4]
xor ecx, r11d
lea eax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x68]
and ecx, dword [rsp + 0x60]
xor eax, ecx
mov ecx, dword [rsp + 0x38]
xor eax, dword [rbp + 0x20]
rol ecx, 1
xor eax, esi
xor ecx, eax
mov dword [rsp + 0xec], eax
mov r11d, ecx
mov dword [rsp + 0x38], ecx
rol eax, 0xf
not r11d
mov dword [rsp + 0x50], r11d
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0xcc]
xor ecx, r10d
lea eax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x40]
and ecx, dword [rsp + 0x64]
xor eax, ecx
mov ecx, dword [rsp + 0x4c]
xor eax, dword [rbp + 0x24]
xor eax, dword [rsp + 0x44]
rol ecx, 1
xor ecx, eax
mov dword [rsp + 0x40], eax
mov r10d, ecx
mov dword [rsp + 0x4c], ecx
rol eax, 0xf
not r10d
mov dword [rsp + 0xc8], r10d
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0xa8]
xor ecx, r9d
lea eax, [rcx + rcx*2]
mov ecx, dword [rsp + 0x6c]
and ecx, dword [rsp + 0x74]
xor eax, ecx
mov ecx, dword [rsp + 0x20]
xor eax, dword [rbp + 0x28]
xor eax, ebx
rol ecx, 1
xor ecx, eax
mov dword [rsp + 0xf0], eax
mov r9d, ecx
rol eax, 0xf
mov dword [rsp + 0x20], ecx
not r9d
mov dword [rsp + 0xc4], r9d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x168]
xor ecx, dword [rsp + 0xa4]
xor ecx, r8d
rol eax, 1
lea ebp, [rcx + rcx*2]
mov ecx, dword [rsp + 0x8c]
and ecx, dword [rsp + 0x30]
xor ebp, ecx
xor ebp, dword [rdi + 0x2c]
xor ebp, r11d
xor eax, ebp
mov r8d, eax
mov dword [rsp + 0x168], eax
not r8d
mov eax, ebp
mov dword [rsp + 0xc0], r8d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x48]
xor ecx, dword [rsp + 0xa0]
rol eax, 1
xor ecx, edx
lea esi, [rcx + rcx*2]
mov ecx, dword [rsp + 0x90]
and ecx, dword [rsp + 0x34]
xor esi, ecx
xor esi, dword [rdi + 0x30]
xor esi, r10d
xor eax, esi
mov edx, eax
mov dword [rsp + 0x48], eax
not edx
mov eax, esi
rol eax, 0xf
mov dword [rsp + 0x78], edx
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x24]
and eax, dword [rsp + 0x44]
xor ecx, dword [rsp + 0xd0]
xor ecx, r14d
mov r14, qword [rsp + 0x150]
lea edi, [rcx + rcx*2]
xor edi, eax
mov eax, dword [rsp + 0x54]
xor edi, dword [r14 + 0x34]
rol eax, 1
xor edi, r9d
xor eax, edi
mov r9d, eax
mov dword [rsp + 0x54], eax
mov eax, edi
not r9d
rol eax, 0xf
mov dword [rsp + 0x6c], r9d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x28]
and eax, dword [rsp + 0x70]
xor ecx, dword [rsp + 0x9c]
xor ecx, r15d
lea ebx, [rcx + rcx*2]
xor ebx, eax
mov eax, dword [rsp + 0x58]
xor ebx, dword [r14 + 0x38]
rol eax, 1
xor ebx, r8d
xor eax, ebx
mov r8d, eax
mov dword [rsp + 0x58], eax
mov eax, ebx
not r8d
rol eax, 0xf
mov dword [rsp + 0x68], r8d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x2c]
and eax, dword [rsp + 0x50]
xor ecx, dword [rsp + 0xd4]
xor ecx, r12d
lea r11d, [rcx + rcx*2]
xor r11d, eax
mov eax, dword [rsp + 0x3c]
xor r11d, dword [r14 + 0x3c]
rol eax, 1
xor r11d, edx
xor eax, r11d
mov edx, eax
mov dword [rsp + 0x3c], eax
mov eax, r11d
not edx
rol eax, 0xf
mov dword [rsp + 0x2c], edx
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0xb0]
xor ecx, dword [rsp + 0x98]
and eax, dword [rsp + 0xc8]
xor ecx, r13d
lea r10d, [rcx + rcx*2]
xor r10d, eax
xor r10d, dword [r14]
mov eax, dword [rsp + 0x5c]
xor r10d, r9d
mov r12, qword [rsp + 0x150]
rol eax, 1
xor eax, r10d
mov r15d, eax
mov dword [rsp + 0x5c], eax
mov eax, r10d
not r15d
rol eax, 0xf
mov dword [rsp + 0x28], r15d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x94]
and eax, dword [rsp + 0xc4]
xor ecx, dword [rsp + 0xbc]
xor ecx, dword [rsp + 0xe8]
lea r9d, [rcx + rcx*2]
xor r9d, eax
mov eax, dword [rsp + 0x60]
xor r9d, dword [r14 + 4]
rol eax, 1
xor r9d, r8d
xor eax, r9d
mov r14d, eax
mov dword [rsp + 0x60], eax
mov eax, r9d
not r14d
rol eax, 0xf
mov dword [rsp + 0x24], r14d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x38]
and eax, dword [rsp + 0xc0]
xor ecx, dword [rsp + 0x88]
xor ecx, dword [rsp + 0xe4]
lea r8d, [rcx + rcx*2]
xor r8d, eax
mov eax, dword [rsp + 0x64]
xor r8d, dword [r12 + 8]
rol eax, 1
xor r8d, edx
xor eax, r8d
mov r13d, eax
mov dword [rsp + 0x64], eax
mov eax, r8d
not r13d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x4c]
and eax, dword [rsp + 0x78]
xor ecx, dword [rsp + 0x84]
xor ecx, dword [rsp + 0xe0]
lea edx, [rcx + rcx*2]
xor edx, eax
mov eax, dword [rsp + 0x74]
xor edx, dword [r12 + 0xc]
rol eax, 1
xor edx, r15d
xor eax, edx
mov r12d, eax
mov dword [rsp + 0x74], eax
mov eax, edx
not r12d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x20]
xor ecx, dword [rsp + 0x80]
xor ecx, dword [rsp + 0xec]
and eax, dword [rsp + 0x6c]
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x10]
mov eax, dword [rsp + 0x30]
xor ecx, r14d
rol eax, 1
xor eax, ecx
mov dword [rsp + 0x4c], ecx
mov r15d, eax
mov dword [rsp + 0x30], eax
not r15d
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x168]
and eax, dword [rsp + 0x68]
xor ecx, dword [rsp + 0x7c]
xor ecx, dword [rsp + 0x40]
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x14]
mov eax, dword [rsp + 0x34]
xor ecx, r13d
rol eax, 1
xor eax, ecx
mov dword [rsp + 0x38], ecx
mov r14d, eax
mov dword [rsp + 0x34], eax
mov eax, ecx
not r14d
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x48]
and eax, dword [rsp + 0x2c]
xor ecx, dword [rsp + 0xac]
xor ecx, dword [rsp + 0xf0]
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x18]
mov eax, dword [rsp + 0x44]
xor ecx, r12d
rol eax, 1
xor eax, ecx
mov dword [rsp + 0x48], ecx
not eax
mov dword [rsp + 0x44], eax
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x54]
and eax, dword [rsp + 0x28]
xor ecx, dword [rsp + 0xb8]
xor ecx, ebp
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x1c]
mov eax, dword [rsp + 0x70]
xor ecx, r15d
rol eax, 1
xor eax, ecx
mov dword [rsp + 0x54], ecx
not eax
mov dword [rsp + 0x70], eax
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x58]
xor ecx, dword [rsp + 0xb4]
and eax, dword [rsp + 0x24]
xor ecx, esi
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x20]
mov eax, dword [rsp + 0x50]
xor ecx, r14d
rol eax, 1
xor eax, ecx
mov dword [rsp + 0x58], ecx
not eax
mov dword [rsp + 0x50], eax
mov eax, ecx
rol eax, 0xf
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x3c]
xor ecx, dword [rsp + 0xcc]
xor ecx, edi
and eax, r13d
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov edi, dword [rsp + 0xc8]
mov rax, qword [rsp + 0x150]
rol edi, 1
xor ecx, dword [rax + 0x24]
xor ecx, dword [rsp + 0x44]
mov eax, ecx
mov dword [rsp + 0x3c], ecx
xor edi, ecx
rol eax, 0xf
not edi
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x5c]
xor ecx, dword [rsp + 0xa8]
and eax, r12d
xor ecx, ebx
mov ebx, dword [rsp + 0xc4]
rol ebx, 1
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x28]
xor ecx, dword [rsp + 0x70]
mov eax, ecx
mov dword [rsp + 0x5c], ecx
xor ebx, ecx
rol eax, 0xf
not ebx
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x60]
xor ecx, dword [rsp + 0xa4]
and eax, r15d
xor ecx, r11d
mov r11d, dword [rsp + 0xc0]
rol r11d, 1
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x2c]
xor ecx, dword [rsp + 0x50]
mov eax, ecx
mov dword [rsp + 0x60], ecx
xor r11d, ecx
rol eax, 0xf
not r11d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x64]
xor ecx, dword [rsp + 0xa0]
and eax, r14d
xor ecx, r10d
mov r10d, dword [rsp + 0x78]
rol r10d, 1
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x30]
xor ecx, edi
mov eax, ecx
mov dword [rsp + 0x64], ecx
xor r10d, ecx
rol eax, 0xf
not r10d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x74]
xor ecx, dword [rsp + 0xd0]
and eax, dword [rsp + 0x44]
xor ecx, r9d
mov r9d, dword [rsp + 0x6c]
rol r9d, 1
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov rax, qword [rsp + 0x150]
xor ecx, dword [rax + 0x34]
xor ecx, ebx
mov eax, ecx
mov dword [rsp + 0x74], ecx
xor r9d, ecx
rol eax, 0xf
not r9d
lea ecx, [rax + rax*4]
xor ecx, dword [rsp + 0x9c]
mov ebp, dword [rsp + 0xd4]
xor ecx, r8d
mov eax, dword [rsp + 0x30]
and eax, dword [rsp + 0x70]
lea r8d, [rcx + rcx*2]
mov rcx, qword [rsp + 0x150]
xor r8d, eax
xor r8d, dword [rcx + 0x38]
xor r8d, r11d
mov dword [rsp + 0x20], r8d
mov eax, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x68]
rol r8d, 1
xor r8d, eax
rol eax, 0xf
not r8d
lea ecx, [rax + rax*4]
mov eax, dword [rsp + 0x34]
and eax, dword [rsp + 0x50]
xor ecx, ebp
xor ecx, edx
lea ecx, [rcx + rcx*2]
xor ecx, eax
mov dword [rsp + 0x168], ecx
mov rcx, qword [rsp + 0x150]
mov eax, dword [rcx + 0x3c]
xor dword [rsp + 0x168], eax
mov eax, dword [rsp + 0x168]
xor eax, r10d
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x168], eax
rol ecx, 1
xor ecx, eax
mov eax, dword [rsp + 0x9c]
add eax, dword [rsp + 0xa8]
not ecx
add eax, dword [rsp + 0x88]
add dword [rsp + 0x168], eax
mov eax, dword [rsp + 0xa4]
add eax, ebp
add eax, dword [rsp + 0x84]
add dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x98]
add eax, dword [rsp + 0xa0]
add eax, dword [rsp + 0x80]
add dword [rsp + 0x74], eax
mov eax, dword [rsp + 0xbc]
add eax, dword [rsp + 0xd0]
add eax, dword [rsp + 0x7c]
add dword [rsp + 0x64], eax
mov eax, dword [rsp + 0x88]
add eax, dword [rsp + 0x9c]
add eax, dword [rsp + 0xac]
add dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x84]
add eax, ebp
add eax, dword [rsp + 0xb8]
add dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x80]
add eax, dword [rsp + 0x98]
add eax, dword [rsp + 0xb4]
add dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0xbc]
add eax, dword [rsp + 0xcc]
add eax, dword [rsp + 0x7c]
add dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x88]
add eax, dword [rsp + 0xa8]
add eax, dword [rsp + 0xac]
add dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x84]
add eax, dword [rsp + 0xa4]
add eax, dword [rsp + 0xb8]
add dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x80]
add eax, dword [rsp + 0xa0]
add eax, dword [rsp + 0xb4]
add dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xd0]
add eax, dword [rsp + 0xcc]
add eax, dword [rsp + 0x7c]
add dword [rsp + 0x4c], eax
mov ebp, dword [rsp + 0x28]
mov rax, qword [rsp + 0x150]
mov edx, dword [rsp + 0xb4]
mov esi, dword [rsp + 0x24]
mov dword [rsp + 0xb4], ebp
sub edx, dword [rax]
mov rbp, qword [rsp + 0x150]
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0xb0], edx
mov edx, dword [rsp + 0x50]
sub eax, dword [rbp + 4]
mov dword [rsp + 0x94], eax
mov eax, dword [rsp + 0xac]
sub eax, dword [rbp + 8]
mov dword [rsp + 0x2c], eax
mov eax, dword [rsp + 0x7c]
sub eax, dword [rbp + 0xc]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x80]
sub eax, dword [rbp + 0x10]
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x84]
sub eax, dword [rbp + 0x14]
mov dword [rsp + 0xc4], eax
mov eax, dword [rsp + 0x88]
sub eax, dword [rbp + 0x18]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0xbc]
sub eax, dword [rbp + 0x1c]
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x70]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x98]
sub eax, dword [rbp + 0x20]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xd4]
sub eax, dword [rbp + 0x24]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x9c]
sub eax, dword [rbp + 0x28]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0xd0]
sub eax, dword [rbp + 0x2c]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0xa0]
sub eax, dword [rbp + 0x30]
mov dword [rsp + 0x98], edx
mov edx, dword [rsp + 0xa8]
sub edx, dword [rbp + 0x38]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0xa4]
sub eax, dword [rbp + 0x34]
mov dword [rsp + 0x80], r15d
mov r15d, dword [rsp + 0xdc]
mov dword [rsp + 0x40], edx
mov edx, dword [rsp + 0xcc]
sub edx, dword [rbp + 0x3c]
mov dword [rsp + 0x7c], r12d
mov r12d, dword [rsp + 0xd8]
mov dword [rsp + 0x8c], eax
add r12d, 1
lea eax, [r15 + 1]
mov dword [rsp + 0xd4], edi
cmovne eax, r15d
mov dword [rsp + 0xb8], esi
mov r15d, eax
mov dword [rsp + 0xdc], eax
mov dword [rsp + 0xac], r13d
mov edi, 0
mov dword [rsp + 0x84], r14d
mov dword [rsp + 0x9c], ebx
mov dword [rsp + 0xd0], r11d
mov dword [rsp + 0xa0], r10d
mov dword [rsp + 0xa4], r9d
mov dword [rsp + 0xa8], r8d
mov dword [rsp + 0xc8], edx
mov dword [rsp + 0xcc], ecx
mov dword [rsp + 0xd8], r12d
mov rsi, qword [rsp + 0x160]
mov r14, qword [rsp + 0x158]
test rsi, rsi
jne 0x1401e67ec
mov r13d, dword [rsp + 0x4c]
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov edx, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x58]
mov r9d, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x5c]
mov r11d, dword [rsp + 0x60]
mov ebx, dword [rsp + 0x64]
mov esi, dword [rsp + 0x78]
mov dword [rbp + 0x4c], eax
mov eax, dword [rsp + 0x74]
mov dword [rbp + 0x6c], eax
mov eax, dword [rsp + 0x20]
mov dword [rbp + 0x70], eax
mov eax, dword [rsp + 0x168]
mov dword [rbp + 0x74], eax
mov eax, dword [rsp + 0xb0]
mov dword [rbp + 0x78], eax
mov eax, dword [rsp + 0x94]
mov dword [rbp + 0x7c], eax
mov eax, dword [rsp + 0x34]
mov dword [rbp + 0x94], eax
mov eax, dword [rsp + 0x30]
mov dword [rbp + 0x98], eax
mov eax, dword [rsp + 0x6c]
mov dword [rbp + 0x9c], eax
mov eax, dword [rsp + 0x68]
mov dword [rbp + 0xa0], eax
mov eax, dword [rsp + 0x24]
mov dword [rbp + 0xa4], eax
mov eax, dword [rsp + 0x90]
mov dword [rbp + 0xa8], eax
mov eax, dword [rsp + 0x8c]
mov dword [rbp + 0xac], eax
mov eax, dword [rsp + 0xb4]
mov dword [rbp + 0xb8], eax
mov eax, dword [rsp + 0xb8]
mov dword [rbp + 0xbc], eax
mov eax, dword [rsp + 0xac]
mov dword [rbp + 0xc0], eax
mov eax, dword [rsp + 0x7c]
mov dword [rbp + 0xc4], eax
mov eax, dword [rsp + 0x80]
mov dword [rbp + 0xc8], eax
mov eax, dword [rsp + 0x84]
mov dword [rbp + 0xcc], eax
mov eax, dword [rsp + 0x88]
mov dword [rbp + 0xd0], eax
mov eax, dword [rsp + 0xbc]
mov dword [rbp + 0xd4], eax
mov eax, dword [rsp + 0x98]
mov dword [rbp + 0xd8], eax
mov eax, dword [rsp + 0xd4]
mov dword [rbp + 0xdc], eax
mov eax, dword [rsp + 0x9c]
mov dword [rbp + 0xe0], eax
mov eax, dword [rsp + 0xd0]
mov dword [rbp + 0xe4], eax
mov eax, dword [rsp + 0xa0]
mov dword [rbp + 0xe8], eax
mov eax, dword [rsp + 0xa4]
mov dword [rbp + 0x60], r10d
mov r10d, dword [rsp + 0x2c]
mov dword [rbp + 0xec], eax
mov eax, dword [rsp + 0xa8]
mov dword [rbp + 0x50], ecx
mov ecx, dword [rsp + 0xc0]
mov dword [rbp + 0x80], r10d
mov r10d, dword [rsp + 0x40]
mov dword [rbp + 0xf0], eax
mov eax, dword [rsp + 0xcc]
mov dword [rbp + 0x5c], r9d
mov r9d, dword [rsp + 0x28]
mov dword [rbp + 0x88], ecx
mov ecx, dword [rsp + 0xc4]
mov dword [rbp + 0xb0], r10d
mov r10d, dword [rsp + 0xc8]
mov dword [rbp + 0xf4], eax
mov dword [rbp + 0x48], r13d
mov dword [rbp + 0x54], edx
mov dword [rbp + 0x58], r8d
mov dword [rbp + 0x64], r11d
mov dword [rbp + 0x68], ebx
mov dword [rbp + 0x84], r9d
mov dword [rbp + 0x8c], ecx
mov dword [rbp + 0x90], esi
mov dword [rbp + 0xb4], r10d
mov dword [rbp + 0xfc], r12d
mov dword [rbp + 0xf8], r15d
mov qword [rbp + 0x40], rdi
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret