Function at 0x4092c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0xa2ababf0
mov dword [esp + 0x14], 0xf7bdb6d2
mov dword [esp + 0x18], 0xcbbda5df
mov dword [esp + 0x1c], 0xb6c000e5
mov dword [esp + 0x20], 0xbec6c5b7
mov dword [esp + 0x24], 0x4e473dba
mov dword [esp + 0x28], 0x41005404
mov dword [esp + 0x2c], 0x31344a3d
mov dword [esp + 0x30], 0xebefe947
mov word [esp + 0x34], 0xc8ed
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0x10]
lea ebp, [edi + 0x6b]
and ebp, ebx
mov eax, ebp
and eax, 2
mov esi, ebp
or esi, 0xfffffffd
inc esi
mov edx, ebp
and edx, 0xfffffffd
imul edx, esi
or ebp, 2
imul ebp, eax
sub edx, ebp
add ebx, edi
lea eax, [edx + ebx]
add eax, 0x5c1ebc6b
mov edx, eax
and edx, 0x27
xor eax, 0xa7
lea eax, [eax + edx*2]
inc al
mov byte [esp + edi + 0x10], al
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
cmp edi, 0x26
jb 0x409330
mov dword [esp + 4], 0xc2bbbdad
mov edi, 0x72bb677
nop
movzx eax, byte [esp + edi - 0x72bb673]
mov edx, eax
and edx, edi
add dl, dl
sub al, dl
movzx eax, al
add eax, edi
add al, 0x48
mov byte [esp + edi - 0x72bb673], al
inc edi
cmp edi, 0x72bb67b
jne 0x409390
mov dword [esp + 0x36], 0xb16e1616
mov dword [esp + 0x3a], 0xbc44b4b1
mov dword [esp + 0x3e], 0xbf6179b7
mov dword [esp + 0x42], 0xc9c6c8b4
mov dword [esp + 0x46], 0xc1c4c8c2
mov dword [esp + 0x4a], 0x34711ac1
mov dword [esp + 0x4e], 0xbc8c6cc
mov dword [esp + 0x52], 0x2bdd2933
mov dword [esp + 0x56], 0x2fd36c00
mov dword [esp + 0x5a], 0x600c25d2
mov dword [esp + 0x5e], 0x23d9dd25
mov dword [esp + 0x62], 0x1c593365
mov dword [esp + 0x66], 0xe018e0e2
mov dword [esp + 0x6a], 0x3f14ed1e
mov word [esp + 0x6e], 0x7451
mov edi, 0x526a0fb3
mov ecx, dword [esp + 0x84]
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0x526a0f7d]
mov ebx, edi
xor ebx, edx
lea eax, [edi - 0x526a0f00]
xor eax, edi
and eax, edx
xor eax, edi
sub bl, al
movzx eax, bl
add eax, edi
add al, 0x68
mov byte [esp + edi - 0x526a0f7d], al
inc edi
cmp edi, 0x526a0fed
jne 0x409440
add ecx, dword [esp + 8]
mov word [esp + 1], 0xfdf2
mov byte [esp + 3], 0xa1
mov edx, 0x1ec21117
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x1ec21116]
xor eax, edx
add eax, 0x9ef7747
mov esi, eax
and esi, 1
xor eax, 1
lea eax, [eax + esi*2]
mov byte [esp + edx - 0x1ec21116], al
inc edx
cmp edx, 0x1ec2111a
jne 0x409490
movzx ebx, byte [esp + 1]
mov edx, ecx
test bl, bl
je 0x4094db
lea edi, [esp + 2]
mov edx, ecx
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4094d0
mov byte [edx], 0
mov eax, dword [esp + 0xc]
movzx ebx, byte [eax + 0x60]
test bl, bl
je 0x40950d
lea edi, [eax + 0x61]
mov eax, dword [esp + 0x88]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409500
jmp 0x409514
mov eax, dword [esp + 0x88]
mov byte [edx], 0
movzx ebx, byte [esp + 0x36]
test bl, bl
je 0x40953b
lea edi, [esp + 0x37]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409530
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp + 8], ecx
je 0x40955b
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409550
mov byte [edx], 0
movzx ecx, byte [esp + 4]
test cl, cl
je 0x40957b
lea edi, [esp + 5]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409570
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40959b
lea edi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409590
mov byte [edx], 0
mov esi, dword [esp + 0x90]
mov ecx, esi
shr ecx, 2
mov ebp, dword [esp + 0x8c]
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebx, esi
and ebx, 0xfffffffc
add edx, ebx
add ebx, ebp
mov eax, esi
not eax
or eax, 3
lea ebp, [esi + eax]
inc ebp
mov ecx, ebp
shr ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, ebp
and ecx, 0xfffffffe
add edx, ecx
mov eax, ebp
xor eax, 0xfffffffe
or ebp, 1
and ebp, eax
je 0x40967f
add ebx, ecx
mov ecx, ebp
and ecx, 7
je 0x40961b
xor edi, edi
nop
nop
nop
nop
movzx eax, byte [ebx + edi]
mov byte [edx + edi], al
inc edi
cmp ecx, edi
jne 0x409600
add ebx, edi
add edx, edi
mov ecx, ebp
sub ecx, edi
cmp ebp, 8
jae 0x409622
jmp 0x40967f
mov ecx, ebp
cmp ebp, 8
jb 0x40967f
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx + edi]
mov byte [edx + edi], al
movzx eax, byte [ebx + edi + 1]
mov byte [edx + edi + 1], al
movzx eax, byte [ebx + edi + 2]
mov byte [edx + edi + 2], al
movzx eax, byte [ebx + edi + 3]
mov byte [edx + edi + 3], al
movzx eax, byte [ebx + edi + 4]
mov byte [edx + edi + 4], al
movzx eax, byte [ebx + edi + 5]
mov byte [edx + edi + 5], al
movzx eax, byte [ebx + edi + 6]
mov byte [edx + edi + 6], al
movzx eax, byte [ebx + edi + 7]
mov byte [edx + edi + 7], al
add edi, 8
cmp ecx, edi
jne 0x409630
add edx, edi
mov dword [esp + 0x36], 0x94909696
mov byte [esp + 0x3a], 0xaf
xor ecx, ecx
nop
nop
mov ebx, ecx
neg ebx
mov eax, ebx
and eax, 0x4d
add eax, eax
xor ebx, 0x32
sub ebx, eax
inc bl
xor bl, byte [esp + ecx + 0x36]
add bl, 0x68
mov byte [esp + ecx + 0x36], bl
mov eax, ecx
and eax, 3
or ecx, 0x43869cd3
add ecx, eax
add ecx, 0xbc79632e
cmp ecx, 5
jb 0x409690
mov dword [esp + 0x10], 0xe5fa1c18
mov byte [esp + 0x14], 0x19
mov ecx, 0x6d
mov edi, 0x12
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x5d]
lea eax, [ecx - 0x40]
mov esi, edi
and esi, 0x1a
and eax, 0x25
or eax, esi
xor eax, 0x5a
and eax, ebx
or ebx, ecx
xor ebx, eax
add bl, 0x98
mov byte [esp + ecx - 0x5d], bl
inc ecx
dec edi
cmp ecx, 0x72
jne 0x4096e0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40972d
lea edi, [esp + 0x11]
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409720
jmp 0x409731
mov eax, dword [esp + 0xc]
mov byte [edx], 0
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40974b
lea edi, [eax + 0x61]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409740
mov byte [edx], 0
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x40976b
lea edi, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409760
mov byte [edx], 0
sub edx, dword [esp + 8]
add dword [eax + 0x80], edx
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret 0x10