Function at 0x425cc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5801b1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
mov eax, dword [0x5f3edc]
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x40], ecx
xor edi, edi
or ebx, 0xffffffff
cmp ecx, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x3c], edi
mov esi, ecx
je 0x425d20
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
shl eax, 0xb
push eax
push ecx
call fcn.0044c0f0
mov esi, dword [esi + 0x1c]
add esp, 8
xor ebx, eax
inc edi
test esi, esi
jne 0x425d00
mov dword [ebp - 0x3c], edi
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_7]
mov edx, ebx
shr edx, 0x1c
push edx
mov eax, ebx
shr eax, 0x18
and eax, 0xf
push eax
mov ecx, ebx
shr ecx, 0x14
and ecx, 0xf
push ecx
mov edx, ebx
shr edx, 0x10
and edx, 0xf
push edx
mov eax, ebx
shr eax, 0xc
and eax, 0xf
push eax
mov ecx, ebx
shr ecx, 8
and ecx, 0xf
push ecx
mov ecx, dword [ebp + 8]
mov edx, ebx
shr edx, 4
and edx, 0xf
push edx
mov eax, ebx
and eax, 0xf
push eax
push ecx
lea edx, [ebp - 0x34]
push str._sRecode__x__x__x__x__x__x__x__x
push edx
mov byte [ebp - 4], 1
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Format_1]
add esp, 0x2c
lea ecx, [ebp - 0x50]
call sub.MFC71.DLL_CFile::CFile_1
push 0
push 0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 2
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [ebp - 0x50]
call sub.MFC71.DLL_CFile::Open
test eax, eax
je 0x4260bc
push 0
push 0x1000
push 1
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 3
call fcn.00556c6e
xor ecx, ecx
mov dword [ebp - 0x2f], ecx
mov dword [ebp - 0x2b], ecx
mov dword [ebp - 0x27], ecx
xor edx, edx
mov word [ebp - 0x23], cx
mov dword [ebp - 0x20], edx
push 0x1c
lea eax, [ebp - 0x30]
mov byte [ebp - 0x21], cl
mov dword [ebp - 0x1c], edx
push eax
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 4
mov byte [ebp - 0x30], 0
mov dword [ebp - 0x18], edx
call sub.MFC71.DLL_CArchive::Read
mov ecx, 4
mov edi, str.RECODE_1.9.9.13
lea esi, [ebp - 0x30]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x42604d
cmp dword [ebp - 0x1c], ebx
jne 0x42604d
mov eax, dword [ebp - 0x3c]
cmp dword [ebp - 0x18], eax
jne 0x42604d
cmp dword [ebp - 0x20], 0x1c
jne 0x42604d
mov esi, dword [ebp - 0x40]
mov edi, 0x10
nop
test esi, esi
je 0x426004
push edi
lea ecx, [ebp - 0x7c]
push ecx
lea ecx, [ebp - 0xc4]
call sub.MFC71.DLL_CArchive::Read
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
shl edx, 0xb
push edx
push eax
call fcn.0044c0f0
mov ecx, dword [ebp - 0x78]
add esp, 8
cmp ecx, eax
jne 0x425fbb
cmp dword [ebp - 0x7c], edi
jne 0x425fbb
mov eax, dword [esi + 0x20]
test eax, eax
je 0x425ed0
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00425510
lea edx, [ebp - 0x5c]
push edx
lea ecx, [ebp - 0xc4]
call fcn.00425510
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x4c]
cmp dword [ebp - 0x3c], eax
jne 0x425f29
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
call dword [edx + 0x58]
cmp dword [ebp - 0x5c], eax
jne 0x425f29
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
lea edx, [ebp - 0xc4]
push edx
call dword [eax + 0x13c]
mov eax, dword [esi + 0x24]
test eax, eax
je 0x425f21
lea ecx, [ebp - 0x68]
push ecx
lea ecx, [ebp - 0xc4]
call fcn.00425510
lea edx, [ebp - 0x38]
push edx
lea ecx, [ebp - 0xc4]
call fcn.00425510
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
call dword [eax + 0x4c]
cmp dword [ebp - 0x68], eax
jne 0x425f72
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
call dword [edx + 0x58]
cmp dword [ebp - 0x38], eax
jne 0x425f72
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
lea edx, [ebp - 0xc4]
push edx
call dword [eax + 0x13c]
mov esi, dword [esi + 0x1c]
jmp 0x425e40
push 0x110
call sub.MFC71.DLL_operator_new_1
mov esi, eax
add esp, 4
mov dword [ebp - 0x38], esi
test esi, esi
mov byte [ebp - 4], 7
je 0x425f5b
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0x8a
mov ecx, esi
call fcn.0049bfc0
jmp 0x425f5d
xor eax, eax
mov dword [ebp - 0x60], eax
push 0x5d4494
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 4
call sub.MSVCR71.dll__CxxThrowException
push 0x110
call sub.MFC71.DLL_operator_new_1
mov esi, eax
add esp, 4
mov dword [ebp - 0x38], esi
test esi, esi
mov byte [ebp - 4], 8
je 0x425fa4
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0x8a
mov ecx, esi
call fcn.0049bfc0
jmp 0x425fa6
xor eax, eax
mov dword [ebp - 0x54], eax
push 0x5d4494
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 4
call sub.MSVCR71.dll__CxxThrowException
push 0x110
call sub.MFC71.DLL_operator_new_1
mov esi, eax
add esp, 4
mov dword [ebp - 0x38], esi
test esi, esi
mov byte [ebp - 4], 6
je 0x425fed
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0x8a
mov ecx, esi
call fcn.0049bfc0
jmp 0x425fef
xor eax, eax
push 0x5d4494
lea ecx, [ebp - 0x64]
push ecx
mov byte [ebp - 4], 4
mov dword [ebp - 0x64], eax
call sub.MSVCR71.dll__CxxThrowException
lea ecx, [ebp - 0xc4]
call sub.MFC71.DLL_CArchive::Close
mov ecx, dword [ebp - 0x40]
call fcn.00424980
lea ecx, [ebp - 0xc4]
mov bl, al
mov byte [ebp - 4], 3
call sub.MFC71.DLL_CArchive::CArchive
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.00556f8a
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [ebp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
mov al, bl
jmp 0x4260dc
push 0x110
call sub.MFC71.DLL_operator_new_1
mov esi, eax
add esp, 4
mov dword [ebp - 0x38], esi
test esi, esi
mov byte [ebp - 4], 5
je 0x42607f
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push 0x8a
mov ecx, esi
call fcn.0049bfc0
jmp 0x426081
xor eax, eax
push 0x5d4494
lea edx, [ebp - 0x58]
push edx
mov byte [ebp - 4], 4
mov dword [ebp - 0x58], eax
call sub.MSVCR71.dll__CxxThrowException
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x50]
call sub.MFC71.DLL_CFile::Close
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, 0x4260bc
ret
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 1
call fcn.00556f8a
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
lea ecx, [ebp + 8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00558076
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4