Function at 0x42e270
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51e93e
mov eax, dword fs:[0]
push eax
mov eax, 0x188c
call fcn.004dc880
mov eax, dword [0x594488]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0xc0
lea eax, [ebp - 0x1848]
push 0
push eax
call fcn.004f41b0
add esp, 0xc
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 0
lea ecx, [ebp - 0x1880]
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 0xf
push 0x14
push 0x54c228
mov byte [ebp - 0x1880], 0
call fcn.00416130
mov dword [ebp - 4], 0
lea eax, [ebp - 0x1880]
push eax
lea eax, [ebp - 0x1898]
push eax
call fcn.00433080
add esp, 8
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 0x10
jb 0x42e322
mov eax, dword [eax]
push 1
push 0x40
push 0x21
push eax
lea ecx, [ebp - 0x1848]
call fcn.00425060
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x1848]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_fstream_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_fstream_char__struct_std::char_traits_char__.0
mov eax, dword [ebp - 0x1848]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x78]
mov dword [ebp + ecx - 0x184c], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1898]
call fcn.00401990
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1880]
call fcn.00401990
cmp dword [ebp - 0x17e4], 0
je 0x42e481
push 0
push 0x1e
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x1848]
call fcn.0042d480
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x13], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e3a7
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
mov ecx, 0x7cc094
call fcn.00416130
cmp dword [ebp - 0x17e4], 0
lea esi, [ebp - 0x1830]
jne 0x42e3d2
xor esi, esi
jmp 0x42e3f9
lea ecx, [ebp - 0x1830]
call fcn.0042ca50
push dword [ebp - 0x17e4]
xor ecx, ecx
test al, al
cmove esi, ecx
call fcn.004fd781
xor ecx, ecx
add esp, 4
test eax, eax
cmovne esi, ecx
push 2
push 0
lea ecx, [ebp - 0x1830]
call fcn.0042cbb0
test esi, esi
jne 0x42e481
mov eax, dword [ebp - 0x1848]
mov ecx, dword [eax + 4]
xor eax, eax
cmp dword [ebp + ecx - 0x1810], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ebp + ecx - 0x183c]
and eax, 0x17
mov dword [ebp + ecx - 0x183c], eax
mov ecx, dword [ebp + ecx - 0x1838]
and ecx, eax
je 0x42e481
lea eax, [ebp - 0x173c]
push 1
push eax
test cl, 4
jne 0x42ea9f
test cl, 2
je 0x42e46e
call fcn.00417560
add esp, 8
push eax
push str.ios_base::failbit_set
jmp 0x42eaad
call fcn.00417560
add esp, 8
push eax
push str.ios_base::eofbit_set
jmp 0x42eaad
cmp dword [0x7cc0a4], 0x1d
jne 0x42ea6c
mov ecx, dword [0x7cc0a8]
mov eax, 0x7cc094
mov edx, dword [0x7cc094]
cmp ecx, 0x10
cmovae eax, edx
cmp byte [eax + 5], 0x2d
jne 0x42ea6c
cmp ecx, 0x10
mov eax, 0x7cc094
cmovae eax, edx
cmp byte [eax + 0xb], 0x2d
jne 0x42ea6c
cmp ecx, 0x10
mov eax, 0x7cc094
cmovae eax, edx
cmp byte [eax + 0x11], 0x2d
jne 0x42ea6c
cmp ecx, 0x10
mov eax, 0x7cc094
cmovae eax, edx
cmp byte [eax + 0x17], 0x2d
jne 0x42ea6c
lea eax, [ebp - 0x1740]
mov dword [ebp - 0x1740], 0x100
push eax
lea eax, [ebp - 0x130]
push eax
push ebp
call 0x872dda
push 0x54c240
call fcn.009207bf
nop
mov dword [ebp - 0x1738], eax
lea eax, [ebp - 0x1788]
push 0x7cc094
push eax
call fcn.004335d0
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1880]
push 7
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 0
push 0x54c284
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 0xf
mov byte [ebp - 0x1880], 0
call fcn.00416130
mov byte [ebp - 4], 7
lea eax, [ebp - 0x1880]
push eax
lea eax, [ebp - 0x1770]
push eax
call fcn.004335d0
add esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1880]
call fcn.00401990
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x1858], 0
mov dword [ebp - 0x1854], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x1858], 0
mov dword [ebp - 0x1854], 0xf
mov byte [ebp - 0x1868], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e5d7
sub ecx, edx
lea eax, [ebp - 0x130]
push ecx
push eax
lea ecx, [ebp - 0x1868]
call fcn.00416130
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x1868]
push eax
lea eax, [ebp - 0x1758]
push eax
call fcn.004335d0
add esp, 8
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x1868]
call fcn.00401990
cmp dword [ebp - 0x1744], 0x10
lea eax, [ebp - 0x1758]
cmovae eax, dword [ebp - 0x1758]
cmp dword [ebp - 0x175c], 0x10
mov dword [ebp - 0x1734], eax
lea eax, [ebp - 0x1770]
cmovae eax, dword [ebp - 0x1770]
mov dword [ebp - 0x1850], eax
call fcn.0042eb10
mov ecx, 0x5977d8
mov dword [ebp - 0x184c], 0
xor edx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e670
mov bl, byte [ebp - 0x1849]
sub ecx, esi
mov ah, byte [ebp - 0x184a]
mov bh, byte [ebp - 0x184c]
lea esi, [ecx - 4]
mov ch, byte [ebp - 0x184b]
xor cl, cl
test esi, esi
jle 0x42e6d3
nop word [eax + eax]
mov cl, byte [edx + 0x5977d8]
xor ch, byte [edx + 0x5977d9]
xor cl, bh
xor ah, byte [edx + 0x5977da]
mov bh, cl
xor bl, byte [edx + 0x5977db]
inc edx
cmp edx, esi
jl 0x42e6a0
mov byte [ebp - 0x1849], bl
mov byte [ebp - 0x184a], ah
mov byte [ebp - 0x184b], ch
mov esi, 0x5976d8
xor edx, edx
lea edi, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x42e6e0
sub esi, edi
add esi, 0xfffffffc
test esi, esi
jle 0x42e723
mov cl, byte [edx + 0x5976d8]
xor ch, byte [edx + 0x5976d9]
xor cl, bh
xor ah, byte [edx + 0x5976da]
mov bh, cl
xor bl, byte [edx + 0x5976db]
inc edx
cmp edx, esi
jl 0x42e6f0
mov byte [ebp - 0x1849], bl
mov byte [ebp - 0x184a], ah
mov byte [ebp - 0x184b], ch
push dword [ebp - 0x1734]
mov ebx, dword [ebp - 0x1738]
lea eax, [ebp - 0x1788]
push dword [ebp - 0x1850]
xor cl, 0x1d
cmp dword [ebp - 0x1774], 0x10
mov byte [ebp - 0x184c], cl
push dword [ebp - 0x184c]
cmovae eax, dword [ebp - 0x1788]
push eax
push ebx
lea eax, [ebp - 0x730]
push 0x400
push eax
call fcn.00418de0
lea ecx, [ebp - 0x730]
mov dword [ebp - 0x1858], 0
mov dword [ebp - 0x1854], 0
lea edx, [ecx + 1]
add esp, 0x1c
mov dword [ebp - 0x1858], 0
mov dword [ebp - 0x1854], 0xf
mov byte [ebp - 0x1868], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42e7a6
sub ecx, edx
lea eax, [ebp - 0x730]
push ecx
push eax
lea ecx, [ebp - 0x1868]
call fcn.00416130
mov byte [ebp - 4], 0xd
push eax
call 0x8e306f
cmp dword [ebp - 0x1854], 0x10
lea ecx, [ebp - 0x1868]
pop edi
call 0x83131f
mov esi, eax
cmovae ecx, dword [ebp - 0x1868]
push ecx
push 0x2712
push esi
call edi
push 0x6178d8
push 0x2711
push esi
call edi
push 0x42ead0
push 0x4e2b
push esi
call edi
push 0
push 0x51
push esi
call edi
push 0
push 0x40
push esi
call edi
push 0
push 0xe8
push esi
call edi
add esp, 0x48
mov eax, 0x7cc130
cmp dword [0x7cc144], 0x10
cmovae eax, dword [0x7cc130]
push eax
call 0x978d7e
call fcn.0042f790
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1848]
call fcn.00425580
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004dc1be
mov esp, ebp
pop ebp
ret
call fcn.00417560
add esp, 8
push eax
push str.ios_base::badbit_set
lea ecx, [ebp - 0x1864]
call fcn.00408b70
push 0x571c18
lea eax, [ebp - 0x1864]
push eax
call fcn.004f3812
int3