Function at 0x4053cc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov dword [ebp - 4], 0xdf2efd3
movzx eax, byte [0x42949c]
xor dword [0x4091c3], eax
push ebx
mov dword [ebp - 0x24], 0xdf2efd4
xor ebx, ebx
mov dword [ebp - 8], ebx
and dword [0x4091a7], 0x3ac6
mov eax, dword [ebp - 0x24]
add dword [0x429494], 0xaac
push esi
mov esi, 0x75683548
push edi
xor eax, esi
xor dword [0x407971], 0x602d
mov edi, 0x789ada9b
adc dword [0x406135], 0x2b48
sub eax, edi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], ebx
movzx eax, byte [0x429488]
mov eax, dword [ebp - 0x1c]
cmp ebx, eax
mov dword [0x407961], 0x40ef
jae 0x4056b9
neg eax
mov eax, dword [ebp - 4]
xor eax, esi
add dword [0x406131], 0x5ff8
sub eax, edi
mov dword [0x407975], 0x51c0
cmp ebx, eax
jne 0x405670
sub dword [0x4079fd], 0x4ebd
push dword [ebp + 8]
call 0x406ad1
mov dword [ebp - 0x10], eax
or ecx, 0x62f7
mov eax, dword [ebp - 4]
mov dword [0x40797d], 0x14
cmp dword [0x40797d], 0
je 0x40553e
cmp dword [0x40797d], 0x1b
jne 0x4054c3
push dword [ebp - 0x18]
push dword [ebp - 0x28]
call dword [0x4292a4]
mov ecx, dword [0x40797d]
dec ecx
mov dword [0x40797d], ecx
jmp 0x40549d
mov ecx, dword [ebp - 0x10]
adc dword [0x4091ab], 0x42948c
xor eax, esi
sub eax, edi
cmp ecx, eax
je 0x40579c
sbb dword [0x4079f5], 0x4dbd
push dword [ebp - 0x10]
push dword [ebp + 8]
call 0x406bd4
adc ecx, dword [0x40611d]
mov dword [ebp - 0x10], eax
xor eax, ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
xor eax, esi
sbb dword [0x406125], 0x5494
sub eax, edi
cmp ecx, eax
mov dword [0x429490], 0x3425
je 0x40579c
and dword [0x429484], ebx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x1c], eax
or dword [0x407979], 0x7250
mov eax, dword [ebp - 0x10]
mov ecx, dword [0x4091ab]
xor ecx, dword [0x407961]
mov dword [0x4091ab], ecx
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x28], ecx
xor dword [0x407961], 0x5ac2
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
or dword [0x407a11], 0x407a05
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x10]
mov dword [0x406119], 0x18
cmp dword [0x406119], 0
je 0x40564e
cmp dword [0x406119], 0x22
jne 0x405634
push 0x885e
push dword [ebp - 0x10]
push dword [ebp - 0x24]
push dword [ebp - 0x10]
push 0x67f4
call dword [0x429010]
xor ecx, ecx
add ecx, dword [0x406119]
dec ecx
mov dword [0x406119], ecx
jmp 0x405601
mov ecx, dword [ebp + 8]
sbb dword [0x4091c3], 0x66a5
ret
xchg ecx, eax
inc eax
add byte [ebp + 0x3000066], ah
dec eax
sbb al, 0x89
dec ebp
invalid
mov dword [0x4091b3], 0x160
jmp 0x40573f
neg eax
mov eax, dword [ebp - 0x28]
xor ecx, ecx
xor ecx, dword [0x4091b3]
adc ecx, dword [0x429488]
mov dword [0x4091b3], ecx
mov ecx, dword [ebp + 8]
and dword [0x4091b3], 0x4091b7
add ecx, dword [eax + ebx*4]
mov dword [ebp - 0x20], ecx
mov eax, 0x6d98
mov eax, dword [ebp - 0x20]
je 0x40573f
mov dword [0x407a0d], 0x494c
jmp 0x405712
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
and dword [0x40612d], 0x40611d
xor eax, esi
add dword [0x407969], 0x4091af
sub eax, edi
mov dword [0x407965], 0x1ac
cmp ecx, eax
mov dword [0x4091c7], 0x2770
je 0x40579c
mov eax, dword [ebp - 0x2c]
xor dword [0x407969], 0x406119
test eax, eax
mov dword [0x4079f9], 0x46e2
je 0x4057a8
lea eax, [ebp - 8]
and dword [0x4091af], 0x1b86
push eax
sbb dword [0x40919f], 0x4294a0
push dword [ebp - 0x20]
sbb dword [0x4091c7], 0x40612d
push dword [ebp + 0xc]
call fcn.00405cc4
xor dword [0x407965], ecx
mov eax, dword [ebp - 4]
adc ecx, 0x72fb
mov ecx, dword [ebp - 8]
xor eax, esi
and dword [0x4091a7], 0x4091c7
sub eax, edi
cmp ecx, eax
mov dword [0x407961], 0x2e00
je 0x405796
mov dword [0x4091b3], ebx
mov eax, dword [ebp - 0x30]
mov dword [0x4079f9], 0x5f04
movzx eax, word [eax + ebx*2]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x34], eax
jmp 0x4056b9
inc ebx
jmp 0x405434
mov eax, dword [ebp - 4]
xor eax, esi
sub eax, edi
jmp 0x405877
mov eax, dword [ebp - 0x34]
add eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x405825
mov dword [ebp - 0x18], 0
push 0xb
pop ecx
push 5
dec ecx
pop ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
mov eax, dword [ebp + 0x14]
imul eax, ecx
sub esp, eax
mov dword [ebp - 0x18], esp
mov eax, dword [ebp - 4]
xor eax, esi
sub eax, edi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x405825
lea eax, [ebp + 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add eax, 4
mov ebx, dword [eax]
mov dword [edx + ecx*4], ebx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x10]
xor ecx, esi
lea ecx, [ecx + edx - 0x789ada9b]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x14]
cmp ecx, edx
jne 0x4057f7
mov eax, dword [ebp - 4]
xor eax, esi
sub eax, edi
mov dword [ebp - 0xc], eax
mov ebx, 0
lea eax, [ebp - 0x14]
add ebx, dword [eax]
dec ebx
push ebx
pop ecx
inc ecx
call ecx
xor ecx, ecx
inc ecx
cmp dword [ebp + 0x10], ecx
je 0x405863
xchg edx, eax
push 0xa
pop ecx
push 4
pop ebx
inc ebx
xchg ebx, ecx
sub ebx, ecx
xchg ebx, ecx
dec ecx
mov eax, dword [ebp + 0x14]
imul eax, ecx
add esp, eax
xchg edx, eax
push eax
xor ebx, ebx
mov edx, esp
dec edx
inc ebx
add ebx, dword [edx + ebx]
dec ebx
xor edx, edx
add dword [ebp - 0xc], ebx
pop ebx
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret