Function at 0x405130
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x676664]
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.004439b0
test edi, edi
je 0x40544d
test esi, esi
je 0x40544d
mov eax, esi
lea edx, [eax + 1]
jmp 0x405170
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405170
sub eax, edx
cmp eax, 8
jb 0x40544d
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405187
sub eax, edx
cmp eax, 9
jb 0x40544d
push 0x10
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.00417650
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 0x4051c2
neg eax
test edx, edx
jns 0x4051ca
add edx, eax
jmp 0x4051cc
sub edx, eax
inc ecx
cmp ecx, 8
jl 0x4051b3
test edx, edx
jns 0x4051d8
neg edx
lea eax, [edx + 0x30]
cmp eax, 0x30
jl 0x4051e5
cmp eax, 0x39
jle 0x405223
cmp eax, 0x61
jl 0x4051ef
cmp eax, 0x7a
jle 0x405223
cmp eax, 0x41
jl 0x4051f9
cmp eax, 0x5a
jle 0x405223
mov eax, 0x7a
sub eax, edx
cmp eax, 0x30
jl 0x40520a
cmp eax, 0x39
jle 0x405223
cmp eax, 0x61
jl 0x405214
cmp eax, 0x7a
jle 0x405223
cmp eax, 0x41
jl 0x40521e
cmp eax, 0x5a
jle 0x405223
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 0x405266
movsx eax, byte [ebp - 0x1c]
inc eax
cmp eax, 0x7a
jle 0x405270
movsx eax, byte [ebp - 0x1b]
inc eax
cmp eax, 0x30
jl 0x40527a
cmp eax, 0x39
jle 0x405293
cmp eax, 0x61
jl 0x405284
cmp eax, 0x7a
jle 0x405293
cmp eax, 0x41
jl 0x40528e
cmp eax, 0x5a
jle 0x405293
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 0x4052b0
neg eax
test ecx, ecx
jns 0x4052b8
add ecx, eax
jmp 0x4052ba
sub ecx, eax
inc esi
cmp esi, 8
jl 0x4052a0
mov dword [ebp - 0x24], 2
push ebx
jmp 0x4052d0
movsx edi, byte [edx + 1]
movsx esi, byte [edx - 1]
mov eax, edi
sub eax, esi
jns 0x4052e0
neg eax
test ecx, ecx
jns 0x4052e8
add ecx, eax
jmp 0x4052ea
sub ecx, eax
movsx esi, byte [edx + 2]
movsx ebx, byte [edx]
mov eax, esi
sub eax, ebx
jns 0x4052f9
neg eax
test ecx, ecx
jns 0x405301
add ecx, eax
jmp 0x405303
sub ecx, eax
movsx eax, byte [edx + 3]
sub eax, edi
jns 0x40530d
neg eax
test ecx, ecx
jns 0x405315
add ecx, eax
jmp 0x405317
sub ecx, eax
movsx eax, byte [edx + 4]
sub eax, esi
jns 0x405321
neg eax
test ecx, ecx
jns 0x405329
add ecx, eax
jmp 0x40532b
sub ecx, eax
add edx, 4
dec dword [ebp - 0x24]
jne 0x4052d0
test ecx, ecx
jns 0x405339
neg ecx
lea eax, [ecx + 0x30]
cmp eax, 0x30
jl 0x405346
cmp eax, 0x39
jle 0x405384
cmp eax, 0x61
jl 0x405350
cmp eax, 0x7a
jle 0x405384
cmp eax, 0x41
jl 0x40535a
cmp eax, 0x5a
jle 0x405384
mov eax, 0x7a
sub eax, ecx
cmp eax, 0x30
jl 0x40536b
cmp eax, 0x39
jle 0x405384
cmp eax, 0x61
jl 0x405375
cmp eax, 0x7a
jle 0x405384
cmp eax, 0x41
jl 0x40537f
cmp eax, 0x5a
jle 0x405384
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 0x405390
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 0x4053d7
lea eax, [ecx + 0x14]
cmp eax, 0x7a
jle 0x4053df
lea eax, [esi - 0xa]
cmp eax, 0x30
jge 0x4053e7
lea eax, [edi + 0x14]
cmp eax, 0x7a
jle 0x4053ef
lea eax, [edx - 0xa]
cmp eax, 0x30
jl 0x4053f9
cmp eax, 0x39
jle 0x405412
cmp eax, 0x61
jl 0x405403
cmp eax, 0x7a
jle 0x405412
cmp eax, 0x41
jl 0x40540d
cmp eax, 0x5a
jle 0x405412
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.00443f80
push 0x5f
mov ecx, esi
call fcn.00446e90
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, esi
call fcn.00443f80
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059af98
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
xor al, al
pop esi
call fcn.0059af98
mov esp, ebp
pop ebp
ret