Function at 0x424670
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x5c
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push esi
push edi
mov edi, dword [esp + 0x68]
push eax
push ecx
push edx
push edi
call fcn.00422d50
add esp, 0x10
test al, al
je 0x424997
lea eax, [esp + 0x10]
lea ecx, [esp + 8]
push eax
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x70]
push edx
push eax
push 0x4d0e
push 0xcef
push edi
push 0
push 0x2c
mov dword [esp + 0x8c], 0xda
call fcn.004277c0
mov eax, dword [esp + 0x2c]
add esp, 0x24
test eax, eax
jne 0x424997
lea ecx, [esp + 0x10]
lea edx, [esp + 8]
push ecx
lea eax, [esp + 0x10]
mov esi, dword [esp + 0x10]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
push 0x4d0e
push 0xcef
push edi
push 0
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x8c]
add esp, 0x24
test eax, eax
jne 0x424997
lea edx, [esp + 0x24]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], edx
lea ecx, [esp + 8]
push eax
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x70]
push edx
push eax
push 0x4d0e
push 0xcef
push edi
push 0
push 0x34
mov byte [esp + 0x48], 0
mov dword [esp + 0x8c], 0xdc
mov dword [esp + 0x30], esi
call fcn.004277c0
mov eax, dword [esp + 0x2c]
add esp, 0x24
test eax, eax
jne 0x424997
lea ecx, [esp + 0x10]
lea edx, [esp + 8]
push ecx
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
push 0x4d0e
push 0xcef
push edi
push 0
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x8c]
add esp, 0x24
test eax, eax
jne 0x424997
xor eax, eax
test esi, esi
jle 0x4247c5
mov cl, byte [esp + 0x18]
mov dl, byte [esp + 0x1c]
add cl, dl
mov dl, byte [esp + eax + 0x24]
xor dl, cl
mov byte [esp + eax + 0x24], dl
inc eax
cmp eax, esi
jl 0x4247b6
lea edx, [esp + 0x44]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], edx
lea ecx, [esp + 8]
push eax
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x70]
push edx
push eax
push 0x4d0e
push 0xcef
push edi
push 0
push 0x34
mov byte [esp + 0x68], 0
mov dword [esp + 0x8c], 0xe7
mov dword [esp + 0x30], esi
call fcn.004277c0
mov eax, dword [esp + 0x2c]
add esp, 0x24
test eax, eax
jne 0x424997
lea ecx, [esp + 0x10]
lea edx, [esp + 8]
push ecx
lea eax, [esp + 0x10]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
push 0x4d0e
push 0xcef
push edi
push 0
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x8c]
add esp, 0x24
test eax, eax
jne 0x424997
xor eax, eax
test esi, esi
jle 0x424871
mov cl, byte [esp + 0x20]
mov dl, byte [esp + 0x18]
add cl, dl
mov dl, byte [esp + eax + 0x44]
xor dl, cl
mov byte [esp + eax + 0x44], dl
inc eax
cmp eax, esi
jl 0x424862
mov esi, dword [sym.imp.MSVCRT.dll_strtol]
lea edx, [esp + 0x14]
push 0x10
lea eax, [esp + 0x28]
push edx
push eax
call esi
mov ecx, eax
mov eax, 0x74ec96b9
imul ecx
sar edx, 9
mov ecx, edx
mov eax, 0x6d0b8037
shr ecx, 0x1f
add edx, ecx
lea ecx, [esp + 0x20]
imul edx
sar edx, 8
mov eax, edx
push 0x10
shr eax, 0x1f
add edx, eax
push ecx
mov edi, edx
lea edx, [esp + 0x38]
push edx
imul edi, edi, 0xa47b9
call esi
add esp, 0x18
cmp edi, eax
je 0x4248ca
xor edi, edi
jmp 0x424901
lea eax, [esp + 0x14]
push 0x10
lea ecx, [esp + 0x28]
push eax
push ecx
call esi
mov ecx, eax
mov eax, 0x74ec96b9
imul ecx
sar edx, 9
mov eax, edx
add esp, 0xc
shr eax, 0x1f
add edx, eax
mov eax, 0x6d0b8037
imul edx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov edi, edx
push ebp
lea edx, [esp + 0x18]
push 0x10
lea eax, [esp + 0x4c]
push edx
push eax
call esi
mov ecx, eax
mov eax, 0x74ec96b9
imul ecx
sar edx, 9
mov ecx, edx
mov eax, 0x6d0b8037
shr ecx, 0x1f
add edx, ecx
lea ecx, [esp + 0x24]
imul edx
sar edx, 8
mov eax, edx
push 0x10
shr eax, 0x1f
add edx, eax
push ecx
mov ebp, edx
lea edx, [esp + 0x5c]
push edx
imul ebp, ebp, 0xa47b9
call esi
add esp, 0x18
cmp ebp, eax
pop ebp
je 0x424956
xor edx, edx
jmp 0x42498b
lea eax, [esp + 0x14]
push 0x10
lea ecx, [esp + 0x48]
push eax
push ecx
call esi
mov ecx, eax
mov eax, 0x74ec96b9
imul ecx
sar edx, 9
mov eax, edx
add esp, 0xc
shr eax, 0x1f
add edx, eax
mov eax, 0x6d0b8037
imul edx
sar edx, 8
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edi, edx
jne 0x424997
mov eax, edi
pop edi
pop esi
add esp, 0x5c
ret
pop edi
or eax, 0xffffffff
pop esi
add esp, 0x5c
ret