Function at 0x10005c6f
Capabilities:
Check if file exists
Encode data using xor
Get file size
Read file on windows

Disassembly:
push 0x444
mov eax, 0x100a42bf
call fcn.1007d66c
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.1007eb10
mov ecx, 0x226
mov ebx, 0x100151f3
push ecx
lea eax, [ecx + ebx]
push eax
lea ecx, [ebp - 0x118]
call fcn.10006681
mov dword [ebp - 0x2dc], 0x29
add esp, 0x14
mov eax, dword [ebp - 0x2dc]
xor al, 0x5c
mov byte [ebp - 0x2d8], al
mov eax, dword [ebp - 0x2dc]
inc al
xor al, 0x44
mov byte [ebp - 0x2d7], al
mov eax, dword [ebp - 0x2dc]
add al, 2
xor al, 0x45
mov byte [ebp - 0x2d6], al
mov eax, dword [ebp - 0x2dc]
add al, 3
xor al, 0x42
mov byte [ebp - 0x2d5], al
mov eax, dword [ebp - 0x2dc]
add al, 4
xor al, 0x55
mov byte [ebp - 0x2d4], al
mov eax, dword [ebp - 0x2dc]
add al, 5
mov byte [ebp - 0x2d2], 0
xor al, 0x47
xor edx, edx
mov byte [ebp - 0x2d3], al
mov al, byte [ebp - 0x2d8]
mov al, byte [ebp + edx - 0x2d8]
mov ecx, dword [ebp - 0x2dc]
add cl, dl
xor cl, al
mov byte [ebp + edx - 0x2d8], cl
inc edx
cmp edx, 6
jb 0x10005d25
lea edx, [ebp - 0x2d8]
mov byte [ebp - 0x2d2], 0
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x10005d52
lea edi, [ebp - 0x118]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x10005d62
mov ecx, edx
lea eax, [ebp - 0x118]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x10005d95
mov dword [0x100e3f80], 1
jmp 0x10005da1
and dword [0x100e3f80], 0
call fcn.1000308c
mov dword [ebp - 0x43c], 0x3123a005
mov dword [ebp - 0x438], 0xe02a9424
mov dword [ebp - 0x434], 0xa52e1b26
mov dword [ebp - 0x430], 0xa9e92cb7
mov dword [ebp - 0x42c], 0x659d0433
mov dword [ebp - 0x428], 0xa063c35d
mov dword [ebp - 0x424], 0x2dcaf77e
mov dword [ebp - 0x420], 0x5a77ffcc
mov dword [ebp - 0x41c], 0x4e5fffd5
mov dword [ebp - 0x418], 0x8c0db7fb
mov dword [ebp - 0x414], 0x5dea02d9
mov dword [ebp - 0x410], 0x6306f597
mov dword [ebp - 0x40c], 0xcfec6cc9
mov dword [ebp - 0x408], 0xf8997bbe
mov dword [ebp - 0x404], 0x8d61baf3
mov dword [ebp - 0x400], 0x94bccbd
mov dword [ebp - 0x3fc], 0x8d12c773
mov dword [ebp - 0x3f8], 0xcc3c300
mov dword [ebp - 0x3f4], 0xd728558a
mov dword [ebp - 0x3f0], 0x54b5de62
mov dword [ebp - 0x3ec], 0x7688a316
mov dword [ebp - 0x3e8], 0x989071e3
mov dword [ebp - 0x3e4], 0x74827376
mov dword [ebp - 0x3e0], 0x5e834520
mov dword [ebp - 0x3dc], 0xb4fb5b45
mov dword [ebp - 0x3d8], 0xf273d9ce
mov dword [ebp - 0x3d4], 0x87b353dd
mov dword [ebp - 0x3d0], 0xe56f6354
mov dword [ebp - 0x3cc], 0xef6eaf15
mov dword [ebp - 0x3c8], 0xac7e0b77
mov dword [ebp - 0x3c4], 0x23cb8114
mov dword [ebp - 0x3c0], 0x1142a9a4
mov dword [ebp - 0x3bc], 0x85a07cf2
mov dword [ebp - 0x3b8], 0xf42c0622
mov dword [ebp - 0x3b4], 0x8253e23
mov dword [ebp - 0x3b0], 0x7be2d042
mov dword [ebp - 0x3ac], 0x389666e
mov dword [ebp - 0x3a8], 0x9316700e
mov dword [ebp - 0x3a4], 0x773f6fee
mov dword [ebp - 0x3a0], 0x397ce6e3
mov dword [ebp - 0x39c], 0x7bfead53
mov dword [ebp - 0x398], 0x474f54aa
mov dword [ebp - 0x394], 0xace7ee8c
mov dword [ebp - 0x390], 0xa84cbc54
mov dword [ebp - 0x38c], 0x518f4cf9
mov dword [ebp - 0x388], 0xcff13737
mov dword [ebp - 0x384], 0x411c004
mov dword [ebp - 0x380], 0x4872b49
mov dword [ebp - 0x37c], 0x94402720
mov dword [ebp - 0x378], 0x87801e0
mov dword [ebp - 0x374], 0x216b72e0
mov dword [ebp - 0x370], 0xb8460080
mov dword [ebp - 0x36c], 0x6f23a937
mov dword [ebp - 0x368], 0x1711d29e
mov dword [ebp - 0x364], 0x9260b2d9
mov dword [ebp - 0x360], 0x8351f6fe
mov dword [ebp - 0x35c], 0x75caf37e
mov dword [ebp - 0x358], 0xf7b9931e
mov dword [ebp - 0x354], 0xfefb7d7f
mov dword [ebp - 0x350], 0x794fd3ef
mov dword [ebp - 0x34c], 0x617f59fd
mov dword [ebp - 0x348], 0x790e05ba
mov dword [ebp - 0x344], 0x10c100d8
mov dword [ebp - 0x340], 0x4387850a
mov dword [ebp - 0x33c], 0x90e0d396
mov dword [ebp - 0x338], 0xf0e6105d
mov dword [ebp - 0x334], 0x45b2a43
mov dword [ebp - 0x330], 0xc0f9681c
mov dword [ebp - 0x32c], 0xa44c9211
mov dword [ebp - 0x328], 0x22dd1150
mov dword [ebp - 0x324], 0x5c5bb246
mov dword [ebp - 0x320], 0xfd096acc
mov dword [ebp - 0x31c], 0x608f488f
mov dword [ebp - 0x318], 0xfaad3ab3
mov dword [ebp - 0x314], 0xdf3e7d89
mov dword [ebp - 0x310], 0xe93f27a1
mov dword [ebp - 0x30c], 0xf93d368
mov dword [ebp - 0x308], 0xfd8bf26c
mov dword [ebp - 0x304], 0x445fe80
mov dword [ebp - 0x300], 0x129a550
mov dword [ebp - 0x2fc], 0x4d599008
mov eax, 0x160
mov dword [ebp - 0x2f8], 0x6dd44821
push eax
mov dword [ebp - 0x2f4], 0x878022f3
mov dword [ebp - 0x2f0], 0x586dd350
mov dword [ebp - 0x2ec], 0x48431142
mov dword [ebp - 0x2e8], 0x3a24e180
mov dword [ebp - 0x2e4], 0xb70b6f3f
mov dword [ebp - 0x2e0], 0x3dfbaf6f
mov dword [ebp - 0x444], eax
call fcn.10081d3e
push 0x58
pop ecx
mov edi, eax
mov dword [ebp - 0x440], eax
lea esi, [ebp - 0x43c]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
push 0xf
pop eax
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x294], ecx
mov dword [ebp - 0x27c], ecx
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x24c], ecx
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x2b0], ecx
mov dword [ebp - 0x29c], ecx
mov dword [ebp - 0x298], eax
mov byte [ebp - 0x2ac], cl
mov dword [ebp - 0x284], ecx
mov dword [ebp - 0x280], eax
mov byte [ebp - 0x294], cl
mov dword [ebp - 0x26c], ecx
mov dword [ebp - 0x268], eax
mov byte [ebp - 0x27c], cl
mov dword [ebp - 0x254], ecx
mov dword [ebp - 0x250], eax
mov byte [ebp - 0x264], cl
mov dword [ebp - 0x23c], ecx
mov dword [ebp - 0x238], eax
mov byte [ebp - 0x24c], cl
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x220], eax
mov byte [ebp - 0x234], cl
mov dword [ebp - 4], ecx
lea ecx, [ebp - 0x2b0]
call fcn.1000a172
mov dword [esp], 0x104
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.1007eb10
mov eax, 0x1c1
lea ecx, [ebp - 0x21c]
add ebx, eax
push eax
push ebx
call fcn.10006681
mov dword [ebp - 0x2c0], 0x6e
add esp, 0x14
mov eax, dword [ebp - 0x2c0]
xor al, 0x5c
mov byte [ebp - 0x2bc], al
mov eax, dword [ebp - 0x2c0]
inc al
xor al, 0x76
mov byte [ebp - 0x2bb], al
mov eax, dword [ebp - 0x2c0]
add al, 2
xor al, 0x65
mov byte [ebp - 0x2ba], al
mov eax, dword [ebp - 0x2c0]
add al, 3
xor al, 0x72
mov byte [ebp - 0x2b9], al
mov eax, dword [ebp - 0x2c0]
add al, 4
xor al, 0x69
mov byte [ebp - 0x2b8], al
mov eax, dword [ebp - 0x2c0]
add al, 5
xor al, 0x66
mov byte [ebp - 0x2b7], al
mov eax, dword [ebp - 0x2c0]
add al, 6
xor al, 0x79
xor ebx, ebx
mov byte [ebp - 0x2b6], al
mov edx, ebx
mov al, byte [ebp - 0x2bc]
mov byte [ebp - 0x2b5], bl
mov al, byte [ebp + edx - 0x2bc]
mov ecx, dword [ebp - 0x2c0]
add cl, dl
xor cl, al
mov byte [ebp + edx - 0x2bc], cl
inc edx
cmp edx, 7
jb 0x10006292
lea edx, [ebp - 0x2bc]
mov byte [ebp - 0x2b5], bl
mov esi, edx
mov al, byte [edx]
inc edx
test al, al
jne 0x100062be
lea edi, [ebp - 0x21c]
sub edx, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x100062ce
mov ecx, edx
lea eax, [ebp - 0x21c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push ebx
push 0x80
push 3
push ebx
push 1
mov ecx, edx
and ecx, 3
push connect
rep movsb byte es:[edi], byte [esi]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
mov dword [ebp - 0x448], edi
cmp edi, 0xffffffff
je 0x100064f3
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
push ebx
mov dword [ebp - 0x44c], ebx
call fcn.10081d3e
mov esi, eax
mov dword [ebp - 0x450], esi
pop ecx
test esi, esi
je 0x100064ec
and dword [ebp - 0x2b4], 0
lea eax, [ebp - 0x2b4]
push 0
push eax
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x100064e5
mov ebx, dword [ebp - 0x2b4]
cmp dword [ebp - 0x44c], ebx
jne 0x100064e5
xor ecx, ecx
test ebx, ebx
je 0x10006392
mov edi, dword [ebp - 0x440]
mov eax, ecx
cdq
idiv dword [ebp - 0x444]
mov al, byte [edx + edi]
xor byte [ecx + esi], al
inc ecx
cmp ecx, ebx
jb 0x10006378
mov edi, dword [ebp - 0x448]
mov edx, ebx
mov ecx, esi
call fcn.10014a74
mov ebx, eax
mov dword [ebp - 0x440], ebx
test ebx, ebx
je 0x100064e5
mov dword [ebp - 0x2d0], 0x30
mov ecx, dword [ebp - 0x2d0]
xor cl, 0x76
mov byte [ebp - 0x2cc], cl
mov ecx, dword [ebp - 0x2d0]
inc cl
xor cl, 0x65
mov byte [ebp - 0x2cb], cl
mov eax, dword [ebp - 0x2d0]
add al, 2
xor al, 0x72
mov byte [ebp - 0x2ca], al
mov eax, dword [ebp - 0x2d0]
add al, 3
xor al, 0x69
mov byte [ebp - 0x2c9], al
mov eax, dword [ebp - 0x2d0]
add al, 4
xor al, 0x66
mov byte [ebp - 0x2c8], al
mov eax, dword [ebp - 0x2d0]
add al, 5
xor al, 0x79
mov byte [ebp - 0x2c7], al
mov eax, dword [ebp - 0x2d0]
add al, 6
xor al, 0x6d
mov byte [ebp - 0x2c6], al
mov eax, dword [ebp - 0x2d0]
add al, 7
xor al, 0x61
mov byte [ebp - 0x2c5], al
mov eax, dword [ebp - 0x2d0]
add al, 8
xor al, 0x69
mov byte [ebp - 0x2c4], al
mov eax, dword [ebp - 0x2d0]
add al, 9
mov byte [ebp - 0x2c2], 0
xor al, 0x6e
xor edx, edx
mov byte [ebp - 0x2c3], al
mov al, byte [ebp - 0x2cc]
mov al, byte [ebp + edx - 0x2cc]
mov ecx, dword [ebp - 0x2d0]
add cl, dl
xor cl, al
mov byte [ebp + edx - 0x2cc], cl
inc edx
cmp edx, 0xa
jb 0x10006464
lea edx, [ebp - 0x2cc]
mov byte [ebp - 0x2c2], 0
mov ecx, ebx
call fcn.1001498e
mov dword [ebp - 0x444], eax
test eax, eax
je 0x100064de
sub esp, 0x94
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2b0]
mov ecx, esp
push eax
call fcn.1000653a
call dword [ebp - 0x444]
add esp, 0x94
jmp 0x100064de
mov ecx, ebx
call fcn.1001494a
push esi
call fcn.10081d23
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x2b0]
call fcn.10006506
xor eax, eax
call fcn.1007d5be
ret