Function at 0x452380
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
test edi, edi
jne 0x452399
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x4523aa
lea esi, [eax + 4]
test esi, esi
jne 0x4523b2
xor ebp, ebp
mov dword [esp + 0x10], ebp
jmp 0x4523e1
mov cl, byte [esi]
test cl, cl
mov edx, esi
mov eax, 0x12345678
je 0x4523db
nop
mov esi, eax
shl esi, 5
mov ebx, eax
shr ebx, 2
movsx ecx, cl
add esi, ebx
add esi, ecx
mov cl, byte [edx + 1]
xor eax, esi
inc edx
test cl, cl
jne 0x4523c0
mov dword [esp + 0x10], eax
mov ebp, eax
mov eax, dword [edi + 0x54]
add edi, 0x48
test eax, eax
jne 0x4523f2
mov ecx, edi
call fcn.00511d20
mov eax, dword [edi + 0x24]
shr eax, 1
test eax, eax
jne 0x4523ff
xor esi, esi
jmp 0x452408
mov edx, dword [edi + 0x20]
dec eax
and eax, ebp
lea esi, [edx + eax*8]
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x452416
mov ecx, edi
call fcn.00511d20
mov eax, dword [edi + 0x1c]
shr eax, 1
test eax, eax
je 0x452428
mov ecx, dword [edi + 0x18]
dec eax
and eax, ebp
lea eax, [ecx + eax*8]
test esi, esi
je 0x452433
mov ecx, dword [esi + 4]
shr ecx, 1
jmp 0x452435
xor ecx, ecx
test eax, eax
je 0x452440
mov eax, dword [eax + 4]
shr eax, 1
jmp 0x452442
xor eax, eax
add eax, ecx
xor ebx, ebx
test eax, eax
mov dword [esp + 0x14], eax
jbe 0x45255a
mov eax, dword [edi + 0xc]
test eax, eax
mov esi, ebx
jne 0x452462
mov ecx, edi
call fcn.00511d20
mov eax, dword [edi + 0x24]
shr eax, 1
test eax, eax
je 0x45248d
mov edx, dword [edi + 0x20]
dec eax
and eax, ebp
lea eax, [edx + eax*8]
test eax, eax
je 0x45248d
mov ecx, dword [eax + 4]
shr ecx, 1
cmp ebx, ecx
jae 0x452489
mov eax, dword [eax]
movzx ebp, word [eax + ebx*2]
jmp 0x4524c4
mov esi, ebx
sub esi, ecx
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x45249b
mov ecx, edi
call fcn.00511d20
mov eax, dword [edi + 0x1c]
shr eax, 1
test eax, eax
je 0x4524c1
mov ecx, dword [edi + 0x18]
dec eax
and eax, ebp
lea eax, [ecx + eax*8]
test eax, eax
je 0x4524c1
mov edx, dword [eax + 4]
shr edx, 1
cmp esi, edx
jae 0x4524c1
mov eax, dword [eax]
mov ebp, dword [eax + esi*4]
jmp 0x4524c4
or ebp, 0xffffffff
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
mov edx, dword [ecx + 0x40]
lea ecx, [edx + ebp*4]
je 0x4524dd
lea edx, [eax + 4]
jmp 0x4524df
xor edx, edx
mov eax, dword [ecx]
test eax, eax
je 0x45254c
lea ecx, [eax + 4]
test ecx, ecx
je 0x45252f
test edx, edx
je 0x45252f
test eax, eax
je 0x4524f9
lea esi, [eax + 4]
jmp 0x4524fb
xor esi, esi
mov eax, edx
lea ecx, [ecx]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x452526
test cl, cl
je 0x452520
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x452526
add eax, 2
add esi, 2
test cl, cl
jne 0x452500
xor eax, eax
test eax, eax
jmp 0x45257c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jmp 0x45257c
test eax, eax
je 0x45254c
mov ecx, dword [eax]
shr ecx, 8
test ecx, ecx
je 0x45254c
test eax, eax
je 0x452545
lea ecx, [eax + 4]
jmp 0x452547
xor ecx, ecx
cmp byte [ecx], 0
jne 0x45256f
test edx, edx
je 0x452555
cmp byte [edx], 0
jne 0x452583
cmp ebp, 0xffffffff
jne 0x452595
mov eax, dword [0x6b6e40]
pop edi
pop esi
inc eax
pop ebp
mov dword [0x6b6e40], eax
xor al, al
pop ebx
add esp, 8
ret
test eax, eax
je 0x452578
add eax, 4
jmp 0x45257a
xor eax, eax
cmp eax, edx
sete al
test al, al
jne 0x452555
mov eax, dword [esp + 0x14]
inc ebx
cmp ebx, eax
jae 0x45255a
mov ebp, dword [esp + 0x10]
jmp 0x452452
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0xb8]
test eax, eax
lea ecx, [eax + 4]
jne 0x4525ab
mov ecx, 0x6b6e10
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
test eax, eax
je 0x4525ba
add eax, 4
jmp 0x4525bf
mov eax, 0x6b6e10
push ecx
push eax
push str.Foldercache_found__s_in__s_n
call fcn.005a2410
mov eax, dword [0x6b6e44]
add esp, 0xc
pop edi
pop esi
inc eax
pop ebp
mov dword [0x6b6e44], eax
mov al, 1
pop ebx
add esp, 8
ret