Function at 0x421a90
Capabilities:
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x158
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xc0], xmm11
movaps xmmword [rbp + 0xb0], xmm10
movaps xmmword [rbp + 0xa0], xmm9
movaps xmmword [rbp + 0x90], xmm8
movaps xmmword [rbp + 0x80], xmm7
movaps xmmword [rbp + 0x70], xmm6
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x68], rcx
xorps xmm0, xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp + 0x20], xmm0
movaps xmmword [rbp + 0x10], xmm0
mov dword [rbp + 0x30], 0
mov eax, dword [0x00439700]
cmp dword [0x0043972c], 0xa
setl cl
lea edx, [rax + 1]
or edx, 0xfffffffe
lea ebx, [rdx + rdx]
add ebx, 6
add edx, 3
not edx
add edx, ebx
imul edx, eax
test dl, 1
sete al
xor dword [rbp - 0x30], 0x1e27
or al, cl
movups xmm0, xmmword [rbp - 0x28]
movaps xmm1, xmmword [0x00434240]
xorps xmm0, xmm1
movups xmmword [rbp - 0x28], xmm0
movups xmm0, xmmword [rbp - 0x18]
xorps xmm0, xmm1
movups xmmword [rbp - 0x18], xmm0
movups xmm0, xmmword [rbp - 8]
xorps xmm0, xmm1
movups xmmword [rbp - 8], xmm0
movups xmm0, xmmword [rbp + 8]
xorps xmm0, xmm1
movups xmmword [rbp + 8], xmm0
movups xmm0, xmmword [rbp + 0x18]
xorps xmm0, xmm1
movups xmmword [rbp + 0x18], xmm0
xor dword [rbp + 0x28], 0x1e27
mov byte [rbp + 0x5f], al
xor dword [rbp + 0x2c], 0x1e27
mov byte [rbp + 0x5e], al
xor dword [rbp + 0x30], 0x1e27
mov eax, 0x52b
mov dword [rbp - 0x60], 0
movaps xmm9, xmmword [0x00434270]
movaps xmm8, xmmword [0x00434260]
movaps xmm7, xmmword [0x004342a0]
movaps xmm10, xmmword [0x00434290]
movaps xmm6, xmmword [0x00434280]
movaps xmm11, xmmword [0x00434250]
mov r15d, 0
xor r14d, r14d
mov dword [rbp - 0x5c], 0
xor r13d, r13d
mov dword [rbp - 0x44], 0
xor r12d, r12d
mov dword [rbp - 0x58], 0
mov dword [rbp - 0x54], 0
mov dword [rbp - 0x50], 0
mov dword [rbp - 0x48], 0
mov dword [rbp - 0x4c], 0
jmp 0x421c30
mov rax, qword [rbp + 0x60]
mov rax, qword [rbp + 0x40]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov eax, dword [rbp + 0x30]
mov ecx, 0x619d
xor eax, ecx
nop word cs:[rax + rax]
nop dword [rax]
cmp eax, 0x420a
jg 0x421cf0
cmp eax, 0x1add
jg 0x421df0
cmp eax, 0x52a
jg 0x421f0e
cmp eax, 0x24e
je 0x42219d
cmp eax, 0x348
je 0x422217
cmp eax, 0x363
jne 0x421c30
mov rax, qword [rbp + 0x50]
mov rax, qword [rbp + 0x48]
mov eax, dword [0x004397c4]
mov ecx, dword [0x0043967c]
cmp ecx, 9
setg r8b
cmp ecx, 0xa
setl cl
mov ebx, eax
xor ebx, 0x83112da8
add ebx, eax
mov edi, eax
not edi
or edi, 0x83112da8
lea esi, [rdi + rbx]
add esi, 0xf9dda4af
lea edx, [rdi + rbx]
add edx, 0xf9dda4b2
add ebx, edi
xor edx, 0xa8
add edx, ebx
add edx, 0xf9dda4af
add edx, esi
add edx, 0x3112dae
imul edx, eax
and dl, 1
or dl, cl
xor dl, r8b
mov eax, 0x2f93
mov ecx, 0x4154
cmovne eax, ecx
xor eax, dword [rbp + 8]
jmp 0x421c30
cmp eax, 0x5c3a
jg 0x421e90
cmp eax, 0x489a
jg 0x421f90
cmp eax, 0x420b
je 0x422314
cmp eax, 0x42aa
je 0x421c0a
cmp eax, 0x45df
jne 0x421c30
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x40], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x60], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x48], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x50], rax
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x70]
mov qword [rax], rcx
mov rax, qword [rbp + 0x60]
sub rsp, 0x20
mov rcx, qword [rbp - 0x68]
lea rdx, [0x004343d5]
call sub.msvcrt.dll_fopen
add rsp, 0x20
mov rcx, qword [rbp + 0x60]
mov qword [rcx], rax
mov rax, qword [rbp + 0x60]
cmp qword [rax], 0
sete byte [rbp + 0x6f]
mov eax, dword [rbp + 0x18]
mov ecx, 0x16c1
xor eax, ecx
jmp 0x421c30
cmp eax, 0x2fb3
jg 0x422047
cmp eax, 0x1ade
je 0x422391
cmp eax, 0x1d9a
je 0x4223eb
cmp eax, 0x25fd
jne 0x421c30
movzx eax, byte [rbp + 0x6f]
test r14b, r14b
jne 0x421e6d
movaps xmm0, xmmword [rbp - 0x20]
xorps xmm0, xmm6
movaps xmmword [rbp - 0x20], xmm0
movaps xmm0, xmmword [rbp - 0x10]
xorps xmm0, xmm6
movaps xmmword [rbp - 0x10], xmm0
movaps xmm0, xmmword [rbp]
xorps xmm0, xmm6
movaps xmmword [rbp], xmm0
xor dword [rbp + 0x10], 0x985
xor dword [rbp + 0x14], 0x985
movups xmm0, xmmword [rbp + 0x1c]
xorps xmm0, xmm6
movups xmmword [rbp + 0x1c], xmm0
xor dword [rbp + 0x2c], 0x985
xor dword [rbp + 0x30], 0x985
test al, 1
mov eax, 0x4eb9
mov ecx, 0x32e1
cmovne eax, ecx
xor eax, dword [rbp - 0x24]
mov r14b, 1
jmp 0x421c30
cmp eax, 0x7986
jle 0x422110
cmp eax, 0x7987
je 0x422402
cmp eax, 0x7b6d
je 0x42246e
cmp eax, 0x7e16
jne 0x421c30
mov eax, dword [0x00439478]
cmp dword [0x004396f4], 0xa
setl cl
mov edx, 1
sub edx, eax
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x5c], 0
jne 0x421ef2
xor dword [rbp - 0x1c], 0x2297
xor dword [rbp + 0x1c], 0x2297
test al, al
mov eax, 0x3e1f
mov ecx, 0x4cfc
cmovne eax, ecx
xor eax, dword [rbp - 0x20]
mov cl, 1
mov dword [rbp - 0x5c], ecx
jmp 0x421c30
cmp eax, 0x52b
je 0x422492
cmp eax, 0x8c0
je 0x4224fd
cmp eax, 0x98e
jne 0x421c30
mov rax, qword [rbp + 0x40]
mov qword [rax], 0
mov rax, qword [rbp - 0x38]
mov dword [rax], 1
mov eax, dword [0x00439750]
mov ecx, dword [0x00439528]
cmp ecx, 9
setg dl
cmp ecx, 0xa
setl cl
mov esi, eax
and esi, 0x79cd0d9
add esi, esi
add esi, 0xfffffffe
sub esi, eax
add esi, 1
imul esi, eax
and sil, 1
or sil, cl
xor sil, dl
mov eax, 0x1c88
mov ecx, 0x14b8
cmovne eax, ecx
xor eax, dword [rbp - 0x1c]
jmp 0x421c30
cmp eax, 0x489b
je 0x422643
cmp eax, 0x5068
je 0x422695
cmp eax, 0x52f5
jne 0x421c30
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_fclose
add rsp, 0x20
mov rax, qword [rbp + 0x40]
mov qword [rax], 0
mov rax, qword [rbp - 0x38]
mov dword [rax], 1
mov eax, dword [0x0043981c]
cmp dword [0x0043969c], 0xa
setl r8b
lea edx, [rax - 0x639fb641]
not edx
add edx, eax
add edx, eax
add edx, 0x9c6049bf
mov ebx, 0xc73f6c82
sub ebx, edx
imul ebx, eax
and ebx, 1
sete cl
or bl, r8b
mov edx, r8d
xor dl, cl
xor cl, bl
mov eax, ecx
not al
or al, dl
xor bl, r8b
xor bl, al
xor dl, 1
mov eax, ecx
and al, dl
or dl, cl
xor dl, al
xor dl, bl
test dl, 1
mov eax, 0x742c
mov ecx, 0x6b30
cmovne eax, ecx
xor eax, dword [rbp - 8]
jmp 0x421c30
cmp eax, 0x2fb4
je 0x422722
cmp eax, 0x30a8
je 0x42275a
cmp eax, 0x3149
jne 0x421c30
mov rax, qword [rbp + 0x50]
mov rcx, qword [rax]
mov rax, qword [rbp + 0x48]
movsxd r8, dword [rax]
mov rax, qword [rbp + 0x60]
mov r9, qword [rax]
sub rsp, 0x20
mov edx, 1
call sub.msvcrt.dll_fread
add rsp, 0x20
mov rcx, qword [rbp - 0x40]
mov rcx, qword [rcx]
mov qword [rcx], rax
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_fclose
add rsp, 0x20
mov rax, qword [rbp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x40]
mov qword [rcx], rax
mov rax, qword [rbp - 0x38]
mov dword [rax], 1
mov eax, dword [0x004395e0]
mov ecx, dword [0x0043951c]
cmp ecx, 0xa
setl dl
cmp ecx, 9
setg cl
lea ebx, [rax + 1]
imul ebx, eax
test bl, 1
sete al
or cl, al
xor cl, dl
xor dl, al
test cl, cl
mov eax, 0x6e7c
mov ecx, 0x2753
cmovne eax, ecx
test dl, dl
mov ecx, 0x6e7c
cmovne eax, ecx
xor eax, dword [rbp]
jmp 0x421c30
cmp eax, 0x5c3b
je 0x4227c5
cmp eax, 0x735d
jne 0x42281c
mov ebx, dword [0x00439688]
mov ecx, ebx
not ecx
cmp dword [0x00439704], 0xa
setl dl
mov eax, ebx
or eax, 0x32b38d0c
mov edi, ebx
sub edi, eax
or ecx, 0x32b38d0c
lea eax, [rcx + rdi]
add eax, 0x65671a1a
mov ecx, eax
add ecx, ecx
add eax, ecx
add eax, 0xfffffffe
imul eax, ebx
test al, 1
sete al
or al, dl
cmp byte [rbp - 0x48], 0
jne 0x422181
xor dword [rbp + 0x10], 0x3e31
xor dword [rbp + 0x14], 0x3e31
xor dword [rbp + 0x30], 0x3e31
test al, al
mov eax, 0x7d8
mov ecx, 0x5fac
cmovne eax, ecx
xor eax, dword [rbp + 0xc]
mov cl, 1
mov dword [rbp - 0x48], ecx
jmp 0x421c30
mov ecx, dword [0x0043953c]
mov eax, dword [0x004394d4]
cmp eax, 0xa
setl dl
cmp eax, 9
setg al
mov esi, ecx
not esi
lea edi, [rcx + rcx]
add edi, esi
neg edi
imul edi, ecx
test dil, 1
sete cl
or al, cl
xor al, dl
xor dl, cl
xor al, 1
or al, dl
test r13b, r13b
jne 0x4221fd
movups xmm0, xmmword [rbp - 0x14]
movups xmm1, xmmword [rbp - 4]
xorps xmm0, xmm9
movups xmmword [rbp - 0x14], xmm0
xorps xmm1, xmm9
movups xmmword [rbp - 4], xmm1
movaps xmm0, xmmword [rbp + 0x20]
xorps xmm0, xmm9
movaps xmmword [rbp + 0x20], xmm0
test al, al
mov eax, 0x151a
mov ecx, 0x463a
cmovne eax, ecx
xor eax, dword [rbp - 0x18]
mov r13b, 1
jmp 0x421c30
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
xor edx, edx
mov r8d, 2
call sub.msvcrt.dll_fseek
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_ftell
add rsp, 0x20
mov rcx, qword [rbp + 0x48]
mov dword [rcx], eax
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
xor edx, edx
xor r8d, r8d
call sub.msvcrt.dll_fseek
add rsp, 0x20
mov rax, qword [rbp + 0x50]
mov rax, qword [rbp + 0x48]
movsxd rcx, dword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_malloc
add rsp, 0x20
mov rcx, qword [rbp + 0x50]
mov qword [rcx], rax
mov rax, qword [rbp + 0x50]
cmp qword [rax], 0
sete byte [rbp + 0x6e]
mov eax, dword [0x004396c4]
cmp dword [0x00439760], 0xa
setl cl
mov edx, eax
not edx
lea edi, [rax + rax]
add edx, edi
add edx, 2
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x44], 0
jne 0x4222f8
movaps xmm0, xmmword [rbp - 0x10]
xorps xmm0, xmm8
movaps xmmword [rbp - 0x10], xmm0
xor dword [rbp], 0x7e1d
xor dword [rbp + 4], 0x7e1d
xor dword [rbp + 8], 0x7e1d
xor dword [rbp + 0x24], 0x7e1d
xor dword [rbp + 0x28], 0x7e1d
xor dword [rbp + 0x2c], 0x7e1d
test al, al
mov eax, 0x35b7
mov ecx, 0x2d44
cmovne eax, ecx
xor eax, dword [rbp - 0x14]
mov cl, 1
mov dword [rbp - 0x44], ecx
jmp 0x421c30
mov ecx, dword [0x004396e4]
mov eax, dword [0x00439694]
cmp eax, 9
setg dl
cmp eax, 0xa
setl r8b
lea eax, [rcx + 1]
imul eax, ecx
and eax, 1
sete cl
mov ebx, r8d
or al, r8b
xor r8b, cl
or bl, cl
xor bl, r8b
and dl, cl
xor dl, r8b
xor al, dl
mov ecx, eax
xor cl, 1
mov edx, ebx
not dl
and dl, cl
or cl, bl
xor cl, dl
or al, bl
xor al, cl
cmp byte [rbp - 0x58], 0
jne 0x422375
xor dword [rbp - 8], 0x7794
xor dword [rbp + 0x24], 0x7794
test al, 1
mov eax, 0x61e5
mov ecx, 0x1ca4
cmovne eax, ecx
xor eax, dword [rbp - 0xc]
mov cl, 1
mov dword [rbp - 0x58], ecx
jmp 0x421c30
mov rax, qword [rbp + 0x60]
mov rax, qword [rbp + 0x40]
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov eax, dword [0x00439510]
cmp dword [0x004397d8], 0xa
setl cl
mov edx, 1
sub edx, eax
imul edx, eax
test dl, 1
sete al
or al, cl
cmp byte [rbp - 0x4c], 0
jne 0x4223cf
xor dword [rbp + 0x14], 0x22f1
test al, al
mov eax, 0x39e9
mov ecx, 0x157c
cmovne eax, ecx
xor eax, dword [rbp + 0x10]
mov cl, 1
mov dword [rbp - 0x4c], ecx
jmp 0x421c30
mov rax, qword [rbp + 0x50]
mov rax, qword [rbp + 0x48]
mov eax, dword [rbp + 0x2c]
mov ecx, 0x316a
xor eax, ecx
jmp 0x421c30
mov rax, qword [rbp + 0x50]
mov rcx, qword [rax]
mov rax, qword [rbp + 0x48]
movsxd r8, dword [rax]
mov rax, qword [rbp + 0x60]
mov r9, qword [rax]
sub rsp, 0x20
mov edx, 1
call sub.msvcrt.dll_fread
add rsp, 0x20
mov rcx, qword [rbp - 0x40]
mov rcx, qword [rcx]
mov qword [rcx], rax
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_fclose
add rsp, 0x20
mov rax, qword [rbp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rbp + 0x40]
mov qword [rcx], rax
mov rax, qword [rbp - 0x38]
mov dword [rax], 1
mov eax, dword [rbp + 0x28]
mov ecx, 0x6f9d
xor eax, ecx
jmp 0x421c30
mov rax, qword [rbp + 0x40]
mov qword [rax], 0
mov rax, qword [rbp - 0x38]
mov dword [rax], 1
mov eax, dword [rbp + 0x1c]
mov ecx, 0x6e6b
xor eax, ecx
jmp 0x421c30
movzx eax, byte [rbp + 0x5e]
cmp byte [rbp - 0x60], 0
jne 0x4224df
movups xmm0, xmmword [rbp - 0x28]
movups xmm1, xmmword [rbp - 0x18]
movups xmm2, xmmword [rbp - 8]
movups xmm3, xmmword [rbp + 8]
xorps xmm0, xmm7
movups xmmword [rbp - 0x28], xmm0
xorps xmm1, xmm7
movups xmmword [rbp - 0x18], xmm1
xorps xmm2, xmm7
movups xmmword [rbp - 8], xmm2
xorps xmm3, xmm7
movups xmmword [rbp + 8], xmm3
movups xmm0, xmmword [rbp + 0x18]
xorps xmm0, xmm7
movups xmmword [rbp + 0x18], xmm0
xor byte [rbp + 0x28], 0x26
xor byte [rbp + 0x2c], 0x26
xor byte [rbp + 0x30], 0x26
cmp byte [rbp + 0x5f], 0
mov eax, 0x5bf8
mov ecx, 0x16e7
cmovne eax, ecx
xor eax, dword [rbp - 0x30]
mov cl, 1
mov dword [rbp - 0x60], ecx
jmp 0x421c30
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x40], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x40], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x60], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x48], rax
mov eax, 0x10
call fcn.0042cd60
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x50], rax
mov rax, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x70]
mov qword [rax], rcx
mov rax, qword [rbp + 0x60]
sub rsp, 0x20
mov rcx, qword [rbp - 0x68]
lea rdx, [0x004343d5]
call sub.msvcrt.dll_fopen
add rsp, 0x20
mov rcx, qword [rbp + 0x60]
mov qword [rcx], rax
mov rax, qword [rbp + 0x60]
cmp qword [rax], 0
sete byte [rbp + 0x6f]
mov eax, dword [0x004395d4]
cmp dword [0x004397c8], 0xa
setl cl
mov edx, 1
sub edx, eax
imul edx, eax
test dl, 1
sete al
or al, cl
test r15b, r15b
jne 0x422629
movups xmm0, xmmword [rbp - 0x24]
movups xmm1, xmmword [rbp - 0x14]
movups xmm2, xmmword [rbp - 4]
movups xmm3, xmmword [rbp + 0x1c]
xorps xmm0, xmm10
movups xmmword [rbp - 0x24], xmm0
xorps xmm1, xmm10
movups xmmword [rbp - 0x14], xmm1
xorps xmm2, xmm10
movups xmmword [rbp - 4], xmm2
xor dword [rbp + 0xc], 0x52f6
xor dword [rbp + 0x10], 0x52f6
xor dword [rbp + 0x14], 0x52f6
xorps xmm3, xmm10
movups xmmword [rbp + 0x1c], xmm3
xor dword [rbp + 0x2c], 0x52f6
xor dword [rbp + 0x30], 0x52f6
test al, al
mov eax, 0x5bde
mov ecx, 0x3bfc
cmovne eax, ecx
xor eax, dword [rbp - 0x28]
mov r15b, 1
jmp 0x421c30
movzx eax, byte [rbp + 0x6e]
test r12b, r12b
jne 0x42267b
movups xmm0, xmmword [rbp - 0xc]
xorps xmm0, xmm11
movups xmmword [rbp - 0xc], xmm0
xor dword [rbp + 4], 0x28d2
xor dword [rbp + 8], 0x28d2
xor dword [rbp + 0x24], 0x28d2
xor dword [rbp + 0x28], 0x28d2
xor dword [rbp + 0x2c], 0x28d2
test al, 1
mov eax, 0x47f9
mov ecx, 0x59c9
cmovne eax, ecx
xor eax, dword [rbp - 0x10]
mov r12b, 1
jmp 0x421c30
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
xor edx, edx
mov r8d, 2
call sub.msvcrt.dll_fseek
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_ftell
add rsp, 0x20
mov rcx, qword [rbp + 0x48]
mov dword [rcx], eax
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
xor edx, edx
xor r8d, r8d
call sub.msvcrt.dll_fseek
add rsp, 0x20
mov rax, qword [rbp + 0x50]
mov rax, qword [rbp + 0x48]
movsxd rcx, dword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_malloc
add rsp, 0x20
mov rcx, qword [rbp + 0x50]
mov qword [rcx], rax
mov rax, qword [rbp + 0x50]
cmp qword [rax], 0
sete byte [rbp + 0x6e]
mov eax, dword [rbp + 0x20]
mov ecx, 0x6697
xor eax, ecx
jmp 0x421c30
mov rax, qword [rbp + 0x60]
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_fclose
add rsp, 0x20
mov rax, qword [rbp + 0x40]
mov qword [rax], 0
mov rax, qword [rbp - 0x38]
mov dword [rax], 1
mov eax, dword [rbp + 0x24]
mov ecx, 0x1671
xor eax, ecx
jmp 0x421c30
mov eax, dword [0x004395c8]
mov ecx, dword [0x0043947c]
cmp ecx, 0xa
setl r8b
cmp ecx, 9
setg cl
mov ebx, 1
sub ebx, eax
imul ebx, eax
and ebx, 1
sete dl
mov eax, r8d
xor al, bl
and bl, cl
xor al, bl
or dl, cl
xor al, r8b
xor al, dl
xor al, bl
cmp byte [rbp - 0x50], 0
jne 0x4227a9
xor dword [rbp + 8], 0x119
xor dword [rbp + 0x2c], 0x119
test al, 1
mov eax, 0x2e8a
mov ecx, 0x3073
cmovne eax, ecx
xor eax, dword [rbp + 4]
mov cl, 1
mov dword [rbp - 0x50], ecx
jmp 0x421c30
cmp dword [0x004395d8], 0xa
mov ecx, dword [0x004395a8]
setl al
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
sete cl
or dl, al
xor dl, cl
xor dl, 1
xor al, cl
or al, dl
cmp byte [rbp - 0x54], 0
jne 0x422800
xor dword [rbp], 0x6dc4
xor dword [rbp + 0x28], 0x6dc4
test al, al
mov eax, 0x4a97
mov ecx, 0x259
cmovne eax, ecx
xor eax, dword [rbp - 4]
mov cl, 1
mov dword [rbp - 0x54], ecx
jmp 0x421c30
cmp eax, 0x6e3f
jne 0x421c30
mov rax, qword [rbp - 0x78]
movaps xmm6, xmmword [rbp + 0x70]
movaps xmm7, xmmword [rbp + 0x80]
movaps xmm8, xmmword [rbp + 0x90]
movaps xmm9, xmmword [rbp + 0xa0]
movaps xmm10, xmmword [rbp + 0xb0]
movaps xmm11, xmmword [rbp + 0xc0]
lea rsp, [rbp + 0xd8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret