Function at 0x10018880
Capabilities:
Create thread
Encode data using xor
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100285cb
mov eax, dword fs:[0]
push eax
sub esp, 0x168
push ebx
push esi
push edi
mov eax, dword [0x10040cf8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
sub dword [ebp + 0xc], 1
jne 0x10018fc6
mov eax, dword [ebp + 8]
mov dword [0x10041278], eax
call sym.G.dll_Game_5
cmp dword [0x10041140], 1
jne 0x100188d0
call fcn.100235e0
cmp dword [0x100411a4], 0
jne 0x100188e2
cmp dword [0x100411ac], 1
jne 0x100188e7
call fcn.10010350
cmp dword [0x10041184], 1
jne 0x100188f5
call fcn.1000c600
cmp dword [0x100411b0], 1
jne 0x10018903
call fcn.1000c6d0
cmp dword [0x10041150], 1
jne 0x1001891e
push 0
push 0
push 0x1001bc90
call dword [sym.imp.ucrtbased.dll__beginthread]
add esp, 0xc
cmp dword [0x100411a4], 1
jne 0x1001892c
call fcn.1000da00
cmp dword [0x100411ac], 0
je 0x1001893f
call fcn.1000d4f0
call fcn.1000c3f0
cmp dword [0x100411b8], 1
jne 0x1001894d
call fcn.10019940
cmp dword [0x100411bc], 1
jne 0x1001895b
call fcn.10019ec0
cmp dword [0x100411f0], 1
jne 0x10018969
call fcn.100268e0
cmp dword [0x1004119c], 1
jne 0x10018977
call fcn.1000f320
cmp dword [0x100411e4], 1
jne 0x10018985
call fcn.10016670
cmp dword [0x100411dc], 1
jne 0x1001899c
cmp dword [0x1004114c], 0
jne 0x1001899c
call fcn.100103f0
cmp dword [0x1004112c], 1
mov edi, dword [sym.imp.ucrtbased.dll_malloc]
jne 0x10018e25
mov dword [ebp + 0xc], 0x10031820
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018a05
mov eax, dword [ebx + 0xf]
inc eax
push eax
call edi
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100189f9
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x100189e0
mov byte [eax + edi], 0
mov esi, edi
mov edi, dword [sym.imp.ucrtbased.dll_malloc]
push 0x1000d080
push esi
push dword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.10004550
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov dword [ebp + 0xc], 0x100318d0
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018a70
mov eax, dword [ebx + 0xf]
inc eax
push eax
call edi
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018a6a
sub esi, edi
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018a51
mov byte [eax + edi], 0
mov esi, edi
push 0x1000d080
push esi
push dword [sym.imp.MSVCP140D.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.10004550
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP140D.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
cmp dword [0x1004118c], 1
jne 0x10018baa
mov dword [ebp + 0xc], 0x1003186c
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018aef
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018ae9
sub esi, edi
nop dword [eax]
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018ad0
mov byte [eax + edi], 0
mov esi, edi
push 1
push 0x40
push 8
push esi
lea ecx, [ebp - 0x174]
call fcn.100049c0
mov dword [ebp + 0xc], 0x10031920
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
mov dword [ebp - 4], 0
cmp byte [ebx + 0x13], 0
je 0x10018b5f
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018b59
sub esi, edi
nop dword [eax]
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018b40
mov byte [eax + edi], 0
mov esi, edi
lea eax, [ebp - 0x174]
push esi
push eax
call fcn.10004550
add esp, 8
lea ecx, [ebp - 0x170]
call fcn.100054a0
test eax, eax
jne 0x10018b98
push eax
mov eax, dword [ebp - 0x174]
lea ecx, [ebp - 0x174]
push 2
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
lea ecx, [ebp - 0x174]
mov dword [ebp - 4], 0xffffffff
call fcn.10004fb0
cmp dword [0x1004119c], 1
jne 0x10018e1a
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.ucrtbased.dll__time64]
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.ucrtbased.dll__localtime64]
mov dword [ebp + 0xc], 0x10031894
add esp, 8
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
mov dword [ebp + 8], eax
cmp byte [ebx + 0x13], 0
je 0x10018c24
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018c1e
sub esi, edi
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018c05
mov byte [eax + edi], 0
mov esi, edi
push 1
push 0x40
push 8
push esi
lea ecx, [ebp - 0xc4]
call fcn.100049c0
mov dword [ebp + 0xc], 0x100318ac
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
mov dword [ebp - 4], 1
cmp byte [ebx + 0x13], 0
je 0x10018c90
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018c8a
sub esi, edi
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018c71
mov byte [eax + edi], 0
mov esi, edi
lea eax, [ebp - 0xc4]
push esi
push eax
call fcn.10004550
push dword [ebp + 8]
call dword [sym.imp.ucrtbased.dll_asctime]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.10004550
mov dword [ebp + 0xc], 0x100319e0
add esp, 0x14
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018d0f
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018d09
sub esi, edi
nop word [eax + eax]
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018cf0
mov byte [eax + edi], 0
mov esi, edi
lea eax, [ebp - 0xc4]
push esi
push eax
call fcn.10004550
mov dword [ebp + 0xc], 0x100319a4
add esp, 8
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018d72
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018d6c
sub esi, edi
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018d53
mov byte [eax + edi], 0
mov esi, edi
lea eax, [ebp - 0xc4]
push esi
push eax
call fcn.10004550
add esp, 8
lea ecx, [ebp - 0xc0]
call fcn.100054a0
test eax, eax
jne 0x10018dab
push eax
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0xc4]
push 2
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140D.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov dword [ebp + 0xc], 0x10031a64
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018dff
mov eax, dword [ebx + 0xf]
inc eax
push eax
call dword [sym.imp.ucrtbased.dll_malloc]
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018df9
sub esi, edi
nop
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + esi]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018de0
mov byte [eax + edi], 0
mov esi, edi
push 2
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0xc4]
mov dword [ebp - 4], 0xffffffff
call fcn.10004fb0
mov edi, dword [sym.imp.ucrtbased.dll_malloc]
jmp 0x10018f05
cmp dword [0x1004113c], 1
jne 0x10018e33
call fcn.1001af10
cmp dword [0x10041188], 1
jne 0x10018e41
call fcn.10017c00
cmp dword [0x100411d8], 1
jne 0x10018e4f
call fcn.10017d50
cmp dword [0x10041144], 1
jne 0x10018e5d
call fcn.10025c10
cmp dword [0x100411c0], 1
jne 0x10018e6b
call fcn.1001da30
cmp dword [0x10041148], 1
jne 0x10018e79
call fcn.100102a0
cmp dword [0x100411cc], 1
jne 0x10018e87
call fcn.1001c1e0
cmp dword [0x100411c4], 1
jne 0x10018e95
call fcn.10010810
cmp dword [0x100411c8], 1
jne 0x10018ea3
call fcn.100064e0
cmp dword [0x100411d0], 1
jne 0x10018eb1
call fcn.10005170
cmp dword [0x10041180], 1
jne 0x10018ebf
call fcn.1001d960
cmp dword [0x10041198], 1
jne 0x10018ecd
call fcn.10024c30
cmp dword [0x10041174], 1
jne 0x10018edb
call fcn.100236b0
cmp dword [0x100411e0], 1
jne 0x10018ee9
call fcn.10025580
cmp dword [0x100411d4], 1
jne 0x10018ef7
call fcn.1000b4c0
cmp dword [0x10041194], 1
jne 0x10018f05
call fcn.10014e60
cmp dword [0x10041134], 1
jne 0x10018f13
call fcn.10023100
cmp dword [0x10041138], 1
jne 0x10018f21
call fcn.100268c0
cmp dword [0x100411e8], 1
jne 0x10018f2f
call fcn.100103c0
cmp dword [0x1004114c], 1
jne 0x10018f4b
cmp dword [0x1004112c], 0
jne 0x10018f4b
call fcn.10025fa0
call fcn.10025fc0
cmp dword [0x1004117c], 1
jne 0x10018f60
push dword [0x10041104]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp dword [0x10041178], 1
jne 0x10018fc6
mov dword [ebp + 0xc], 0x10031a7c
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0xc]
add esi, 0x14
cmp byte [ebx + 0x13], 0
je 0x10018fbf
mov eax, dword [ebx + 0xf]
inc eax
push eax
call edi
mov edi, eax
add esp, 4
mov eax, dword [ebx + 0xf]
xor edx, edx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x10018fb9
sub esi, edi
nop dword [eax]
mov eax, edx
lea ecx, [edx + edi]
and eax, 7
inc edx
mov al, byte [eax + ebx + 7]
xor al, byte [esi + ecx]
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
cmp edx, eax
jb 0x10018fa0
mov byte [edi + eax], 0
mov esi, edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc