Function at 0x18003c840
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4a0]
sub rsp, 0x5a0
mov rax, qword [0x180090f80]
xor rax, rsp
mov qword [rbp + 0x490], rax
mov r14, qword [rbp + 0x500]
lea eax, [r8 + 0xc]
mov qword [rbp + 8], r9
mov ebx, r8d
mov dword [rsp + 0x70], ebx
mov r13, r9
mov qword [rbp - 0x30], rdx
mov rdi, rcx
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x38], r14
mov dword [rbp - 0x40], eax
cmp r8d, eax
jae 0x18003c909
mov r8d, dword [rbp - 0x40]
mov r15, qword [rsp + 0x78]
mov qword [rbp - 0x48], r8
mov r11d, 4
lea eax, [rbx - 0x48]
xor r10d, r10d
lea r12, [0x180000000]
mov esi, 0xfffffff0
lea r9d, [r11 - 3]
cmp eax, 0x25
ja case.0x18003c8e6.84
movzx eax, byte [r12 + rax + 0x3d728]
mov ecx, dword [r12 + rax*4 + 0x3d6f4]
add rcx, r12
jmp rcx
cmp byte [0x180091059], 0
jne case.0x18003c8e6.84
xor edx, edx
mov ecx, 0x10001
call fcn.180025910
xorps xmm0, xmm0
movsd qword [rbp - 0x58], xmm0
mov rax, qword [rbp - 0x58]
mov rcx, qword [rbp + 0x490]
xor rcx, rsp
call fcn.180076c30
mov rbx, qword [rsp + 0x5f0]
add rsp, 0x5a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test byte [r13], 4
movzx r8d, byte [r14 + 0x19]
mov qword [rbp - 0x48], r8
je 0x18003c9de
mov rax, r10
test r8d, r8d
je 0x18003c9c1
cmp r8d, 0x10
jb 0x18003c9c1
movdqa xmm2, xmmword [str._a_a_a_a]
lea rcx, [r13 + 0x20]
mov edx, r8d
and rdx, rsi
nop dword [rax + rax]
movdqu xmm0, xmmword [rcx - 0x20]
lea rcx, [rcx + 0x40]
add rax, 0x10
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x60], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx - 0x50]
pxor xmm0, xmm2
movdqu xmmword [rcx - 0x50], xmm0
movdqu xmm0, xmmword [rcx - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
cmp rax, rdx
jl 0x18003c970
cmp rax, r8
jge 0x18003c9de
nop word [rax + rax]
xor dword [r13 + rax*4], 7
inc rax
cmp rax, r8
jl 0x18003c9d0
movzx edx, byte [r14 + 0x1c]
cmp dl, 1
jbe 0x18003ca58
mov ebx, 2
lea r11, [r13 + 4]
movzx eax, dl
mov edi, ebx
mov r8d, ebx
movzx ecx, dl
cmp ebx, eax
jge 0x18003ca40
lea rdx, [r11 + 4]
nop dword [rax]
nop dword [rax + rax]
movsxd r9, dword [rdx]
movsxd r10, dword [r11]
movzx eax, byte [r9 + r12 + 0x78f00]
cmp byte [r10 + r12 + 0x78f00], al
jae 0x18003ca2f
mov dword [r11], r9d
mov dword [rdx], r10d
movzx ecx, byte [r14 + 0x1c]
inc r8d
add rdx, 4
cmp r8d, ecx
jl 0x18003ca10
inc ebx
movzx eax, cl
add r11, 4
movzx edx, cl
cmp edi, eax
jl 0x18003c9f1
mov ebx, dword [rsp + 0x70]
mov r8, qword [rbp - 0x48]
movzx eax, dl
dec eax
mov dword [rbp - 0x60], eax
jmp case.0x18003c8e6.84
mov rcx, qword [rbp - 0x50]
lea rdx, [rbp - 0x50]
add rcx, 3
mov r8d, 0xa
mov qword [rbp - 0x50], rcx
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov rcx, qword [rbp - 0x50]
mov dword [r13], eax
cmp byte [rcx], 0x20
jne 0x18003ca9c
nop dword [rax + rax]
inc rcx
mov qword [rbp - 0x50], rcx
cmp byte [rcx], 0x20
je 0x18003ca90
mov r8d, 3
lea rdx, [0x18007bc6c]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
test eax, eax
jne 0x18003d6a8
mov r8, qword [rbp - 0x48]
inc ebx
mov dword [rsp + 0x70], ebx
cmp ebx, dword [rbp - 0x40]
jae 0x18003c909
mov r14, qword [rbp - 0x38]
mov rdi, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x30]
jmp 0x18003c8ad
xor r9d, r9d
mov dword [rsp + 0x20], 0x111
mov r8, r14
lea rdx, [rbp + 0x90]
xor ecx, ecx
mov ebx, r10d
call fcn.18001bfa0
lea rdx, str.bonnyville
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x18003d6a8
xor r9d, r9d
mov dword [rsp + 0x20], 0x111
mov r8, r14
lea rdx, [rbp + 0x90]
xor ecx, ecx
call fcn.18001bfa0
mov qword [rbp - 0x50], rax
cmp byte [rax], 0
je 0x18003cb79
mov edi, 1
nop dword [rax + rax]
lea rdx, str.initialSearchNameIndex
mov rcx, rax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
mov dword [rsp + 0x20], 0x111
mov r8, r14
lea rdx, [rbp + 0x90]
cmove ebx, edi
xor r9d, r9d
xor ecx, ecx
call fcn.18001bfa0
mov qword [rbp - 0x50], rax
cmp byte [rax], 0
jne 0x18003cb40
mov dword [rsp + 0x70], 0x48
test ebx, ebx
je 0x18003d6a8
mov ebx, dword [rsp + 0x70]
jmp 0x18003cab7
movsxd rax, dword [rdi]
movzx r11d, byte [r14 + 0x1c]
mov rsi, qword [rbp - 0x68]
movzx edi, byte [r14 + 0x1d]
imul rsi, rax
add edi, r11d
mov dword [rbp - 0x70], r11d
mov qword [rbp - 0x68], rsi
mov dword [rbp - 0x60], edi
cmp edi, r11d
jbe 0x18003cdf0
mov r15, qword [rbp - 0x28]
mov r12d, 0xd4
mov dword [rbp - 0x78], r12d
mov r14d, r11d
mov ebx, edi
mov eax, r12d
sub eax, 0xd2
je 0x18003cdc2
sub eax, 1
je 0x18003cc44
cmp eax, 1
jne 0x18003cdcb
cmp r14, rbx
jge 0x18003cc3b
lea r8, [r14*4]
add r8, r13
lea r9, [r14 + 1]
mov r10, r9
mov rax, r9
cmp r9, rbx
jge 0x18003cc2c
nop dword [rax]
mov ecx, dword [r8]
mov edx, dword [r13 + rax*4]
cmp ecx, edx
jle 0x18003cc24
mov dword [r8], edx
mov dword [r13 + rax*4], ecx
inc rax
cmp rax, rbx
jl 0x18003cc10
inc r9
add r8, 4
cmp r10, rbx
jl 0x18003cc01
xor r10d, r10d
mov dword [rbp - 0x80], r10d
jmp 0x18003cdcb
mov rdi, r14
cmp r14, rbx
jge 0x18003cda8
mov r12d, dword [rbp - 0x70]
lea r15, [0x180000000]
mov rsi, r10
nop
mov r9d, dword [r13 + rdi*4]
mov r11d, r10d
mov rcx, r10
movd xmm2, r9d
pshufd xmm2, xmm2, 0
test r12d, r12d
jle 0x18003cd12
cmp r12d, 8
jb 0x18003cd12
mov edx, r12d
xorps xmm5, xmm5
xorps xmm3, xmm3
and edx, 0x80000007
jge 0x18003cca0
dec edx
or edx, 0xfffffff8
inc edx
movdqa xmm4, xmmword [0x1800827b0]
mov eax, r12d
sub eax, edx
movsxd rdx, eax
movdqu xmm0, xmmword [r13 + rcx*4]
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm0
movdqu xmm0, xmmword [r13 + rcx*4 + 0x10]
add rcx, 8
pand xmm1, xmm4
paddd xmm1, xmm5
movdqa xmm5, xmm1
movdqa xmm1, xmm2
pcmpgtd xmm1, xmm0
pand xmm1, xmm4
paddd xmm1, xmm3
movdqa xmm3, xmm1
cmp rcx, rdx
jl 0x18003ccb0
paddd xmm3, xmm5
movdqa xmm0, xmm3
psrldq xmm0, 8
paddd xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
paddd xmm3, xmm0
movd r11d, xmm3
mov edx, r10d
mov r8d, r10d
cmp rcx, r14
jge 0x18003cd6f
mov rax, r14
sub rax, rcx
cmp rax, 2
jl 0x18003cd55
lea r10, [r14 - 1]
nop dword [rax]
xor eax, eax
cmp r9d, dword [r13 + rcx*4]
setg al
add edx, eax
xor eax, eax
cmp r9d, dword [r13 + rcx*4 + 4]
setg al
add rcx, 2
add r8d, eax
cmp rcx, r10
jl 0x18003cd30
xor r10d, r10d
cmp rcx, r14
jge 0x18003cd68
cmp r9d, dword [r13 + rcx*4]
mov eax, r10d
setg al
add r11d, eax
lea eax, [r8 + rdx]
add r11d, eax
mov edx, dword [rbp - 0x80]
sub r9d, r11d
movsxd rax, r9d
inc rdi
add rax, rsi
add rsi, 0x40
add edx, dword [r15 + rax*4 + 0x115f60]
mov dword [rbp - 0x80], edx
cmp rdi, rbx
jl 0x18003cc60
mov r12d, dword [rbp - 0x78]
mov r11d, dword [rbp - 0x70]
mov rsi, qword [rbp - 0x68]
mov r15, qword [rbp - 0x28]
jmp 0x18003cdab
mov edx, dword [rbp - 0x80]
movsxd rcx, dword [r15 + r14*4]
mov edi, dword [rbp - 0x60]
movsxd rax, edx
imul rcx, rax
add rsi, rcx
mov qword [rbp - 0x68], rsi
jmp 0x18003cdcb
mov r11d, edi
mov dword [rbp - 0x70], edi
mov r14, rbx
dec r12d
mov dword [rbp - 0x78], r12d
cmp r12d, 0xd1
ja 0x18003cbd1
mov r15, qword [rsp + 0x78]
mov rdx, qword [rbp - 0x30]
mov ebx, dword [rsp + 0x70]
mov r8, qword [rbp - 0x48]
cmp r11d, r8d
jge case.0x18003c8e6.84
mov r15d, dword [rbp - 0x70]
nop dword [rax]
mov r12d, 0x9b
nop word [rax + rax]
mov eax, r12d
sub eax, 0x9b
je 0x18003cfb0
sub eax, 0x3e
je 0x18003ce34
cmp eax, 0x3e
jne 0x18003d013
add r15d, edi
jmp 0x18003d013
lea eax, [rdi + r15]
movsxd rbx, r15d
movsxd r14, eax
cmp rbx, r14
jge 0x18003cf95
mov rdi, rbx
mov rsi, r10
nop dword [rax]
mov r9d, dword [r13 + rdi*4]
mov r11d, r10d
mov rcx, r10
movd xmm3, r9d
pshufd xmm3, xmm3, 0
test r15d, r15d
jle 0x18003cf02
cmp r15d, 8
jb 0x18003cf02
mov edx, r15d
xorps xmm2, xmm2
xorps xmm5, xmm5
and edx, 0x80000007
jge 0x18003ce90
dec edx
or edx, 0xfffffff8
inc edx
movdqa xmm4, xmmword [0x1800827b0]
mov eax, r15d
sub eax, edx
movsxd rdx, eax
movdqu xmm0, xmmword [r13 + rcx*4]
movdqa xmm1, xmm3
pcmpgtd xmm1, xmm0
movdqu xmm0, xmmword [r13 + rcx*4 + 0x10]
add rcx, 8
pand xmm1, xmm4
paddd xmm1, xmm2
movdqa xmm2, xmm1
movdqa xmm1, xmm3
pcmpgtd xmm1, xmm0
pand xmm1, xmm4
paddd xmm1, xmm5
movdqa xmm5, xmm1
cmp rcx, rdx
jl 0x18003cea0
paddd xmm2, xmm1
movdqa xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd r11d, xmm2
mov edx, r10d
mov r8d, r10d
cmp rcx, rbx
jge 0x18003cf5f
mov rax, rbx
sub rax, rcx
cmp rax, 2
jl 0x18003cf45
lea r10, [rbx - 1]
nop dword [rax]
xor eax, eax
cmp r9d, dword [r13 + rcx*4]
setg al
add edx, eax
xor eax, eax
cmp r9d, dword [r13 + rcx*4 + 4]
setg al
add rcx, 2
add r8d, eax
cmp rcx, r10
jl 0x18003cf20
xor r10d, r10d
cmp rcx, rbx
jge 0x18003cf58
cmp r9d, dword [r13 + rcx*4]
mov eax, r10d
setg al
add r11d, eax
lea eax, [r8 + rdx]
add r11d, eax
mov edx, dword [rbp - 0x80]
lea rcx, [0x180000000]
sub r9d, r11d
inc rdi
movsxd rax, r9d
add rax, rsi
add rsi, 0x40
add edx, dword [rcx + rax*4 + 0x115f80]
mov dword [rbp - 0x80], edx
cmp rdi, r14
jl 0x18003ce50
mov rsi, qword [rbp - 0x68]
mov edi, dword [rbp - 0x60]
jmp 0x18003cf98
mov edx, dword [rbp - 0x80]
mov rax, qword [rbp - 0x28]
movsxd rcx, dword [rax + rbx*4]
movsxd rax, edx
imul rcx, rax
add rsi, rcx
mov qword [rbp - 0x68], rsi
jmp 0x18003d013
movsxd rax, r15d
movzx edi, byte [rdx + rax]
mov dword [rbp - 0x60], edi
lea r11d, [rdi + r15]
cmp r15d, r11d
jge 0x18003d00f
lea r8, [rax*4]
mov ebx, r11d
add r8, r13
lea r10d, [r15 + 1]
sub ebx, r15d
cmp r10d, r11d
jge 0x18003cfff
mov r9d, r11d
lea rcx, [r8 + 4]
sub r9d, r10d
mov eax, dword [r8]
mov edx, dword [rcx]
cmp eax, edx
jle 0x18003cff5
mov dword [r8], edx
mov dword [rcx], eax
add rcx, 4
sub r9, 1
jne 0x18003cfe7
inc r10d
add r8, 4
sub rbx, 1
jne 0x18003cfd8
xor r10d, r10d
mov dword [rbp - 0x80], r10d
mov rdx, qword [rbp - 0x30]
add r12d, 0x3e
cmp r12d, 0x155
jb 0x18003ce10
mov r8, qword [rbp - 0x48]
cmp r15d, r8d
jl 0x18003ce00
mov r15, qword [rsp + 0x78]
mov ebx, dword [rsp + 0x70]
jmp case.0x18003c8e6.84
mov rsi, qword [rbp - 0x30]
mov ebx, 0x58
nop dword [rax]
mov eax, ebx
sub eax, 0x58
je 0x18003d062
cmp eax, 1
je 0x18003c909
jmp 0x18003d08c
mov rcx, qword [rbp - 0x50]
xor edx, edx
add rcx, 3
mov qword [rbp - 0x50], rcx
lea r8d, [rdx + 0xa]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov r9d, 1
mov dword [rsi], eax
mov dword [rdi], 3
mov dword [rbp - 0x58], r9d
inc ebx
cmp ebx, 0x5a
jb 0x18003d050
mov ebx, dword [rsp + 0x70]
xor r9d, r9d
mov dword [rsp + 0x20], 0x111
mov r8, r14
lea rdx, [rbp + 0x90]
xor ecx, ecx
call fcn.18001bfa0
mov qword [rbp - 0x50], rax
lea rdx, [0x18007bc98]
mov r8d, 3
mov rcx, rax
jmp 0x18003caa9
mov esi, 0xa4
mov dword [rbp - 0x78], esi
cmp esi, 0xa4
je 0x18003d5e1
cmp esi, 0x2484
je 0x18003d5d6
cmp esi, 0x4864
je 0x18003d116
cmp esi, 0x6c44
je 0x18003d10d
cmp esi, 0x9024
je 0x18003c909
jmp 0x18003d5f0
mov dword [rbp - 0x58], r9d
jmp 0x18003d5f0
cmp byte [r14 + 0x1b], 0
jne 0x18003d2d4
mov edi, 0xcd
nop word [rax + rax]
cmp edi, 0x2ad
ja 0x18003d271
je 0x18003d26b
cmp edi, 0xcd
je 0x18003d242
cmp edi, 0x16d
je 0x18003d237
cmp edi, 0x20d
jne 0x18003d2ae
mov rax, qword [rbp + 0x10]
lea rcx, [rbp + 0x30]
mov r13, qword [rbp - 0x18]
mov r8, r15
mov qword [rbp - 0x68], rax
mov edx, 0x113
lea rax, [rbp - 0x78]
mov dword [rbp - 0x78], r10d
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea r9, [r13 + 0x4c]
lea rax, [rbp - 8]
mov qword [rsp + 0x20], rax
call fcn.180044950
test byte [r13 + 0x4c], 2
mov r15, qword [rbp - 8]
mov qword [r13 + 0x58], r15
mov qword [r13 + 0x20], rax
je 0x18003d22b
movzx eax, r15w
lea rcx, [r15 + 1]
sub ax, r15w
inc ax
mov word [r13 + 0x4e], ax
movzx eax, byte [r15]
add rcx, rax
movzx eax, cx
sub ax, r15w
inc ax
mov word [r13 + 0x50], ax
movzx eax, byte [rcx]
inc rcx
add rcx, rax
movzx eax, cx
sub ax, r15w
inc ax
mov word [r13 + 0x52], ax
lea rdx, [rcx + 1]
movzx eax, byte [rcx]
add rdx, rax
movzx eax, dx
sub ax, r15w
inc ax
mov word [r13 + 0x54], ax
lea r15, [rdx + 1]
movzx ecx, byte [rdx]
lea rax, [rdx - 1]
add rax, rcx
add r15, rcx
and eax, 1
add r15, rax
mov rax, qword [r13 + 0x20]
xor r10d, r10d
mov qword [rax], r15
jmp 0x18003d2ae
mov rax, r15
and eax, 1
add r15, rax
jmp 0x18003d2ae
mov r9d, 0x29
mov qword [rbp - 0x18], r14
mov r8, r14
lea rcx, [rbp + 0x10]
mov rdx, r15
call fcn.18005f160
movzx eax, byte [r14 + 0x19]
inc r15
add r15, rax
xor r10d, r10d
jmp 0x18003d2ae
add r15, qword [rbp + 0x30]
jmp 0x18003d2ae
cmp edi, 0x34d
je 0x18003d293
cmp edi, 0x3ed
jne 0x18003d2ae
mov rax, qword [rbp - 0x18]
mov rax, qword [rax + 0x20]
mov qword [rax + 0x10], r15
add r15, qword [rbp + 0x40]
jmp 0x18003d2ae
mov rax, qword [rbp - 0x18]
mov rax, qword [rax + 0x20]
mov qword [rax + 8], r15
mov rax, qword [rbp + 0x38]
add rax, 0x3f
add r15, rax
and r15, 0xffffffffffffffc0
add edi, 0xa0
cmp edi, 0x48d
jb 0x18003d130
mov r9d, 1
mov qword [rsp + 0x78], r15
lea r11d, [r9 + 3]
jmp 0x18003d5f0
movsxd r12, dword [rbp - 0x20]
mov r13d, 0x51
nop
cmp r13d, 0x51
je 0x18003d481
cmp r13d, 0xedf
je 0x18003d3c2
cmp r13d, 0x1d6d
je 0x18003d37e
cmp r13d, 0x2bfb
jne 0x18003d5ae
test r12, r12
jle 0x18003d5ae
mov r8, qword [rbp - 0x10]
lea rcx, [rbp + 0x38]
add r8, 0x20
mov r9, r12
mov rdx, r8
nop dword [rax + rax]
mov rax, qword [rdx]
lea rdx, [rdx + 0x30]
lea rcx, [rcx + 0x18]
mov qword [rax + 8], r15
add r15, qword [rcx - 0x18]
sub r9, 1
jne 0x18003d330
lea rdx, [rbp + 0x40]
mov r9, r12
mov rax, qword [r8]
lea rcx, [r15 + 0x3f]
and rcx, 0xffffffffffffffc0
lea r8, [r8 + 0x30]
lea rdx, [rdx + 0x18]
mov qword [rax + 0x10], rcx
mov r15, qword [rdx - 0x18]
add r15, rcx
sub r9, 1
jne 0x18003d350
mov qword [rsp + 0x78], r15
jmp 0x18003d5ae
test r12, r12
jle 0x18003d5ae
mov rdx, qword [rbp - 0x10]
lea rcx, [rbp + 0x30]
add rdx, 0x20
mov r8, r12
nop word [rax + rax]
mov rax, qword [rdx]
lea rdx, [rdx + 0x30]
lea rcx, [rcx + 0x18]
mov qword [rax], r15
add r15, qword [rcx - 0x18]
sub r8, 1
jne 0x18003d3a0
mov qword [rsp + 0x78], r15
jmp 0x18003d5ae
mov r10, qword [rbp - 0x10]
xor r9d, r9d
mov qword [r10 + 0x108], r15
test r12, r12
jle 0x18003d470
lea r8, [r10 + 0xe6]
test byte [r9 + r10 + 0xe0], 2
je 0x18003d460
movzx eax, r15w
lea rcx, [r15 + 1]
sub ax, word [r10 + 0x108]
inc ax
mov word [r8 - 2], ax
movzx eax, byte [r15]
add rcx, rax
movzx eax, cx
sub ax, word [r10 + 0x108]
inc ax
mov word [r8], ax
lea rdx, [rcx + 1]
movzx eax, byte [rcx]
add rdx, rax
movzx eax, dx
sub ax, word [r10 + 0x108]
inc ax
mov word [r8 + 2], ax
lea rcx, [rdx + 1]
movzx eax, byte [rdx]
add rcx, rax
movzx eax, cx
sub ax, word [r10 + 0x108]
inc ax
mov word [r8 + 4], ax
lea r15, [rcx + 1]
movzx eax, byte [rcx]
add r15, rax
inc r9
add r8, 8
cmp r9, r12
jl 0x18003d3e0
mov rax, r15
and eax, 1
add r15, rax
xor r10d, r10d
jmp 0x18003d5ae
cmp byte [r14 + 0x1d], 0
lea rdi, [rbp + 0x10]
mov rsi, r10
mov qword [rbp - 0x10], r14
seta sil
mov ebx, r10d
inc rsi
nop dword [rax + rax]
lea rax, [rbp]
mov dword [rbp], ebx
mov qword [rsp + 0x60], rax
xor r9d, r9d
mov qword [rsp + 0x58], rdi
xor r8d, r8d
mov dword [rsp + 0x50], 0x3a
xor edx, edx
mov qword [rsp + 0x48], r14
xor ecx, ecx
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r10
call fcn.180037d60
movzx eax, byte [r14 + 0x19]
inc ebx
add rax, rsi
add rdi, 8
add r15, rax
mov r10d, 0
mov rax, r15
cmp ebx, 4
jl 0x18003d4a0
and r15d, 1
mov r14d, r10d
add r15, rax
mov ebx, r10d
test r12, r12
jle 0x18003d5aa
mov rcx, qword [rbp - 0x38]
mov edi, r10d
lea rsi, [rcx + 0x20]
nop word [rax + rax]
mov rax, qword [rbp + rbx*8 + 0x10]
lea r9, [rcx + 0xe0]
mov qword [rbp - 0x68], rax
lea rcx, [rbp + 0x30]
mov eax, r14d
mov r8, r15
add r9, rax
mov dword [rbp - 0x70], r10d
movsxd rax, edi
mov edx, 0x113
lea rcx, [rcx + rax*8]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 8]
mov qword [rsp + 0x20], rax
call fcn.180044950
mov r15, qword [rbp - 8]
inc r14d
mov rcx, qword [rbp - 0x38]
add edi, 3
mov qword [rsi], rax
lea rsi, [rsi + 0x30]
inc rbx
mov r10d, 0
cmp rbx, r12
jl 0x18003d530
mov qword [rsp + 0x78], r15
mov r14, rcx
jmp 0x18003d5ae
mov r14, qword [rbp - 0x38]
add r13d, 0xe8e
cmp r13d, 0x3a38
jbe 0x18003d2e0
mov esi, dword [rbp - 0x78]
mov r9d, 1
mov qword [rsp + 0x78], r15
lea r11d, [r9 + 3]
jmp 0x18003d5f0
add r15, 5
mov qword [rsp + 0x78], r15
jmp 0x18003d5f0
test byte [r15 + 4], 2
mov eax, r9d
cmovne eax, r11d
mov dword [rbp - 0x20], eax
add esi, 0x23e0
mov dword [rbp - 0x78], esi
cmp esi, 0xb360
jbe 0x18003d0d4
mov r13, qword [rbp + 8]
lea r12, [0x180000000]
mov ebx, dword [rsp + 0x70]
movsxd rax, dword [r13]
movsxd r8, dword [rbp - 0x60]
movzx ecx, byte [rax + r12 + 0x78ec0]
lea rax, [r8 + r8*2]
lea rdx, [rcx + rax*8]
movsxd rsi, dword [r12 + rdx*4 + 0x116480]
mov qword [rbp - 0x68], rsi
test r8, r8
jle 0x18003cab7
mov rdx, r10
movsxd rax, dword [r13 + r8*4]
dec r8
movzx ecx, byte [rax + r12 + 0x78f00]
add rcx, rdx
add rdx, 0x40
movsxd rax, dword [r12 + rcx*4 + 0x115f80]
add rsi, rax
test r8, r8
jg 0x18003d645
mov qword [rbp - 0x68], rsi
jmp 0x18003cab7
mov r15, qword [r14]
mov qword [rsp + 0x78], r15
test r15, r15
je 0x18003d6c9
cmp dword [r15], 0xa50c66d7
je case.0x18003c8e6.84
lea rcx, str.g_build_filenamev
call fcn.180076310
mov dword [rbp - 0x58], 0
jmp 0x18003c909
xor ebx, ebx
mov r9, r14
xor edx, edx
mov qword [rsp + 0x20], rbx
xor ecx, ecx
mov r8d, 0xd8
call fcn.18006e170
mov dword [rbp - 0x58], ebx
jmp 0x18003c909
mov dword [rbp - 0x58], r10d
jmp 0x18003c909
mov r9d, 0x94
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1800293a0
jmp 0x18003c90d
mov rax, qword [rbp - 0x68]
jmp 0x18003c90d