Function at 0x40b9a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x68683c]
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.0044eee0
test edi, edi
je 0x40bcbd
test esi, esi
je 0x40bcbd
mov eax, esi
lea edx, [eax + 1]
jmp 0x40b9e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b9e0
sub eax, edx
cmp eax, 8
jb 0x40bcbd
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40b9f7
sub eax, edx
cmp eax, 9
jb 0x40bcbd
push 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.00422190
add esp, 0xc
mov byte [ebp - 0xc], 0
xor edx, edx
mov ecx, 1
movsx esi, byte [edi + ecx - 1]
movsx eax, byte [edi + ecx]
sub eax, esi
jns 0x40ba32
neg eax
test edx, edx
jns 0x40ba3a
add edx, eax
jmp 0x40ba3c
sub edx, eax
inc ecx
cmp ecx, 8
jl 0x40ba23
test edx, edx
jns 0x40ba48
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x40ba55
cmp eax, 0x39
jle 0x40ba93
cmp eax, 0x61
jl 0x40ba5f
cmp eax, 0x7a
jle 0x40ba93
cmp eax, 0x41
jl 0x40ba69
cmp eax, 0x5a
jle 0x40ba93
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x40ba7a
cmp eax, 0x39
jle 0x40ba93
cmp eax, 0x61
jl 0x40ba84
cmp eax, 0x7a
jle 0x40ba93
cmp eax, 0x41
jl 0x40ba8e
cmp eax, 0x5a
jle 0x40ba93
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 0x40bad6
movsx eax, byte [ebp - 0x1c]
inc eax
cmp eax, 0x7a
jle 0x40bae0
movsx eax, byte [ebp - 0x1b]
inc eax
cmp eax, 0x30
jl 0x40baea
cmp eax, 0x39
jle 0x40bb03
cmp eax, 0x61
jl 0x40baf4
cmp eax, 0x7a
jle 0x40bb03
cmp eax, 0x41
jl 0x40bafe
cmp eax, 0x5a
jle 0x40bb03
mov eax, 0x52
mov byte [ebp - 0x13], al
xor ecx, ecx
mov esi, 1
lea ecx, [ecx]
movsx edi, byte [ebp + esi - 0x1d]
movsx eax, byte [ebp + esi - 0x1c]
sub eax, edi
jns 0x40bb20
neg eax
test ecx, ecx
jns 0x40bb28
add ecx, eax
jmp 0x40bb2a
sub ecx, eax
inc esi
cmp esi, 8
jl 0x40bb10
mov dword [ebp - 0x24], 2
push ebx
jmp 0x40bb40
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x40bb50
neg eax
test ecx, ecx
jns 0x40bb58
add ecx, eax
jmp 0x40bb5a
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x40bb69
neg eax
test ecx, ecx
jns 0x40bb71
add ecx, eax
jmp 0x40bb73
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x40bb7d
neg eax
test ecx, ecx
jns 0x40bb85
add ecx, eax
jmp 0x40bb87
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x40bb91
neg eax
test ecx, ecx
jns 0x40bb99
add ecx, eax
jmp 0x40bb9b
sub ecx, eax
add edx, 4
dec dword [ebp - 0x24]
jne 0x40bb40
test ecx, ecx
jns 0x40bba9
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x40bbb6
cmp eax, 0x39
jle 0x40bbf4
cmp eax, 0x61
jl 0x40bbc0
cmp eax, 0x7a
jle 0x40bbf4
cmp eax, 0x41
jl 0x40bbca
cmp eax, 0x5a
jle 0x40bbf4
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x40bbdb
cmp eax, 0x39
jle 0x40bbf4
cmp eax, 0x61
jl 0x40bbe5
cmp eax, 0x7a
jle 0x40bbf4
cmp eax, 0x41
jl 0x40bbef
cmp eax, 0x5a
jle 0x40bbf4
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 0x40bc00
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 0x40bc47
lea eax, [ecx + 0x14]
cmp eax, 0x7a
jle 0x40bc4f
lea eax, [esi - 0xa]
cmp eax, 0x30
jge 0x40bc57
lea eax, [edi + 0x14]
cmp eax, 0x7a
jle 0x40bc5f
lea eax, [edx - 0xa]
cmp eax, 0x30
jl 0x40bc69
cmp eax, 0x39
jle 0x40bc82
cmp eax, 0x61
jl 0x40bc73
cmp eax, 0x7a
jle 0x40bc82
cmp eax, 0x41
jl 0x40bc7d
cmp eax, 0x5a
jle 0x40bc82
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.0044f4b0
push 0x5f
mov ecx, esi
call fcn.004523c0
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, esi
call fcn.0044f4b0
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005a6cf8
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor al, al
pop esi
call fcn.005a6cf8
mov esp, ebp
pop ebp
ret