Function at 0x42cf80
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov dword [esp], 0x1fdf19fd
mov dword [esp + 4], 0xe3521dac
mov dword [esp + 8], 0xe747e124
mov dword [esp + 0xc], 0xeb4be550
mov dword [esp + 0x10], 0xefeee90d
lea eax, [esp + 0x14]
mov byte [esp + 0x14], 0
mov ecx, esp
mov edx, 0x2e305d05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ecx]
lea edi, [edx - 0x2e305d00]
not esi
mov ebp, edx
and ebp, esi
or esi, edi
lea ebx, [ebp*2]
not ebx
add ebx, ebp
and ebx, esi
add bl, 0x1e
mov byte [ecx], bl
inc ecx
dec edx
cmp edx, 0x2e305cf0
jne 0x42cfd0
lea esi, [esp + 0xaa]
mov edx, esp
mov edi, esi
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xbe]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x58]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x451e44]
mov ebx, dword [esp + 0x58]
test ebx, ebx
jns 0x42d044
mov eax, 0xffffffff
jmp 0x42d047
lea eax, [ebx + ebx]
push eax
call fcn.0040ce10
add esp, 4
push edi
push ebx
mov dword [esp + 0x54], eax
push eax
push 9
push esi
push 0
call dword [0x451e44]
mov dword [esp], 0x69056b20
mov dword [esp + 4], 0x6d0b6f1d
mov dword [esp + 8], 0x7104731d
mov dword [esp + 0xc], 0x75767714
lea esi, [esp + 0x10]
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
mov eax, 0x61d3cbe7
mov ecx, 0x1e2c3418
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x61d3cbe7]
mov ebx, edx
xor ebx, eax
or ebx, ecx
add bl, bl
add bl, dl
movzx edx, bl
add edx, eax
add dl, 0x7f
mov byte [esp + eax - 0x61d3cbe7], dl
inc eax
dec ecx
cmp eax, 0x61d3cbfa
jne 0x42d0a0
lea edi, [esp + 0x9a]
mov eax, esp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xaa]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp], 0x812d8748
mov dword [esp + 4], 0x8d2f833d
mov dword [esp + 8], 0x893c8f3d
mov dword [esp + 0xc], 0x95478b24
mov dword [esp + 0x10], 0x91209737
mov dword [esp + 0x14], 0x9d209333
mov dword [esp + 0x18], 0x999e9f27
lea esi, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
mov ecx, 0x568c4661
mov eax, 0x9e
nop
nop
nop
movzx edx, byte [esp + ecx - 0x568c4661]
mov edi, eax
xor edi, ecx
and edi, edx
xor edi, ecx
mov edx, edi
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
add dl, 0x1a
mov byte [esp + ecx - 0x568c4661], dl
inc ecx
dec eax
cmp ecx, 0x568c4680
jne 0x42d140
lea edx, [esp + 0xd4]
mov eax, esp
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf0]
xor eax, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp], 0xb925bbc0
mov dword [esp + 4], 0xbddbbf2d
mov dword [esp + 8], 0xb124b32d
mov dword [esp + 0xc], 0xb5c6b7d4
mov dword [esp + 0x10], 0xa9ecabc0
lea ebx, [esp + 0x14]
mov word [esp + 0x14], 0xafa8
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9f
xor cl, byte [esp + eax]
add cl, 0xe5
mov byte [esp + eax], cl
inc eax
cmp eax, 0x1c
jne case.default.0x42d258
lea esi, [esp + 0xbe]
mov ebp, esp
mov eax, ebp
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd2]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x9a]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], esi
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0x64], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x60], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44ddb0]
jmp dword [0x44ddb8]
push dword [esp + 0x4c]
call fcn.0040ce20
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44de7c]
mov dword [esp + 0x80], ecx
mov esi, dword [esp + ecx + 0x8c]
mov eax, 0xfffffffe
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x42d2d0
mov dword [esp + 0x68], eax
mov edx, eax
sar edx, 1
mov eax, dword [esp + 0x58]
lea ecx, [edx + eax]
mov dword [esp + 0x50], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x42d303
mov eax, 0xffffffff
mov dword [esp + 0x34], esi
push eax
call fcn.0040ce10
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x4c]
movzx ecx, word [eax]
mov dword [esp + 0x44], edx
mov eax, edx
test cx, cx
je 0x42d341
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42d330
mov word [eax], 0x5c
mov dword [esp], 0xd182cf90
mov dword [esp + 4], 0xd5b7d3a1
mov dword [esp + 8], 0xd9bad7b7
mov dword [esp + 0xc], 0xdd8fdbf8
mov dword [esp + 0x10], 0xe1bddfa8
mov dword [esp + 0x14], 0xe585e394
mov word [esp + 0x18], 0xe7e4
mov dword [esp + 0x1a], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
mov edx, ecx
xor edx, 0x4d77aa32
mov edi, ecx
or edi, 0xb28855cd
and edx, edi
add edx, edi
mov edi, edx
add edx, esi
not esi
or edi, esi
sub esi, edi
lea edx, [edx + esi*2]
add edx, 0x835652fe
mov esi, edx
xor esi, 0x58
and edx, 0x27
add edx, edx
sub edx, esi
add dl, 0x59
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 0x1e
jne 0x42d390
add eax, 2
mov edi, dword [esp + 0x34]
movzx ecx, word [edi]
test cx, cx
je 0x42d401
lea edx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42d3f0
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x42d431
lea edx, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42d420
mov word [eax], 0
lea eax, [esp + 0x54]
push 0x60
push 3
push 0x120089
push eax
push dword [esp + 0x54]
call fcn.004450a0
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0x38], 0
jmp dword [eax*4 + 0x44ddc0]
lea eax, [esp + 0x78]
push 0
push eax
push dword [esp + 0x5c]
call fcn.004453d0
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44ddc8]
mov esi, dword [esp + 0x78]
lea eax, [esi + 1]
push eax
call fcn.0040ce10
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x60]
call fcn.004454a0
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44ddd0]
mov eax, dword [esp + 0x78]
mov byte [edi + eax], 0
push edi
call fcn.00403d70
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44ddd8]
jmp dword [0x44de08]
mov dword [esp + 0x38], ebx
push edi
call fcn.0040ce20
add esp, 4
jmp dword [0x44de14]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x7c], eax
push eax
call fcn.00404850
add esp, 4
mov dword [esp], 0xf4fbe6ed
mov dword [esp + 4], 0xd9d620e6
mov dword [esp + 8], 0xccd0c896
mov dword [esp + 0xc], 0xd1de28de
mov dword [esp + 0x10], 0xdccbc7c7
mov word [esp + 0x14], 0x30c3
mov byte [esp + 0x16], 0xb6
mov dword [esp + 0x17], 0
mov ecx, 0xa51c601b
movzx edx, byte [esp + ecx + 0x5ae39fe5]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x79
mov byte [esp + ecx + 0x5ae39fe5], dl
inc ecx
cmp ecx, 0xa51c6036
jne 0x42d540
push ebp
push eax
call fcn.00404c10
add esp, 8
mov edx, 0xffffffff
mov edi, 0xfffffffd
nop
nop
nop
nop
mov ecx, edx
add edi, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x42d580
shr edi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
je 0x42d5a1
cmp ecx, 0x2e
jne 0x42d5a2
dec edi
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x6c], eax
mov dword [esp + 0x40], edx
je 0x42d5b9
cmp ecx, 0x2e
jne 0x42d5ba
dec edi
lea eax, [edi + 1]
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp + 0x48], eax
cmp dword [esp + 0x40], 0
je 0x42d6de
xor ebx, ebx
mov esi, 2
jmp 0x42d602
mov edx, dword [esp + 0x40]
mov ecx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
mov ebx, ecx
cmp esi, edx
mov esi, eax
jae 0x42d6de
mov ebp, dword [esp + 0x6c]
movzx eax, byte [ebp + esi - 2]
push eax
call fcn.004224c0
add esp, 4
mov byte [esp + 0x38], al
movzx eax, byte [ebp + esi - 1]
push eax
call fcn.004224c0
mov edx, dword [esp + 0x44]
add esp, 4
mov byte [esp + 0x3f], al
movzx eax, al
mov ecx, eax
not ecx
or ecx, 0x30
add eax, ecx
inc eax
movzx ecx, byte [esp + 0x38]
shr eax, 4
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x48]
mov byte [ecx + ebx], al
lea ecx, [ebx + 1]
cmp esi, edx
jae 0x42d5f0
movzx eax, byte [ebp + esi]
push eax
mov ebp, ecx
call fcn.004224c0
mov ecx, ebp
mov edx, dword [esp + 0x44]
add esp, 4
cmp al, 0x40
je 0x42d5f0
lea ebp, [ebx + 2]
movzx edx, byte [esp + 0x3f]
shl dl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, dl
mov edx, dword [esp + 0x48]
mov byte [edx + ebx + 1], cl
mov edx, dword [esp + 0x40]
lea ecx, [esi + 1]
cmp ecx, edx
jae 0x42d5e2
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x6c]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.004224c0
add esp, 4
cmp al, 0x40
je 0x42d5de
movzx ecx, byte [esp + 0x38]
shl cl, 6
add al, cl
mov ecx, dword [esp + 0x48]
mov byte [ecx + ebx + 2], al
mov ecx, ebp
xor ecx, 1
and ebx, 1
lea ecx, [ecx + ebx*2]
mov edx, dword [esp + 0x40]
jmp 0x42d5f0
add edi, 0xfffffffb
mov dword [esp + 0x84], edi
mov eax, dword [esp + 0x48]
add eax, 5
mov dword [esp + 0x88], eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
push 0x14e20a34
push dword [0x451e54]
call fcn.00444590
add esp, 8
lea ecx, [esp + 0x70]
lea edx, [esp + 0x84]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44dde0]
xor ebx, ebx
mov edi, dword [esp + 0x5c]
mov ebp, esp
jmp dword [0x44ddf0]
mov eax, dword [esp + 0x68]
add eax, 0x10
cmp dword [esp + 0x50], 0xfffffff8
mov edi, dword [esp + 0x34]
mov ebp, esp
jge 0x42d767
mov eax, 0xffffffff
push eax
call fcn.0040ce10
add esp, 4
mov esi, eax
mov dword [esp], 0x63c661bf
mov dword [esp + 4], 0x67b865f4
mov dword [esp + 8], 0x5bd259cc
mov dword [esp + 0xc], 0x5f5e5dc8
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x98
xor cl, byte [esp + eax]
add cl, 8
mov byte [esp + eax], cl
inc eax
cmp eax, 0x10
jne 0x42d7a0
movzx ecx, word [edi]
mov eax, esi
test cx, cx
je 0x42d7e1
lea edx, [edi + 2]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42d7d0
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x42d813
lea edx, [esp + 2]
mov edi, dword [esp + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42d800
jmp 0x42d817
mov edi, dword [esp + 0x5c]
mov word [eax], 0
mov ecx, dword [esp + 0x104]
push dword [esp + 0x70]
push dword [esp + 0x78]
push esi
call fcn.0040d720
mov ebx, eax
jmp dword [0x44dde8]
push esi
call fcn.0040ce20
add esp, 4
push 0xbe5098bb
push dword [0x451e3c]
call fcn.00444590
add esp, 8
push dword [esp + 0x74]
call eax
jmp dword [0x44ddf0]
push dword [esp + 0x48]
call fcn.0040ce20
add esp, 4
mov eax, dword [case.0x42d258.16]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push dword [esp + 0x7c]
call fcn.00404e00
add esp, 4
jmp dword [0x44de08]
mov dword [esp + 0x38], ebx
jmp dword [0x44de14]
mov eax, dword [esp + 0x54]
mov dword [esp], 0x60676665
xor ecx, ecx
xor edx, edx
nop
mov esi, ecx
and esi, 2
mov ebx, edx
xor ebx, 0xe9
add ebx, esi
xor bl, byte [esp + edx]
add bl, 0x73
mov byte [esp + edx], bl
inc edx
add ecx, 2
cmp edx, 4
jne 0x42dee0
mov ecx, dword [0x451e48]
test ecx, ecx
je case.0x42d258.24
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x451e4c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x42df30
inc esi
cmp ecx, esi
jne 0x42df20
jmp case.0x42d258.24
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x42d258.24
push eax
push 1
push ecx
push dword [0x451e50]
call fcn.00441a80
add esp, 0x10
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov dword [esp], 0x60676665
xor ecx, ecx
xor edx, edx
nop
mov esi, ecx
and esi, 2
mov ebx, edx
xor ebx, 0xe9
add ebx, esi
xor bl, byte [esp + edx]
add bl, 0x73
mov byte [esp + edx], bl
inc edx
add ecx, 2
cmp edx, 4
jne 0x42df60
mov ecx, dword [0x451e48]
test ecx, ecx
je 0x42dfc0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x451e4c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x42dfb0
inc esi
cmp ecx, esi
jne 0x42dfa0
jmp 0x42dfc0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42dfe8
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x34]
jmp dword [0x44de18]
movzx esi, byte [esp + 0x38]
jmp dword [0x44de20]
push dword [esp + 0x44]
call fcn.0040ce20
add esp, 4
jmp dword [esi*4 + 0x44de28]
push eax
push 1
push ecx
push dword [0x451e50]
call fcn.00441a80
add esp, 0x10
mov edi, dword [esp + 0x34]
jmp dword [0x44de18]