Function at 0x407150
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x574870]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], ecx
call fcn.00415840
test edi, edi
je 0x40746d
test esi, esi
je 0x40746d
mov eax, esi
lea edx, [eax + 1]
jmp 0x407190
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407190
sub eax, edx
cmp eax, 8
jb 0x40746d
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4071a7
sub eax, edx
cmp eax, 9
jb 0x40746d
push 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.004e8fce
add esp, 0xc
xor edx, edx
mov ecx, 1
nop
movsx esi, byte [edi + ecx - 1]
movsx eax, byte [edi + ecx]
sub eax, esi
jns 0x4071df
neg eax
test edx, edx
jns 0x4071e7
add edx, eax
jmp 0x4071e9
sub edx, eax
inc ecx
cmp ecx, 8
jl 0x4071d0
test edx, edx
jns 0x4071f5
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x407202
cmp eax, 0x39
jle 0x407240
cmp eax, 0x61
jl 0x40720c
cmp eax, 0x7a
jle 0x407240
cmp eax, 0x41
jl 0x407216
cmp eax, 0x5a
jle 0x407240
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x407227
cmp eax, 0x39
jle 0x407240
cmp eax, 0x61
jl 0x407231
cmp eax, 0x7a
jle 0x407240
cmp eax, 0x41
jl 0x40723b
cmp eax, 0x5a
jle 0x407240
mov eax, 0x78
movsx ecx, byte [edi + 7]
mov byte [ebp - 0x14], al
movsx eax, byte [edi + 8]
xor eax, ecx
movsx ecx, byte [edi + 6]
xor eax, ecx
movsx ecx, byte [edi + 5]
xor eax, ecx
movsx ecx, byte [edi + 4]
xor eax, ecx
movsx ecx, byte [edi + 3]
xor eax, ecx
movsx ecx, byte [edi + 2]
xor eax, ecx
movsx ecx, byte [edi]
xor eax, ecx
movsx ecx, byte [edi + 1]
lea edx, [edi + 1]
xor eax, ecx
cmp eax, 0x30
jge 0x407283
movsx eax, byte [ebp - 0x1c]
inc eax
cmp eax, 0x7a
jle 0x40728d
movsx eax, byte [ebp - 0x1b]
inc eax
cmp eax, 0x30
jl 0x407297
cmp eax, 0x39
jle 0x4072b0
cmp eax, 0x61
jl 0x4072a1
cmp eax, 0x7a
jle 0x4072b0
cmp eax, 0x41
jl 0x4072ab
cmp eax, 0x5a
jle 0x4072b0
mov eax, 0x52
mov byte [ebp - 0x13], al
xor ecx, ecx
mov esi, 1
lea ebx, [ebx]
movsx edi, byte [ebp + esi - 0x1d]
movsx eax, byte [ebp + esi - 0x1c]
sub eax, edi
jns 0x4072d0
neg eax
test ecx, ecx
jns 0x4072d8
add ecx, eax
jmp 0x4072da
sub ecx, eax
inc esi
cmp esi, 8
jl 0x4072c0
mov dword [ebp - 0x24], 2
push ebx
jmp 0x4072f0
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x407300
neg eax
test ecx, ecx
jns 0x407308
add ecx, eax
jmp 0x40730a
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x407319
neg eax
test ecx, ecx
jns 0x407321
add ecx, eax
jmp 0x407323
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x40732d
neg eax
test ecx, ecx
jns 0x407335
add ecx, eax
jmp 0x407337
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x407341
neg eax
test ecx, ecx
jns 0x407349
add ecx, eax
jmp 0x40734b
sub ecx, eax
add edx, 4
dec dword [ebp - 0x24]
jne 0x4072f0
test ecx, ecx
jns 0x407359
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x407366
cmp eax, 0x39
jle 0x4073a4
cmp eax, 0x61
jl 0x407370
cmp eax, 0x7a
jle 0x4073a4
cmp eax, 0x41
jl 0x40737a
cmp eax, 0x5a
jle 0x4073a4
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x40738b
cmp eax, 0x39
jle 0x4073a4
cmp eax, 0x61
jl 0x407395
cmp eax, 0x7a
jle 0x4073a4
cmp eax, 0x41
jl 0x40739f
cmp eax, 0x5a
jle 0x4073a4
mov eax, 0x6e
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x12], al
xor eax, eax
xor ecx, ecx
mov edi, edi
movsx esi, byte [edx + ecx]
add ecx, 2
xor eax, esi
cmp ecx, 0xa
jl 0x4073b0
movsx edx, byte [ebp - 0x15]
movsx ebx, byte [ebp - 0x16]
movsx edi, byte [ebp - 0x19]
movsx esi, byte [ebp - 0x1a]
movsx ecx, byte [ebp - 0x17]
xor ebx, edx
movsx edx, byte [ebp - 0x1b]
xor ebx, edx
movsx edx, byte [ebp - 0x1c]
xor ebx, edx
movsx edx, byte [ebp - 0x18]
xor ebx, edx
xor ebx, edi
xor ebx, esi
xor ebx, ecx
xor eax, ebx
pop ebx
cmp eax, 0x30
jge 0x4073f7
lea eax, [ecx + 0x14]
cmp eax, 0x7a
jle 0x4073ff
lea eax, [esi - 0xa]
cmp eax, 0x30
jge 0x407407
lea eax, [edi + 0x14]
cmp eax, 0x7a
jle 0x40740f
lea eax, [edx - 0xa]
cmp eax, 0x30
jl 0x407419
cmp eax, 0x39
jle 0x407432
cmp eax, 0x61
jl 0x407423
cmp eax, 0x7a
jle 0x407432
cmp eax, 0x41
jl 0x40742d
cmp eax, 0x5a
jle 0x407432
mov eax, 0x47
mov esi, dword [ebp - 0x28]
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x20]
push eax
mov ecx, esi
mov byte [ebp - 0x10], 0
call fcn.00415cd0
push 0x5f
mov ecx, esi
call fcn.00418de0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, esi
call fcn.00415cd0
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e8c8a
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor al, al
pop esi
call fcn.004e8c8a
mov esp, ebp
pop ebp
ret