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

Disassembly:
push 0xffffffffffffffff
push 0x45915b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x21c
push ebp
push esi
push edi
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x29]
mov byte [esp + 0x28], 0
push 0x462258
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x23c]
push eax
call dword [sym.imp.MSVCRT.dll__wfopen]
mov edi, eax
xor ebp, ebp
add esp, 8
cmp edi, ebp
jne 0x4278e8
xor al, al
jmp 0x427adb
push edi
push 0x1ff
lea ecx, [esp + 0x30]
push 1
push ecx
call dword [sym.imp.MSVCRT.dll_fread]
push edi
mov esi, eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
cmp esi, 7
jge 0x427913
xor al, al
jmp 0x427adb
xor eax, eax
cmp esi, ebp
push ebx
jle 0x42792f
mov cl, byte [0x4663b0]
mov bl, byte [esp + eax + 0x2c]
xor bl, cl
mov byte [esp + eax + 0x2c], bl
inc eax
cmp eax, esi
jl 0x427920
mov ebx, dword [esp + 0x240]
push 0x2c
lea edx, [esp + 0x30]
push ebx
push edx
call fcn.0040bdb0
add esp, 0xc
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], ebp
mov eax, dword [ebx + 4]
cmp eax, ebp
je 0x427abf
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x18]
sub ecx, eax
sar ecx, 4
cmp edx, ecx
jae 0x427abf
mov esi, dword [esp + 0x14]
mov byte [esp + 0x13], 1
mov ecx, dword [esi + eax + 8]
cmp ecx, 6
jbe 0x427a47
cmp ecx, 0x11
jae 0x427a47
mov dl, byte [esp + 0x13]
mov dword [esp + 0x20], ebp
mov byte [esp + 0x1c], dl
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
push 0x2e
add esi, eax
push ebx
push esi
mov dword [esp + 0x240], ebp
call fcn.0040bf30
mov eax, dword [ebx + 4]
add esp, 0xc
cmp eax, ebp
je 0x427a1f
mov ecx, dword [ebx + 8]
sub ecx, eax
sar ecx, 4
cmp ecx, 4
jb 0x427a1f
mov eax, dword [4]
cmp eax, ebp
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
je 0x4279dc
mov eax, dword [4]
mov edi, dword [sym.imp.MSVCRT.dll_atoi]
push eax
call edi
mov esi, eax
mov eax, dword [0x24]
add esp, 4
cmp eax, ebp
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
je 0x4279fd
mov eax, dword [0x24]
push eax
call edi
add esp, 4
cmp esi, ebp
jle 0x427a1f
cmp esi, 0x100
jge 0x427a1f
cmp eax, ebp
jl 0x427a1f
cmp eax, 0x100
jge 0x427a1f
mov byte [esp + 0x13], 0
push ebp
mov dword [esp + 0x238], 0xffffffff
call sub.MFC42.DLL_operatordelete
mov al, byte [esp + 0x17]
add esp, 4
test al, al
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
je 0x427aa6
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 4]
mov ebp, dword [ebx + 8]
add eax, ecx
lea esi, [eax + 0x10]
cmp esi, ebp
je 0x427a7b
lea edi, [esi - 0x10]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, edi
mov eax, dword [edx]
push eax
push 0
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
add esi, 0x10
add edi, 0x10
cmp esi, ebp
jne 0x427a5d
mov edi, dword [ebx + 8]
lea esi, [edi - 0x10]
cmp esi, edi
je 0x427a96
push 1
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
add esi, 0x10
cmp esi, edi
jne 0x427a85
mov eax, dword [ebx + 8]
add eax, 0xfffffff0
xor ebp, ebp
mov dword [ebx + 8], eax
jmp 0x42794e
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
inc ecx
add eax, 0x10
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
jmp 0x42794e
mov eax, dword [ebx + 4]
cmp eax, ebp
jne 0x427aca
xor ebx, ebx
jmp 0x427ad2
mov ebx, dword [ebx + 8]
sub ebx, eax
sar ebx, 4
xor ecx, ecx
cmp ecx, ebx
pop ebx
sbb eax, eax
neg eax
mov ecx, dword [esp + 0x228]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x228
ret