Function at 0x1000e8e0
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
sub esp, 0x188
mov eax, dword [0x10056b88]
xor eax, esp
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x18c]
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
push ebx
push esi
mov esi, dword [esp + 0x198]
push edi
xor ebx, ebx
push 0xff
mov dword [esp + 0x14], eax
lea eax, [esp + 0x95]
push ebx
push eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
mov byte [esp + 0x9c], bl
call fcn.10024c80
xor eax, eax
push 0x10044604
push esi
mov byte [esp + 0x84], bl
mov dword [esp + 0x85], eax
mov dword [esp + 0x89], eax
mov dword [esp + 0x8d], eax
mov word [esp + 0x91], ax
mov byte [esp + 0x93], al
call fcn.100255d7
mov edi, eax
add esp, 0x14
cmp edi, ebx
jne 0x1000e9aa
push 1
push 0x602f
push 0x6084
call fcn.10021b00
add esp, 0xc
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x184]
xor ecx, esp
call fcn.10024c3b
add esp, 0x188
ret
push ebp
push 2
push ebx
push edi
call fcn.10026035
push edi
call fcn.10025f40
push edi
mov ebp, eax
call fcn.10025ce3
lea ecx, [ebp + 0x400]
push ecx
call fcn.10025639
mov esi, eax
add esp, 0x18
cmp esi, ebx
jne 0x1000e9f0
push 1
push 0x602f
push 0x6085
call fcn.10021b00
add esp, 0xc
jmp 0x1000ebbf
push edi
push ebp
push 1
push esi
call fcn.10025cc8
push edi
call fcn.10025497
add esp, 0x14
test ebp, 0x3ff
jne 0x1000eba5
cmp ebp, 0x400
jb 0x1000eba5
xor eax, eax
lea ecx, [ecx]
cmp eax, 0xa
jge 0x1000ea34
mov dl, byte [eax + 0x102e49a7]
mov byte [esp + eax + 0x94], dl
jmp 0x1000ea4f
cmp eax, 0x1a
jge 0x1000ea48
mov cl, byte [eax + 0x102e49c6]
mov byte [esp + eax + 0x94], cl
jmp 0x1000ea4f
mov byte [esp + eax + 0x94], al
add eax, 1
cmp eax, 0x100
jb 0x1000ea20
mov eax, dword [esp + 0x1ac]
mov edx, eax
mov byte [esp + 0xaf], al
lea eax, [esp + 0x1c]
shr edx, 8
push eax
mov byte [esp + 0xb2], dl
call fcn.10016840
push 0x100
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.10017130
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.10017210
mov cl, byte [esp + 0x94]
add esp, 0x18
xor eax, eax
cmp ebp, ebx
jle 0x1000eac3
xor byte [eax + esi], cl
add eax, 1
add cl, 1
cmp eax, ebp
jl 0x1000eab6
mov eax, ebp
shr eax, 3
cmp eax, ebx
jle 0x1000eb21
mov edi, esi
mov ebx, eax
mov edx, dword [edi]
push 1
push 8
lea ecx, [esp + 0x7c]
push ecx
mov dword [esp + 0x90], edx
mov eax, dword [edi + 4]
push 8
lea edx, [esp + 0x94]
mov dword [esp + 0x98], eax
push edx
lea eax, [esp + 0xa0]
push eax
call fcn.1000de20
mov ecx, dword [esp + 0xa4]
mov dword [edi], ecx
mov edx, dword [esp + 0xa8]
mov dword [edi + 4], edx
add esp, 0x18
add edi, 8
sub ebx, 1
jne 0x1000ead0
cmp byte [esi], 0x55
jne 0x1000eb91
cmp byte [esi + 1], 0xaa
jne 0x1000eb91
mov al, byte [esi + 4]
mov byte [0x10060f23], al
mov cl, byte [esi + 5]
mov byte [0x10060f22], cl
mov edx, dword [esi + 6]
lea eax, [ebp - 0x400]
push eax
mov eax, dword [esp + 0x18]
mov dword [0x10060f28], edx
mov edx, dword [0x102e4980]
lea ecx, [esi + 0x400]
push ecx
add edx, eax
push edx
call fcn.100250c0
mov ecx, dword [0x102e4980]
mov edx, dword [esp + 0x24]
mov dword [edx], ecx
mov eax, dword [0x102e4980]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + ebp - 0x400]
push esi
mov dword [edx], ecx
call fcn.100256fc
add esp, 0x10
mov al, 1
jmp 0x1000ebc1
push esi
call fcn.100256fc
push 1
push 0x602f
push 0x6087
jmp 0x1000ebb7
push esi
call fcn.100256fc
push 1
push 0x602f
push 0x6086
call fcn.10021b00
add esp, 0x10
xor al, al
mov ecx, dword [esp + 0x194]
pop ebp
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10024c3b
add esp, 0x188
ret