Function at 0x40caa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x240
mov eax, dword [0x442c10]
mov dword [esp + 0x40], 0x77c579ad
mov dword [esp + 0x44], 0x73cb75f2
mov dword [esp + 0x48], 0x4ffa71c4
mov dword [esp + 0x4c], 0x4bb94ded
mov dword [esp + 0x50], 0x47b44985
mov dword [esp + 0x54], 0x43a245b4
mov dword [esp + 0x58], 0x5ff541b8
mov dword [esp + 0x5c], 0x5be85de5
mov dword [esp + 0x60], 0x57e559e4
mov dword [esp + 0x64], 0x53dd55df
mov dword [esp + 0x68], 0x2ffc51b0
mov dword [esp + 0x6c], 0x2bca2d80
mov dword [esp + 0x70], 0x27d629d9
mov dword [esp + 0x74], 0x23d225d6
mov dword [esp + 0x78], 0x3fde21e7
mov dword [esp + 0x7c], 0x3b833d97
mov dword [esp + 0x80], 0x37fc398a
mov dword [esp + 0x84], 0x33f535f8
mov dword [esp + 0x88], 0xf8631d0
mov dword [esp + 0x8c], 0xbc60dc6
mov dword [esp + 0x90], 0x7e609f1
mov dword [esp + 0x94], 0x3b205c5
mov dword [esp + 0x98], 0x1faa01b0
mov dword [esp + 0x9c], 0x1bb11da1
mov dword [esp + 0xa0], 0x17a819a5
mov dword [esp + 0xa4], 0x13ab15c3
mov dword [esp + 0xa8], 0xef1d119c
mov dword [esp + 0xac], 0xeb25ed21
mov dword [esp + 0xb0], 0xe714e923
mov dword [esp + 0xb4], 0xe328e52b
mov dword [esp + 0xb8], 0xff06e100
mov dword [esp + 0xbc], 0xfb22fd2b
mov dword [esp + 0xc0], 0xf723f954
mov dword [esp + 0xc4], 0xf306f520
mov dword [esp + 0xc8], 0xcf7af110
mov dword [esp + 0xcc], 0xcb7dcd75
mov dword [esp + 0xd0], 0xc726c975
mov dword [esp + 0xd4], 0xc37fc51f
mov dword [esp + 0xd8], 0xdf69c17f
mov dword [esp + 0xdc], 0xdb23dd6f
mov dword [esp + 0xe0], 0xd709d938
mov dword [esp + 0xe4], 0xd35cd56c
mov dword [esp + 0xe8], 0xaf1bd163
mov dword [esp + 0xec], 0xab59ad11
mov dword [esp + 0xf0], 0xa757a959
mov dword [esp + 0xf4], 0xa350a56d
mov dword [esp + 0xf8], 0xbf4ca150
mov dword [esp + 0xfc], 0xbb48bd4c
mov dword [esp + 0x100], 0xb756b948
mov dword [esp + 0x104], 0xb313b51b
mov dword [esp + 0x108], 0x8f2fb10a
mov dword [esp + 0x10c], 0x8b338d02
mov dword [esp + 0x110], 0x874b897b
mov dword [esp + 0x114], 0x8349854b
mov dword [esp + 0x118], 0x9f518172
mov dword [esp + 0x11c], 0x9b9a9d56
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xdf
ja 0x40cd33
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x40]
add ecx, 0x37539596
xor ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x12
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe0
jb 0x40cd00
lea ebx, [esp + 0x40]
push 0
push 0
push 0
push 0
push ebx
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x43db04]
xor ebx, ebx
jmp 0x40d19e
mov eax, dword [0x442c14]
mov dword [esp + 0x40], 0xd7d6c80f
mov byte [esp + 0x44], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40cdb0
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x40]
add ecx, 0x69f53c4e
xor ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x7a
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40cd80
mov esi, dword [esp + 0x26c]
mov edi, dword [esp + 0x25c]
movzx ecx, word [esp + 0x40]
push 0
push ecx
push 0x442c44
push ebp
call eax
mov ecx, dword [case.0x40cd4b.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43db1c]
xor ebx, ebx
jmp 0x40d197
mov dword [esp + 0xc], eax
mov eax, dword [0x442c18]
mov dword [esp + 0x10], 0x21a62724
mov word [esp + 0x14], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 5
ja 0x40ce50
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
add ecx, 0xd8da08c9
xor ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
add cl, 0x13
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 6
jb 0x40ce20
mov dword [esp + 0x3c], ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], 0x41b747b4
mov dword [esp + 0x44], 0x4dbe43bd
mov dword [esp + 0x48], 0x4f4c
mov byte [esp + 0x4c], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xc
ja 0x40cec3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov ebp, dword [esp + 4]
movzx ebp, byte [esp + ebp + 0x40]
add edx, 0x70e1dc11
xor edx, ebp
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xab
mov ebp, dword [esp + 4]
mov byte [esp + ebp + 0x40], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0xd
jb 0x40ce90
push ecx
push 0
push 0
push 0
push dword [esp + 0x264]
push ebx
push dword [esp + 0x24]
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x43db24]
xor ebx, ebx
jmp 0x40d189
xor eax, eax
test esi, esi
setg al
mov dword [esp + 8], ebp
jmp dword [eax*4 + 0x43db2c]
movzx eax, byte [0x442d48]
jmp dword [eax*4 + 0x43db34]
mov ebx, dword [esp + 0x268]
mov ebp, dword [esp + 0x258]
mov esi, edi
mov edi, dword [esp + 0x260]
jmp dword [0x43db40]
push esi
push esi
push esi
push esi
push ebp
call dword [0x442c20]
movzx eax, byte [0x442d48]
jmp dword [eax*4 + 0x43db34]
mov dword [esp + 0x10], 0x49db4bb1
mov dword [esp + 0x14], 0x45d347d9
mov dword [esp + 0x18], 0x41d943d3
mov dword [esp + 0x1c], 0x7d5e7f86
mov dword [esp + 0x20], 0x799b7b9d
mov dword [esp + 0x24], 0x75ec77e5
mov dword [esp + 0x28], 0x71e17395
mov dword [esp + 0x2c], 0x6d8f6ff9
mov dword [esp + 0x30], 0x69ed6bf2
mov dword [esp + 0x34], 0x65a567f8
mov dword [esp + 0x38], 0x6364
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2b
ja 0x40cfde
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0x9a5b0793
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x21
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2c
jb 0x40cfb0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x40d001
lea ebx, [esp + 0x40]
lea ecx, [esp + 0x12]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cff0
mov esi, edi
mov word [ebx], 0
movzx eax, word [0x442d4a]
mov edi, ebp
test ax, ax
je 0x40d03e
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx + ecx], ax
movzx eax, word [ecx + 0x442d4c]
add ecx, 2
test ax, ax
jne 0x40d020
mov ebp, dword [esp + 0x258]
add ebx, ecx
jmp 0x40d045
mov ebp, dword [esp + 0x258]
mov word [ebx], 0
mov eax, dword [0x442c24]
mov dword [esp + 0x10], 0x314e4f4c
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 6
ja 0x40d0b3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x10]
add ecx, 0x41948a6d
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0xdf
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 7
jb 0x40d080
lea ecx, [esp + 0x40]
push dword [esp + 0x10]
push 0xffffffffffffffff
push ecx
push edi
call eax
mov ebx, dword [esp + 0x268]
mov edi, dword [esp + 0x260]
jmp dword [0x43db40]
xor eax, eax
mov ecx, ebp
neg ecx
sbb eax, eax
push 0
push ebx
push edi
push esi
push eax
push ebp
push dword [esp + 0x20]
call dword [0x442c28]
nop
nop
xor eax, eax
mov ecx, ebp
neg ecx
sbb eax, eax
push 0
push ebx
push edi
push esi
push eax
push ebp
push dword [esp + 0x20]
call dword [0x442c28]
jmp dword [0x43db44]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
mov esi, dword [esp + 8]
jmp dword [ecx*4 + 0x43db4c]
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x26c]
push dword [esp + 0x26c]
push esi
call dword [0x442c38]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x43db54]
push 0
push esi
call dword [0x442c2c]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x43db5c]
mov bl, 1
mov eax, dword [case.0x40cee1.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push esi
call dword [0x442c3c]
push dword [esp + 0xc]
call dword [0x442c3c]
mov ebp, dword [esp + 0x3c]
push ebp
call dword [0x442c3c]
mov eax, ebx
add esp, 0x240
pop esi
pop edi
pop ebx
pop ebp
ret
int 0x40
add byte [ecx - 0x33], bl
inc eax
add al, ah
int 0x40
add al, ah
int 0x40
add al, ah
int 0x40
add dl, ah
int 0x40
add al, dh
int 0x40
add bh, dh
int 0x40
add al, ch
into
inc eax
add bh, ch
into
inc eax
add byte [ecx], al
iretd