Function at 0x40cbd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x23c
mov eax, dword [0x442db8]
mov dword [esp + 0x3c], 0xb9505f5
mov dword [esp + 0x40], 0xfe70994
mov dword [esp + 0x44], 0x33e00de2
mov dword [esp + 0x48], 0x37e131d5
mov dword [esp + 0x4c], 0x3be635ed
mov dword [esp + 0x50], 0x3f1839ea
mov dword [esp + 0x54], 0x23c53d16
mov dword [esp + 0x58], 0x27b221cd
mov dword [esp + 0x5c], 0x2bb525c2
mov dword [esp + 0x60], 0x2fbd29b3
mov dword [esp + 0x64], 0xd3de2d0e
mov dword [esp + 0x68], 0xd7f0d126
mov dword [esp + 0x6c], 0xdb04d501
mov dword [esp + 0x70], 0xdf08d908
mov dword [esp + 0x74], 0xc3fcdd03
mov dword [esp + 0x78], 0xc72fc13b
mov dword [esp + 0x7c], 0xcb1ec554
mov dword [esp + 0x80], 0xcf15c91e
mov dword [esp + 0x84], 0xf354cdee
mov dword [esp + 0x88], 0xf724f128
mov dword [esp + 0x8c], 0xfbd4f5d9
mov dword [esp + 0x90], 0xff68f93d
mov dword [esp + 0x94], 0xe310fd6e
mov dword [esp + 0x98], 0xe719e109
mov dword [esp + 0x9c], 0xeb02e50d
mov dword [esp + 0xa0], 0xef07e927
mov dword [esp + 0xa4], 0x933ded7a
mov dword [esp + 0xa8], 0x97459149
mov dword [esp + 0xac], 0x9b46954f
mov dword [esp + 0xb0], 0x9f42994f
mov dword [esp + 0xb4], 0x83b49dbe
mov dword [esp + 0xb8], 0x8748814f
mov dword [esp + 0xbc], 0x8b778572
mov dword [esp + 0xc0], 0x8fa48946
mov dword [esp + 0xc4], 0xb3608dae
mov dword [esp + 0xc8], 0xb75db15d
mov dword [esp + 0xcc], 0xbb94b55d
mov dword [esp + 0xd0], 0xbf53b973
mov dword [esp + 0xd4], 0xa351bd5b
mov dword [esp + 0xd8], 0xa78fa133
mov dword [esp + 0xdc], 0xab61a586
mov dword [esp + 0xe0], 0xaf3ea942
mov dword [esp + 0xe4], 0x533fad3f
mov dword [esp + 0xe8], 0x578151b9
mov dword [esp + 0xec], 0x5b835581
mov dword [esp + 0xf0], 0x5f8a5985
mov dword [esp + 0xf4], 0x438e5d8e
mov dword [esp + 0xf8], 0x47924192
mov dword [esp + 0xfc], 0x4b644596
mov dword [esp + 0x100], 0x4faf49bf
mov dword [esp + 0x104], 0x73ab4da4
mov dword [esp + 0x108], 0x779f71e4
mov dword [esp + 0x10c], 0x7baf75a7
mov dword [esp + 0x110], 0x7fa179af
mov dword [esp + 0x114], 0x63a97dac
mov dword [esp + 0x118], 0x676061b8
mov byte [esp + 0x11e], 0
mov word [esp + 0x11c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe2
ja 0x40ce73
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
add ecx, 0x9d0570d5
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x2d
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe3
jb 0x40ce40
lea ebp, [esp + 0x3c]
push 0
push 0
push 0
push 0
push ebp
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x43dc88]
xor ebx, ebx
jmp 0x40d2d6
jmp dword [0x43dc94]
mov eax, dword [0x442dbc]
mov dword [esp], 0x7b787aab
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 3
ja 0x40cef3
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx]
add ecx, 0x2b1fdf6f
xor ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add cl, 0xf7
mov edx, dword [esp + 8]
mov byte [esp + edx], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 4
jb 0x40cec0
movzx ecx, word [esp]
push 0
push ecx
push 0x442dec
push esi
call eax
mov eax, dword [0x442dbc]
mov dword [esp], 0x7b787aab
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 3
ja 0x40cf53
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx]
add ecx, 0x2b1fdf6f
xor ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add cl, 0xf7
mov edx, dword [esp + 8]
mov byte [esp + edx], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 4
jb 0x40cf20
movzx ecx, word [esp]
push 0
push ecx
push 0x442dec
push esi
call eax
jmp dword [0x43dc9c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43dca0]
xor ebx, ebx
jmp 0x40d2cf
mov ecx, dword [0x442dc0]
mov dword [esp + 8], 0xeb54d5d6
mov byte [esp + 0xc], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x40cfd0
nop
mov edx, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 8]
add edx, 0xa13700dd
xor edx, edi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x3c]
add dl, 0xf5
mov edi, dword [esp]
mov byte [esp + edi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x40cfa0
mov edx, dword [esp + 8]
mov dword [esp + 0x3c], 0x3510156
mov dword [esp + 0x40], 0x1fb01daf
mov dword [esp + 0x44], 0x191e
mov dword [esp + 4], 0
mov edi, dword [esp + 4]
cmp edi, 0xb
ja 0x40d033
nop
nop
nop
mov edi, dword [esp + 4]
mov ebx, dword [esp + 4]
movzx ebx, byte [esp + ebx + 0x3c]
add edi, 0x6ea77f2b
xor edi, ebx
mov dword [esp], edi
mov ebx, dword [esp]
add bl, 0xd3
mov edi, dword [esp + 4]
mov byte [esp + edi + 0x3c], bl
inc dword [esp + 4]
mov edi, dword [esp + 4]
cmp edi, 0xc
jb 0x40d000
push edx
push 0
push 0
push 0
push dword [esp + 0x260]
push ebp
mov dword [esp + 0x50], eax
push eax
call ecx
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43dca8]
xor ebx, ebx
jmp 0x40d2c5
jmp dword [0x43dcb8]
xor eax, eax
mov ecx, dword [esp + 0x268]
test ecx, ecx
setg al
jmp dword [eax*4 + 0x43dcc0]
movzx eax, byte [0x442ef0]
mov ebx, dword [esp + 0x264]
jmp dword [eax*4 + 0x43dcc8]
push ecx
push ecx
push ecx
push ecx
push edi
call dword [0x442dc8]
movzx eax, byte [0x442ef0]
mov ebx, dword [esp + 0x264]
jmp dword [eax*4 + 0x43dcc8]
mov dword [esp + 8], 0x2b552563
mov dword [esp + 0xc], 0x2f45295b
mov dword [esp + 0x10], 0x33472d41
mov dword [esp + 0x14], 0x3710310c
mov dword [esp + 0x18], 0x3b553557
mov dword [esp + 0x1c], 0x3f52395f
mov dword [esp + 0x20], 0x434f3d5f
mov dword [esp + 0x24], 0x4721413b
mov dword [esp + 0x28], 0x4b3b4520
mov dword [esp + 0x2c], 0x4f0b493a
mov dword [esp + 0x30], 0x4d4e
mov byte [esp + 0x34], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2c
ja 0x40d14e
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x41aa5e25
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0xfd
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2d
jb 0x40d120
movzx eax, word [esp + 8]
test ax, ax
je 0x40d172
lea ebp, [esp + 0x3c]
lea ecx, [esp + 0xa]
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40d160
mov word [ebp], 0
movzx eax, word [0x442ef2]
test ax, ax
je 0x40d1a6
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp + ecx], ax
movzx eax, word [ecx + 0x442ef4]
add ecx, 2
test ax, ax
jne 0x40d190
add ebp, ecx
mov word [ebp], 0
mov eax, dword [0x442dcc]
mov dword [esp + 8], 0xab444546
mov word [esp + 0xc], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 5
ja 0x40d213
nop
nop
nop
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 + 8]
add ecx, 0xa1a64835
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x8d
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 6
jb 0x40d1e0
lea ecx, [esp + 0x3c]
push dword [esp + 8]
push 0xffffffffffffffff
push ecx
push edi
call eax
xor eax, eax
mov edx, dword [esp + 0x254]
mov ecx, edx
neg ecx
sbb eax, eax
push 0
push ebx
push dword [esp + 0x264]
push dword [esp + 0x264]
push eax
push edx
push edi
call dword [0x442dd0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43dcd0]
xor ebx, ebx
jmp 0x40d2be
mov ecx, edi
mov edi, ebx
mov dword [esp + 0x3c], 0
mov eax, dword [case.0x40d251.4]
nop
nop
nop
jmp eax
mov ebp, dword [0x442de0]
mov ebx, ecx
jmp dword [0x43dcec]
lea eax, [esp + 0x3c]
push eax
push edi
push dword [esp + 0x268]
push ebx
call ebp
lea eax, [esp + 0x3c]
push eax
push edi
push dword [esp + 0x268]
push ebx
call ebp
jmp dword [0x43dcf4]
xor ecx, ecx
test eax, eax
setne cl
mov edi, ebx
xor ebx, ebx
jmp dword [ecx*4 + 0x43dcf8]
jmp dword [0x43dd00]
push edi
call dword [0x442de4]
push dword [esp + 0x38]
call dword [0x442de4]
push esi
call dword [0x442de4]
mov eax, dword [case.0x40ce8b.39]
nop
nop
nop
nop
nop
jmp eax
mov eax, ebx
add esp, 0x23c
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x43dd10]
jmp 0x40d2be
mov bl, 1
jmp 0x40d2be
push 0
push edi
call dword [0x442dd4]
push 0
push edi
call dword [0x442dd4]
jmp dword [0x43dd08]