Function at 0x40fe00
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x440
mov eax, dword [0x44f274]
mov dword [esp + 0x40], 0x51bf4f83
mov dword [esp + 0x44], 0x55b953aa
mov dword [esp + 0x48], 0x59ba57b8
mov dword [esp + 0x4c], 0x5d6b5bbb
mov dword [esp + 0x50], 0x61705f6b
mov dword [esp + 0x54], 0x65426350
mov dword [esp + 0x58], 0x69bf674c
mov dword [esp + 0x5c], 0x6d846b83
mov dword [esp + 0x60], 0x719f6f88
mov dword [esp + 0x64], 0x75877389
mov dword [esp + 0x68], 0x79b87754
mov dword [esp + 0x6c], 0x7d5a7bac
mov dword [esp + 0x70], 0x14e7f4f
mov dword [esp + 0x74], 0x532032e
mov dword [esp + 0x78], 0x9260739
mov dword [esp + 0x7c], 0xde10bd1
mov dword [esp + 0x80], 0x11380fe2
mov dword [esp + 0x84], 0x152f1324
mov dword [esp + 0x88], 0x19ee1734
mov dword [esp + 0x8c], 0x1d2e1b2e
mov dword [esp + 0x90], 0x213e1f37
mov dword [esp + 0x94], 0x25d223e3
mov dword [esp + 0x98], 0x29ca27d4
mov dword [esp + 0x9c], 0x2df32bcf
mov dword [esp + 0xa0], 0x31cc2fcb
mov dword [esp + 0xa4], 0x35d933fd
mov dword [esp + 0xa8], 0x390737c0
mov dword [esp + 0xac], 0x3d0f3b0f
mov dword [esp + 0xb0], 0xc1103f05
mov dword [esp + 0xb4], 0xc5f4c3f5
mov dword [esp + 0xb8], 0xc9eec7e4
mov dword [esp + 0xbc], 0xcd02cb05
mov dword [esp + 0xc0], 0xd101cf18
mov dword [esp + 0xc4], 0xd5fed31c
mov dword [esp + 0xc8], 0xd93ad7f4
mov dword [esp + 0xcc], 0xdd37db33
mov dword [esp + 0xd0], 0xe1fedf3b
mov dword [esp + 0xd4], 0xe505e329
mov dword [esp + 0xd8], 0xe90be701
mov dword [esp + 0xdc], 0xedc1eb19
mov dword [esp + 0xe0], 0xf12befcc
mov dword [esp + 0xe4], 0xf500f318
mov dword [esp + 0xe8], 0xf919f705
mov dword [esp + 0xec], 0xfdcbfb1f
mov dword [esp + 0xf0], 0x81cdffcf
mov dword [esp + 0xf4], 0x85ac83bb
mov dword [esp + 0xf8], 0x89a887b4
mov dword [esp + 0xfc], 0x8da48bb8
mov dword [esp + 0x100], 0x91ae8fbc
mov dword [esp + 0x104], 0x95719345
mov dword [esp + 0x108], 0x99759772
mov dword [esp + 0x10c], 0x9d719b6a
mov dword [esp + 0x110], 0xa1a99fad
mov dword [esp + 0x114], 0xa59ba395
mov dword [esp + 0x118], 0xa993a78a
mov dword [esp + 0x11c], 0xadaaab9e
mov byte [esp + 0x120], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe0
ja 0x4100ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x40]
mov esi, ecx
xor esi, 0x650a4b8d
and ecx, 0xe50a4b8d
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x3f
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe1
jb 0x410070
lea ebp, [esp + 0x40]
push 0
push 0
push 0
push 0
push ebp
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x449ec8]
mov ecx, dword [esp + 0x454]
mov eax, dword [0x44f278]
mov dword [esp + 0x40], 0xf0e08c7
mov word [esp + 0x44], 0
mov byte [esp + 0x46], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 6
ja 0x41015c
mov edx, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 0x40]
mov ebx, edx
xor ebx, 0xa92de482
and edx, 0x292de482
lea ebx, [ebx + edx*2]
mov edx, ebx
and edx, edi
xor ebx, edi
sub ebx, edx
lea edi, [ebx + edx*2]
mov ebx, edi
not ebx
and ebx, edx
not edx
and edx, edi
sub edx, ebx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
mov edi, edx
not edi
and edi, 0x8a
and edx, 0x75
sub edx, edi
mov edi, dword [esp]
mov byte [esp + edi + 0x40], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 7
jb case.default.0x410173
movzx edx, word [esp + 0x40]
push 0
push edx
push ecx
push esi
call eax
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
xor edi, edi
jmp dword [ecx*4 + 0x449ed0]
mov dword [esp + 0xc], eax
mov eax, dword [0x44f27c]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x29aa2b24
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 6
ja 0x4101fe
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edi, edx
xor edi, 0x86291c87
add edx, edx
and edx, 0xc52390e
mov ebx, edx
and ebx, edi
xor edx, edi
lea edx, [edx + ebx*2]
mov edi, edx
add edx, ecx
not ecx
or edi, ecx
sub ecx, edi
lea ecx, [edx + ecx*2]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
add cl, 0x5d
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 7
jb 0x4101b0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], 0x69db6bd4
mov dword [esp + 0x44], 0x6dda6fdd
mov dword [esp + 0x48], 0x536c
mov byte [esp + 0x4c], 0
mov dword [esp + 8], 0
mov edi, dword [esp + 8]
cmp edi, 0xc
ja 0x41028a
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 8]
movzx ebx, byte [esp + ebx + 0x40]
mov edi, ecx
not edi
or edi, 0x65c3f917
add edi, ecx
xor ecx, 0xe5c3f917
lea eax, [ecx + edi*2]
lea edi, [ecx + edi*2]
add edi, 2
add eax, ebx
add eax, 2
and edi, ebx
mov ecx, eax
not ecx
and ecx, edi
add ecx, edi
not edi
and edi, eax
sub edi, ecx
mov dword [esp], edi
mov eax, dword [esp]
add al, 0x8d
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xd
jb case.default.0x4102ac
push edx
push 0
push 0
push 0
push dword [esp + 0x468]
push ebp
push dword [esp + 0x24]
call dword [esp + 0x20]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
xor edi, edi
jmp dword [ecx*4 + 0x449ed8]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x464]
mov edx, dword [esp + 0x45c]
movzx eax, byte [0x44f3ac]
mov ecx, dword [case.0x4102ac.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x449ef0]
mov edi, edx
mov dword [esp + 0x10], 0xf345f1b3
mov dword [esp + 0x14], 0xff55fd4b
mov dword [esp + 0x18], 0xfb57f951
mov dword [esp + 0x1c], 0xc7a6c5be
mov dword [esp + 0x20], 0xc365c167
mov dword [esp + 0x24], 0xcf60cd6f
mov dword [esp + 0x28], 0xcb7fc96f
mov dword [esp + 0x2c], 0xd771d56b
mov dword [esp + 0x30], 0xd36bd172
mov dword [esp + 0x34], 0xdf9bdd6c
mov word [esp + 0x38], 0xd9d8
mov dword [esp + 0x3a], 0
mov byte [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2e
ja 0x410399
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
xor edx, 0x872de8d4
and eax, 0x72de8d4
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0xdc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2f
jb 0x410360
movzx eax, word [esp + 0x10]
test ax, ax
je 0x4103c2
lea ebp, [esp + 0x40]
lea ecx, [esp + 0x12]
nop
nop
nop
nop
nop
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4103b0
mov word [ebp], 0
movzx eax, word [0x44f3ae]
test ax, ax
je 0x4103f6
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp + ecx], ax
movzx eax, word [ecx + 0x44f3b0]
add ecx, 2
test ax, ax
jne 0x4103e0
add ebp, ecx
mov word [ebp], 0
lea eax, [esp + 0x40]
push 0x20000000
push 0xffffffffffffffff
push eax
push dword [esp + 0x10]
call dword [0x44f288]
mov edx, edi
xor edi, edi
mov eax, edx
neg eax
mov eax, 0
sbb eax, eax
push 0
push ebx
push ebx
push dword [esp + 0x46c]
push eax
push edx
mov ebp, dword [esp + 0x1c]
push ebp
call dword [0x44f28c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x449ef8]
push 0
push ebp
call dword [0x44f290]
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x449f00]
mov ebx, edi
jmp dword [0x449f68]
mov eax, dword [case.0x4100ca.18]
nop
nop
nop
jmp eax
mov dword [esp + 0x40], 0
xor edi, edi
xor ebx, ebx
jmp dword [0x449f1c]
mov dword [ecx], edi
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x449fc8]
lea eax, [esp + 0x40]
push eax
push ebp
call dword [0x44f294]
jmp dword [0x449f20]
mov ebp, dword [esp + 0x40]
test eax, eax
setne al
test ebp, ebp
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x449f28]
jmp dword [0x449f30]
lea eax, [ebx + ebp]
inc eax
push eax
push edi
call fcn.004402d0
add esp, 8
lea eax, [ebx + ebp]
inc eax
push eax
push edi
call fcn.004402d0
add esp, 8
jmp dword [0x449f38]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x449f40]
mov edi, eax
mov ebp, dword [esp + 4]
jmp dword [0x449f4c]
mov eax, 1
jmp dword [eax*4 + 0x449f58]
mov dword [esp + 0x10], 0
add eax, ebx
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0x44]
push eax
push ebp
call dword [0x44f298]
mov eax, edi
mov dword [esp + 0x10], 0
add eax, ebx
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0x44]
push eax
push ebp
call dword [0x44f298]
mov eax, edi
jmp dword [0x449f54]
add ebx, dword [esp + 0x10]
xor ecx, ecx
mov edi, eax
jmp dword [ecx*4 + 0x449f58]
mov ebp, dword [esp + 4]
jmp dword [0x449f1c]
lea eax, [esp + 0x40]
push eax
push ebp
call dword [0x44f294]
jmp case.0x4100ca.21
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x449f60]
mov ebp, dword [esp + 4]
jmp dword [0x449f68]
mov byte [edi + ebx], 0
mov ebp, dword [esp + 4]
jmp dword [0x449f68]
mov eax, dword [esp + 0xc]
jmp dword [0x449f7c]
push eax
call dword [0x44f2a0]
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push eax
call dword [0x44f2a0]
mov eax, dword [esp + 0xc]
jmp dword [0x449f80]
jmp dword [0x449f88]
mov esi, dword [esp + 0x46c]
xor eax, eax
mov ecx, dword [esp + 0x468]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x449f98]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x449fb0]
jmp dword [0x449fb8]
push edi
call fcn.0043d5f0
add esp, 4
push edi
call fcn.0043d5f0
add esp, 4
jmp dword [0x449fc0]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x449fc8]
mov dword [esi], ebx
test edi, edi
setne al
add esp, 0x440
pop esi
pop edi
pop ebx
pop ebp
ret
push ebp
call dword [0x44f2a0]
push ebp
call dword [0x44f2a0]
jmp dword [0x449f74]
push esi
call dword [0x44f2a0]
push esi
call dword [0x44f2a0]
jmp dword [0x449f94]
add eax, 0xd10041
inc ecx
add cl, ah
add eax, 0x17a0041
inc ecx
add byte [eax - 0x4cffbefb], dh
add al, byte [ecx]
loopne 0x449ee4
inc ecx
add al, ah
add al, byte [ecx]
loopne 0x449ee8
inc ecx
add dl, ah
add al, byte [ecx]
loop 0x449eec
inc ecx
add al, ah
add al, byte [ecx]
loopne 0x449ef0
inc ecx
add byte [esp + eax], dl
adc al, 4
inc ecx
add cl, ch
add al, byte [ecx]
pushal
add al, 65
add byte [edi + 4], al
inc ecx
add byte [eax + 4], ah
inc ecx
add byte [eax + 4], ch
inc ecx
add byte [eax + 4], dh
inc ecx
add byte [eax + 4], dh
inc ecx
add byte [edx + 4], dh
inc ecx
add byte [eax + 4], dh
inc ecx
add byte [ecx + 5], bh
inc ecx
add byte [eax - 0x4dffbefc], ah
add al, 0x41
add byte [ecx + 5], bh
inc ecx
add byte [edx - 0x33ffbefb], cl
add al, 0x41
add al, ah
add al, 0x41
add dl, dl
add al, 0x41
add ah, dh
add al, 0x41
add al, ah
add al, 0x41
add byte [edx], al
add eax, 0x5100041
inc ecx
add byte [eax], ah
add eax, 0x53d0041
inc ecx
add byte [eax], ah
add eax, 0x5600041
inc ecx
add byte [edi + 5], ch
inc ecx
add byte [edx - 0x67ffbefb], cl
add eax, 0x5a20041
inc ecx
add byte [esi + 6], dl
inc ecx
add byte [edi + 6], cl
inc ecx
add byte [edi + 6], cl
inc ecx
add byte [eax - 0x45ffbefb], dh
add eax, 0x5d00041
inc ecx
add cl, ah
add eax, 0x5d00041
inc ecx
add byte [edx + 6], ch
inc ecx
add byte [ebx + 6], ah
inc ecx
add byte [ebx + 6], ah
inc ecx
add bh, ah
add eax, 0x6030041
inc ecx
add byte [esp + eax + 0x10041], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add eax, dword [esi]
inc ecx
add byte [ecx], al
add byte [eax], al
add byte [edi], ch
push es
inc ecx
add byte [ecx], dl
push es
inc ecx
add byte [eax], ah
push es
inc ecx
add byte [edi], dl
push es
inc ecx
add byte [edi], ch
push es
inc ecx
add byte [eax], ah
push es
inc ecx
add byte [edi], bh
push es
inc ecx
add byte [0x52004106], bh
or dword [ecx], eax
pop ecx
or dword [ecx], eax
jmp 0xf044e0e6