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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x104c4
call fcn.10087710
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x104b0], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x104ac], ecx
mov ecx, dword [ebp + 0x18]
mov ebx, eax
sub ebx, esi
push edi
mov edi, dword [ecx]
sub ebx, edi
lea edx, [esi + edi + 2]
sub ebx, 2
mov dword [ebp - 0x104c4], eax
mov dword [ebp - 0x104b8], ecx
mov dword [ebp - 0x10494], 0
cmp eax, edx
jae 0x1004e3ac
pop edi
mov eax, 0xfffffbbb
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
lea eax, [esi + edi + 8]
push eax
call fcn.10085e5d
push edi
mov dword [ebp - 0x104a0], eax
call fcn.10085e5d
push edi
mov dword [ebp - 0x10498], eax
call fcn.10085e5d
mov ecx, dword [ebp - 0x104c4]
sub ecx, edi
push ecx
mov dword [ebp - 0x104a8], eax
call fcn.10085e5d
add esp, 0x10
mov dword [ebp - 0x1049c], eax
test esi, esi
je 0x1004e417
push esi
call fcn.10085e5d
mov dword [ebp - 0x10494], eax
call sym.cis_cc_3.2.dll_MINT_RandInit
lea edx, [esi*8]
push edx
lea eax, [ebp - 0x10490]
push eax
call sym.cis_cc_3.2.dll_MINT_Rand
add esp, 0xc
mov ecx, dword [ebp - 0x104b8]
mov edi, dword [ebp - 0x104a0]
xor eax, eax
push ecx
lea edx, [ebp - 0x10284]
mov dword [edi], eax
push edx
mov dword [edi + 4], eax
call sym.cis_cc_3.2.dll_HASH_Initialize
mov eax, dword [ebp + 0x10]
add esp, 8
cmp eax, 0xffffffff
jne 0x1004e518
mov eax, dword [ebp - 0x104ac]
push eax
call fcn.10085a69
add esp, 4
test eax, eax
jne 0x1004e639
lea ecx, [ecx]
mov ecx, dword [ebp - 0x104ac]
push ecx
push 0x10000
lea edx, [ebp - 0x10004]
push 1
push edx
call fcn.10085d20
mov dword [ebp - 0x104a4], eax
mov eax, dword [ebp - 0x104ac]
push eax
call fcn.10085a91
add esp, 0x14
test eax, eax
jne 0x1004e4c5
mov ecx, dword [ebp - 0x104a4]
push ecx
lea edx, [ebp - 0x10004]
push edx
lea eax, [ebp - 0x10284]
push eax
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
mov ecx, dword [ebp - 0x104ac]
push ecx
call fcn.10085a69
add esp, 0x10
test eax, eax
je 0x1004e460
jmp 0x1004e639
push edi
call fcn.10085a2f
mov edx, dword [ebp - 0x10498]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x104a8]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x1049c]
push ecx
call fcn.10085a2f
add esp, 0x10
test esi, esi
je 0x1004e505
mov edx, dword [ebp - 0x10494]
push edx
call fcn.10085a2f
add esp, 4
pop edi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
cmp eax, 0x10000
jbe 0x1004e592
nop
mov edi, dword [ebp - 0x104ac]
push edi
push 0x10000
lea eax, [ebp - 0x10004]
push 1
push eax
call fcn.10085d20
push edi
mov dword [ebp - 0x104a4], eax
call fcn.10085a91
add esp, 0x14
test eax, eax
jne 0x1004e586
mov ecx, dword [ebp - 0x104a4]
push ecx
lea edx, [ebp - 0x10004]
push edx
lea eax, [ebp - 0x10284]
push eax
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
sub dword [ebp + 0x10], 0x10000
push edi
call fcn.10085a69
add esp, 0x10
test eax, eax
jne 0x1004e598
cmp dword [ebp + 0x10], 0x10000
ja 0x1004e520
jmp 0x1004e598
mov ecx, dword [ebp - 0x104a0]
push ecx
jmp 0x1004e4c6
mov edi, dword [ebp - 0x104ac]
push edi
call fcn.10085a69
add esp, 4
test eax, eax
jne 0x1004e633
mov eax, dword [ebp + 0x10]
push edi
push eax
lea ecx, [ebp - 0x10004]
push 1
push ecx
call fcn.10085d20
push edi
mov dword [ebp - 0x104a4], eax
call fcn.10085a91
add esp, 0x14
test eax, eax
je 0x1004e616
mov edx, dword [ebp - 0x104a0]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x10498]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x104a8]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x1049c]
push edx
call fcn.10085a2f
add esp, 0x10
test esi, esi
je 0x1004e505
mov eax, dword [ebp - 0x10494]
push eax
jmp 0x1004e4fd
mov ecx, dword [ebp - 0x104a4]
push ecx
lea edx, [ebp - 0x10004]
push edx
lea eax, [ebp - 0x10284]
push eax
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
add esp, 0xc
mov edi, dword [ebp - 0x104a0]
mov eax, dword [ebp - 0x104a8]
lea ecx, [ebp - 0x10284]
push ecx
lea edx, [ebp - 0x104b4]
push edx
push eax
call sym.cis_cc_3.2.dll_HASH_Finalize
mov ecx, dword [ebp - 0x104b4]
mov edx, dword [ebp - 0x104a8]
push ecx
push edx
lea eax, [edi + 8]
push eax
call fcn.10086490
add esp, 0x18
test esi, esi
je 0x1004e6a6
mov eax, dword [ebp - 0x10494]
lea ecx, [ebp - 0x10490]
push ecx
lea edx, [ebp - 0x104bc]
push edx
push eax
call sym.cis_cc_3.2.dll_MINT_WriteInByteArray
mov ecx, dword [ebp - 0x10494]
mov edx, dword [ebp - 0x104b4]
push esi
push ecx
lea eax, [edx + edi + 8]
push eax
call fcn.10086490
add esp, 0x18
mov ecx, dword [ebp - 0x104b4]
mov eax, dword [ebp - 0x104b8]
lea edx, [esi + ecx + 8]
push eax
lea ecx, [ebp - 0x10284]
push ecx
mov dword [ebp - 0x104a4], edx
call sym.cis_cc_3.2.dll_HASH_Initialize
mov edx, dword [ebp - 0x104a4]
push edx
lea eax, [ebp - 0x10284]
push edi
push eax
call sym.cis_cc_3.2.dll_HASH_Update_PCIS
mov eax, dword [ebp - 0x10498]
lea ecx, [ebp - 0x10284]
push ecx
lea edx, [ebp - 0x104c0]
push edx
push eax
call sym.cis_cc_3.2.dll_HASH_Finalize
mov edi, dword [ebp - 0x104b0]
push ebx
push 0
push edi
call fcn.10086410
mov byte [edi + ebx], 1
add esp, 0x2c
inc ebx
test esi, esi
je 0x1004e727
mov ecx, dword [ebp - 0x10494]
push esi
push ecx
add edi, ebx
push edi
call fcn.10086490
add esp, 0xc
add ebx, esi
mov edx, dword [ebp - 0x104c0]
mov eax, dword [ebp - 0x1049c]
mov edi, dword [ebp - 0x104b8]
mov ecx, dword [ebp - 0x10498]
push edx
push ebx
push eax
call fcn.1004d750
add esp, 0xc
mov dword [ebp - 0x104bc], eax
test eax, eax
je 0x1004e7b0
mov ecx, dword [ebp - 0x104a0]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x10498]
push edx
call fcn.10085a2f
mov eax, dword [ebp - 0x104a8]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x1049c]
push ecx
call fcn.10085a2f
add esp, 0x10
test esi, esi
je 0x1004e79a
mov edx, dword [ebp - 0x10494]
push edx
call fcn.10085a2f
add esp, 4
mov eax, dword [ebp - 0x104bc]
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1008600b
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x104b0]
test ebx, ebx
je 0x1004e7de
mov ecx, dword [ebp - 0x1049c]
mov eax, edi
sub ecx, edi
mov dword [ebp - 0x104b0], ebx
lea ebx, [ebx]
mov dl, byte [ecx + eax]
xor byte [eax], dl
inc eax
dec dword [ebp - 0x104b0]
jne 0x1004e7d0
mov ecx, dword [ebp - 0x104c4]
add ecx, ecx
add ecx, ecx
add ecx, ecx
sub ecx, dword [ebp + 0x14]
mov eax, 0xff
sar eax, cl
mov ecx, dword [ebp - 0x10498]
add ebx, edi
and byte [edi], al
mov edi, dword [ebp - 0x104c0]
push edi
push ecx
push ebx
call fcn.10086490
mov edx, dword [ebp - 0x104a0]
push edx
mov byte [ebx + edi], 0xbc
call fcn.10085a2f
mov eax, dword [ebp - 0x10498]
push eax
call fcn.10085a2f
mov ecx, dword [ebp - 0x104a8]
push ecx
call fcn.10085a2f
mov edx, dword [ebp - 0x1049c]
push edx
call fcn.10085a2f
add esp, 0x1c
test esi, esi
je 0x1004e856
mov eax, dword [ebp - 0x10494]
push eax
call fcn.10085a2f
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.1008600b
mov esp, ebp
pop ebp
ret