Function at 0x100913d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov esi, esp
mov dword [esi + 0x118], ebp
mov dword [esi + 0xc], ecx
mov dword [esi + 0x11c], esp
mov dword [esi + 0x128], 0xffffffff
mov dword [esi + 0x124], 0x100a3500
mov eax, dword fs:[0]
mov dword [esi + 0x120], eax
lea eax, [esi + 0x120]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x40], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x44], eax
call fcn.100f2219
lea edi, [esi + 0x60]
push 7
push str.shack24
push eax
push edi
call fcn.10093560
add esp, 0x10
mov dword [esi + 0x128], 0
lea eax, [esi + 0x40]
mov dword [esi + 8], edi
mov ecx, edi
push eax
call fcn.10090dc0
lea ecx, [esi + 0x48]
push eax
call fcn.10024d80
mov eax, dword [esi + 0x74]
cmp eax, 8
jb 0x100914a0
mov ecx, dword [esi + 0x60]
lea edi, [eax*2 + 2]
cmp edi, 0x1000
jb 0x10091496
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10091823
add eax, eax
add eax, 0x25
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
call fcn.100f2219
mov dword [esi + 0x128], 1
push 7
push str.shack24
push eax
lea eax, [esi + 0x60]
push eax
call fcn.10093560
add esp, 0x10
cmp dword [esi + 0x74], 8
jb 0x100914cf
mov eax, dword [esi + 0x60]
mov dword [esi + 8], eax
push dword [esi + 8]
call fcn.100f22da
test edx, edx
jne 0x10091807
mov eax, dword [esi + 0x74]
cmp eax, 8
jb 0x1009151d
mov ecx, dword [esi + 0x60]
lea edi, [eax*2 + 2]
cmp edi, 0x1000
jb 0x10091513
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10091823
add eax, eax
add eax, 0x25
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
pxor xmm0, xmm0
movdqa xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0xf
cmp dword [esi + 0x5c], 8
lea eax, [esi + 0x48]
jb 0x10091540
mov eax, dword [esi + 0x48]
mov dword [esi + 0x128], 3
lea ecx, [esi + 0x60]
push 1
push 0x40
push 1
push eax
call fcn.10096ab0
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + 4]
lea edi, [esi + 0x60]
add ecx, edi
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::fail_void_const]
test al, al
je 0x100915a4
lea edi, [esi + 0xd0]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + 4]
mov dword [esi + eax + 0x60], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esi + 0x60]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esi + eax + 0x5c], ecx
lea ecx, [esi + 0x70]
call fcn.1005f2d0
mov ecx, edi
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
jmp 0x10091778
mov dword [esi + 0x128], 5
lea ecx, [esi + 0x10]
push ecx
push edi
call fcn.10091900
add esp, 8
lea edi, [esi + 0xd0]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + 4]
mov dword [esi + eax + 0x60], vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov eax, dword [esi + 0x60]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x70]
mov dword [esi + eax + 0x5c], ecx
lea ecx, [esi + 0x70]
call fcn.1005f2d0
mov ecx, edi
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x10091778
cmp dword [esi + 0x24], 0x10
lea ebx, [esi + 0x10]
jb 0x10091603
mov ebx, dword [esi + 0x10]
mov edx, ebx
cmp eax, 8
lea edi, [esi + 0x60]
jb 0x10091684
xor ecx, ecx
cmp eax, 0x20
jb 0x1009164d
mov ecx, eax
and ecx, 0xffffffe0
xor edx, edx
pcmpeqd xmm0, xmm0
nop
movdqu xmm1, xmmword [ebx + edx]
movdqu xmm2, xmmword [ebx + edx + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [ebx + edx], xmm1
movdqu xmmword [ebx + edx + 0x10], xmm2
add edx, 0x20
cmp ecx, edx
jne 0x10091620
cmp eax, ecx
je 0x10091697
test al, 0x18
je 0x10091680
mov edi, eax
and eax, 0xfffffff8
lea edx, [ebx + eax]
pcmpeqd xmm0, xmm0
nop dword [eax]
movq xmm1, qword [ebx + ecx]
pxor xmm1, xmm0
movq qword [ebx + ecx], xmm1
add ecx, 8
cmp eax, ecx
jne 0x10091660
cmp edi, eax
mov eax, edi
lea edi, [esi + 0x60]
jne 0x10091684
jmp 0x10091697
add ecx, ebx
mov edx, ecx
add ebx, eax
nop word cs:[eax + eax]
not byte [edx]
inc edx
cmp edx, ebx
jne 0x10091690
mov dword [esi + 8], esp
push eax
sub esp, 0x34
mov eax, esp
mov dword [eax + 0x2c], 0
mov dword [eax], edi
lea ecx, [esi + 0x10]
mov dword [eax + 4], ecx
mov byte [eax + 0x30], 1
mov byte [eax + 0x34], 0
mov dword [esi + 0x128], 3
call fcn.10091c50
add esp, 0x38
mov esp, dword [esi + 8]
movzx eax, byte [esi + 0x60]
cmp al, 1
jne 0x1009176c
lea eax, [esi + 0x60]
mov dword [esi + 0x30], eax
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x3c], 0x80000000
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x128], 4
push str.shack24
call fcn.100a3410
mov dword [esi + 0x34], eax
movzx ecx, byte [esi + 0x60]
cmp ecx, 2
je 0x10091726
cmp ecx, 1
jne 0x10091733
mov ecx, dword [esi + 0x68]
cmp eax, dword [ecx]
jne 0x10091733
mov al, 1
jmp 0x1009176c
mov eax, dword [esi + 0x68]
cmp dword [eax + 4], 0
je 0x10091800
lea ecx, [esi + 0x30]
call fcn.1001aed0
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esi + 0xc], eax
cmp ecx, dword [esi + 0xc]
je 0x10091768
nop
mov dword [esi + 8], ecx
mov ecx, dword [ecx]
mov eax, dword [ecx]
push dword [esi + 0x2c]
call dword [eax + 4]
mov ecx, dword [esi + 8]
add ecx, 4
cmp ecx, dword [esi + 0xc]
jne 0x10091750
movzx eax, byte [esi + 0x60]
lea ecx, [esi + 0x68]
movzx eax, al
push eax
call fcn.100199a0
mov eax, dword [esi + 0x24]
cmp eax, 0x10
jb 0x100917b0
mov ecx, dword [esi + 0x10]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x100917a6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10091823
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov eax, dword [esi + 0x5c]
cmp eax, 8
jb 0x100917ea
mov ecx, dword [esi + 0x48]
lea edi, [eax*2 + 2]
cmp edi, 0x1000
jb 0x100917e0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x10091823
add eax, eax
add eax, 0x25
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.100f14b0
add esp, 8
mov eax, dword [esi + 0x120]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov al, 2
jmp 0x1009176c
mov dword [esi + 0x128], 2
lea eax, [esi + 0x60]
push eax
push edx
push str.create_directory
call fcn.10091ee0
add esp, 0xc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop dword [eax]
push ebp
sub esp, 0x38
lea esi, [ebp - 0x12c]
mov ebp, dword [esi + 0x118]
lea ecx, [esi + 0x60]
call fcn.10090ea0
add esp, 0x38
pop ebp
ret