Function at 0x42d340
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov eax, dword [0x44f530]
mov dword [esp + 0x14], 0xc383c1e5
mov dword [esp + 0x18], 0xc756c554
mov dword [esp + 0x1c], 0xcbabc98c
mov dword [esp + 0x20], 0xcfafcd58
mov dword [esp + 0x24], 0xf38ef1d5
mov dword [esp + 0x28], 0xf799f5ba
mov dword [esp + 0x2c], 0xfb9ff96c
mov dword [esp + 0x30], 0xff9ffd6c
mov dword [esp + 0x34], 0xe3c9e184
mov dword [esp + 0x38], 0xe79ae5cf
mov dword [esp + 0x3c], 0xeb8fe97b
mov dword [esp + 0x40], 0xef7ded7f
mov dword [esp + 0x44], 0x137d1179
mov dword [esp + 0x48], 0x1738157a
mov dword [esp + 0x4c], 0x1b771980
mov dword [esp + 0x50], 0x1f1e1d70
mov word [esp + 0x54], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x14]
lea edx, [ecx + 0x77d6de50]
lea edi, [esi + esi]
not edi
add edi, esi
and edi, 0xbc5562f
and esi, 0xffffffd0
or esi, edi
mov edi, 0x82921af
sub edi, ecx
and edi, 0x801002f
and edx, 0x741288d0
or edx, edi
xor edx, esi
mov esi, 0x90
sub esi, edx
dec edx
and esi, 0xf4
and edx, 0xb
sub edx, esi
add dl, 0xf5
mov byte [esp + ecx + 0x14], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x42
jb 0x42d3e0
lea esi, [esp + 0x88]
lea ebx, [esp + 0x14]
push esi
push 0
push 0
push 0x1f
push ebx
push 0
call eax
mov edi, dword [esp + 0x88]
test edi, edi
jns 0x42d467
mov eax, 0xffffffff
jmp 0x42d46a
lea eax, [edi + edi]
push eax
call fcn.0040ce10
add esp, 4
mov ebp, eax
mov eax, dword [0x44f530]
mov dword [esp + 0x14], 0x1353116d
mov dword [esp + 0x18], 0x6fde6ddc
mov dword [esp + 0x1c], 0x6bcb6934
mov dword [esp + 0x20], 0x67c765e8
mov dword [esp + 0x24], 0x63c6611d
mov dword [esp + 0x28], 0x7fc97d2a
mov dword [esp + 0x2c], 0x7bc779f4
mov dword [esp + 0x30], 0x77d775c4
mov dword [esp + 0x34], 0x730971cc
mov dword [esp + 0x38], 0x4fea4d37
mov dword [esp + 0x3c], 0x4bf749fb
mov dword [esp + 0x40], 0x47f545f7
mov dword [esp + 0x44], 0x43f541f9
mov dword [esp + 0x48], 0x5f285dea
mov dword [esp + 0x4c], 0x5bef59d0
mov dword [esp + 0x50], 0x575655e0
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
add dl, 0x3c
xor dl, byte [esp + ecx + 0x14]
add dl, 0xd4
mov byte [esp + ecx + 0x14], dl
inc ecx
cmp ecx, 0x40
jne case.default.0x42d544
push esi
push edi
push ebp
push 0x1f
push ebx
push 0
call eax
lea eax, [esp + 0x64]
push 0x60
push 3
push 0x120089
push eax
push ebp
call fcn.00443c60
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x44bd0c]
jmp dword [0x44be44]
lea eax, [esp + 0x74]
push 0
push eax
push dword [esp + 0x6c]
call fcn.00443f60
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x44bd14]
mov esi, dword [esp + 0x74]
lea eax, [esi + 1]
push eax
call fcn.0040ce10
add esp, 4
mov edi, eax
mov eax, dword [case.0x42d544.5]
nop
nop
jmp eax
mov dword [esp + 0x78], ebp
push 0
push esi
push edi
push dword [esp + 0x70]
call fcn.00444010
add esp, 0x10
mov ecx, dword [case.0x42d544.10]
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
mov dword [esp + 0xc], 0
mov dword [esp + 0x84], edi
jmp dword [eax*4 + 0x44bd3c]
mov eax, dword [esp + 0x74]
mov byte [edi + eax], 0
mov dword [esp + 0xc], 0
mov ebp, edi
nop
mov dword [esp + 0x14], 0x869e9886
mov dword [esp + 0x18], 0x829b849a
mov word [esp + 0x1c], 0x5b75
mov byte [esp + 0x1e], 0x3a
lea eax, [esp + 0x1f]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x65a8b6cb
mov ecx, 0xd0410d77
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x65a8b6b7]
lea edx, [eax - 0x35e9c443]
xor edx, esi
or edx, ecx
mov edi, edx
not edi
mov ebx, edx
and ebx, 2
or edx, 0xffffff62
inc edx
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, esi
sub edx, edi
add edx, eax
mov esi, edx
and esi, 0x11454357
xor edx, 0x11454357
lea edx, [edx + esi*2]
mov esi, edx
xor esi, 0x43
and edx, 0x3c
add edx, edx
sub edx, esi
inc dl
mov byte [esp + eax - 0x65a8b6b7], dl
inc eax
dec ecx
cmp eax, 0x65a8b6d9
jne 0x42d630
movzx ecx, byte [esp + 0x14]
test cl, cl
je 0x42d6e0
lea edi, [esp + 0x14]
mov eax, edi
mov ebx, ebp
jmp 0x42d6b7
movzx ecx, byte [eax]
test cl, cl
je 0x42d6f2
movzx edx, byte [ebp]
test dl, dl
je 0x42d6f0
inc ebp
inc eax
lea esi, [ebx + 1]
cmp dl, cl
je 0x42d6cc
mov ebx, esi
mov ebp, esi
je 0x42d6b0
mov eax, edi
jmp 0x42d6b0
mov ebx, ebp
jmp 0x42d6f2
xor ebx, ebx
xor eax, eax
test ebx, ebx
sete al
mov edi, dword [esp + 0x84]
jmp dword [eax*4 + 0x44bd44]
lea ebp, [ebx + 0xa]
mov eax, ebx
mov dword [esp + 0x70], ebx
movzx eax, byte [ebx + 0xa]
xor ebx, ebx
test al, al
je 0x42d732
mov ecx, ebp
nop
nop
nop
nop
cmp al, 0x22
je 0x42d730
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42d720
jmp 0x42d732
mov ebx, ecx
mov ecx, ebx
sub ecx, ebp
xor eax, eax
cmp ecx, 5
setb al
jmp dword [eax*4 + 0x44bd4c]
xor eax, eax
cmp byte [ebx - 1], 0x74
setne al
jmp dword [eax*4 + 0x44bd54]
xor eax, eax
cmp byte [ebx - 2], 0x78
setne al
jmp dword [eax*4 + 0x44bd5c]
xor eax, eax
cmp byte [ebx - 3], 0x74
setne al
jmp dword [eax*4 + 0x44bd64]
xor eax, eax
cmp byte [ebx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x44bd6c]
mov eax, ecx
inc eax
mov dword [esp], eax
jns 0x42d7a6
mov dword [esp + 0x58], ecx
mov eax, 0xffffffff
jmp 0x42d7b1
jmp dword [0x44bd7c]
mov dword [esp + 0x58], ecx
lea eax, [ecx*2 + 2]
push eax
call fcn.0040ce10
add esp, 4
mov esi, eax
push ebx
push ebp
push dword [esp + 8]
push eax
call fcn.0040ef60
add esp, 0x10
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x6c]
push eax
mov dword [esp + 0x14], esi
push esi
call fcn.00443c60
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44bd84]
mov ebp, ebx
jmp dword [0x44bdf4]
push 0
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x68]
call fcn.00443f60
add esp, 0xc
test eax, eax
setns al
mov esi, dword [esp + 0x5c]
cmp esi, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44bd8c]
jmp dword [0x44bd98]
push esi
call fcn.0040ce10
add esp, 4
push 0
push esi
push eax
push dword [esp + 0x6c]
call fcn.00444010
add esp, 0x10
nop
nop
nop
nop
nop
nop
push esi
call fcn.0040ce10
add esp, 4
mov edi, eax
push 0
push dword [esp + 0x60]
push eax
push dword [esp + 0x6c]
call fcn.00444010
add esp, 0x10
jmp dword [0x44bda0]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44bda4]
mov dword [esp + 0x6c], edi
xor edx, edx
mov ecx, dword [esp + 4]
jmp dword [0x44bdac]
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax], 0
lea eax, [eax + 2]
jne 0x42d8a0
mov ecx, dword [esp + 4]
jmp case.0x42d73e.24
add ecx, 2
test si, si
je 0x42d8d0
mov eax, edx
movzx esi, word [ecx]
mov edx, ecx
cmp si, 0x5c
je 0x42d8b0
mov edx, eax
jmp 0x42d8b0
mov edi, edx
mov ecx, dword [esp + 4]
xor edx, edx
jmp dword [0x44bdb4]
mov ecx, dword [case.0x42d73e.30]
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 + 0x44bdcc]
mov dword [esp + 0x68], 0
mov dword [esp + 8], 0
jmp dword [0x44bdd4]
sub edi, dword [esp + 4]
sar edi, 1
inc edi
mov ecx, dword [esp + 0x58]
mov eax, edi
mov dword [esp + 8], edi
sub ecx, edi
mov dword [esp + 0x68], ecx
jmp dword [0x44bdd4]
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x68]
add eax, 0x1b
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp], eax
mov ecx, dword [esp + 0x58]
sub ecx, dword [esp + 8]
mov dword [esp + 0x14], 0xeceef4d1
mov dword [esp + 0x18], 0xd1c3e9ea
mov dword [esp + 0x1c], 0xceec81d4
mov dword [esp + 0x20], 0x98ddc0c8
mov dword [esp + 0x24], 0xcadadafa
mov dword [esp + 0x28], 0x9cd6ccdc
mov word [esp + 0x2c], 0x829f
mov byte [esp + 0x2e], 0xb6
mov dword [esp + 0x2f], 0
mov edx, 0xef92a19a
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x106d5e7a]
xor eax, edx
mov esi, eax
xor esi, 0x54
and eax, 0x2b
add eax, eax
sub eax, esi
add al, 0x52
mov byte [esp + edx + 0x106d5e7a], al
inc edx
cmp edx, 0xef92a1b9
jne 0x42d9a0
movzx ebx, byte [esp + 0x14]
mov edx, dword [esp]
test bl, bl
je 0x42d9e6
lea eax, [esp + 0x15]
mov edx, dword [esp]
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x42d9db
mov byte [edx], 0
test ecx, ecx
je 0x42da15
mov eax, dword [esp + 8]
lea esi, [eax + ebp]
mov edi, ecx
and edi, 3
je 0x42da19
xor ebx, ebx
movzx eax, byte [esi]
cmp al, 1
sbb esi, 0xffffffff
mov byte [edx + ebx], al
inc ebx
cmp edi, ebx
jne 0x42d9fd
add edx, ebx
sub ecx, ebx
mov ebx, edx
jmp 0x42da19
mov ebx, edx
jmp 0x42da66
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 8]
add edi, eax
mov eax, dword [esp + 0x10]
sub eax, edi
add eax, 0xfffffff5
cmp eax, 3
jb 0x42da66
movzx eax, byte [esi]
cmp al, 1
sbb esi, 0xffffffff
mov byte [edx], al
movzx eax, byte [esi]
cmp al, 1
sbb esi, 0xffffffff
mov byte [edx + 1], al
movzx eax, byte [esi]
cmp al, 1
sbb esi, 0xffffffff
mov byte [edx + 2], al
movzx eax, byte [esi]
cmp al, 1
sbb esi, 0xffffffff
lea ebx, [edx + 4]
mov byte [edx + 3], al
mov edx, ebx
add ecx, 0xfffffffc
jne 0x42da31
mov byte [ebx], 0
mov ecx, dword [esp + 0xa0]
push dword [esp + 0x5c]
push dword [esp + 0x70]
push dword [esp + 8]
call fcn.0040d960
mov ebx, dword [esp + 0x10]
jmp case.0x42d73e.34
mov ebx, ecx
mov byte [ebx], 0
mov ecx, dword [esp + 0xa0]
push dword [esp + 0x5c]
push dword [esp + 0x70]
push dword [esp + 8]
call fcn.0040d960
mov ebx, esi
jmp dword [0x44bde0]
mov ecx, ebx
xor ecx, 2
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 8]
lea eax, [esi + edx]
sub ecx, eax
mov dword [esp + 0x10], ecx
mov edi, ebx
sub edi, eax
mov ecx, dword [esp + 0x68]
mov eax, ecx
and eax, 0x1b
xor ecx, 0x1b
lea eax, [ecx + eax*2]
mov ecx, ebx
sub ecx, esi
sub ecx, edx
add ecx, 0xfffffff6
mov dword [esp + 0x7c], ecx
add edi, 0xfffffff5
mov dword [esp + 0x80], edi
push eax
call fcn.0040ce10
add esp, 4
mov edi, dword [esp + 0x58]
sub edi, esi
mov dword [esp + 0x14], 0xeceef4d1
mov dword [esp + 0x18], 0xd1c3e9ea
mov dword [esp + 0x1c], 0xceec81d4
mov dword [esp + 0x20], 0x98ddc0c8
mov dword [esp + 0x24], 0xcadadafa
mov dword [esp + 0x28], 0x9cd6ccdc
mov word [esp + 0x2c], 0x829f
mov byte [esp + 0x2e], 0xb6
mov dword [esp + 0x2f], 0
mov ecx, 0xef92a19a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x106d5e7a]
xor edx, ecx
mov esi, edx
xor esi, 0x54
and edx, 0x2b
add edx, edx
sub edx, esi
add dl, 0x52
mov byte [esp + ecx + 0x106d5e7a], dl
inc ecx
cmp ecx, 0xef92a1b9
jne 0x42db50
movzx edx, byte [esp + 0x14]
mov ecx, eax
test dl, dl
je 0x42db9b
lea esi, [esp + 0x15]
mov ecx, eax
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x42db90
mov dword [esp], eax
mov byte [ecx], 0
mov esi, ebx
test edi, edi
je 0x42da87
mov eax, dword [esp + 8]
lea edx, [eax + ebp]
and dword [esp + 0x10], 3
je 0x42dbea
xor eax, eax
mov edi, dword [esp + 0x10]
nop
movzx ebx, byte [edx]
cmp bl, 1
sbb edx, 0xffffffff
mov byte [ecx + eax], bl
inc eax
cmp edi, eax
jne 0x42dbc0
add ecx, eax
mov edi, dword [esp + 0x7c]
sub edi, eax
mov ebx, ecx
cmp dword [esp + 0x80], 3
jae 0x42dc00
jmp 0x42da89
cmp dword [esp + 0x80], 3
jb 0x42da89
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edx]
cmp bl, 1
sbb edx, 0xffffffff
mov byte [ecx], bl
movzx ebx, byte [edx]
cmp bl, 1
sbb edx, 0xffffffff
mov byte [ecx + 1], bl
movzx ebx, byte [edx]
cmp bl, 1
sbb edx, 0xffffffff
mov byte [ecx + 2], bl
movzx eax, byte [edx]
cmp al, 1
sbb edx, 0xffffffff
lea ebx, [ecx + 4]
mov byte [ecx + 3], al
mov ecx, ebx
add edi, 0xfffffffc
jne 0x42dc00
jmp 0x42da89
mov ecx, dword [esp + 0xc]
and cl, 1
or cl, al
mov dword [esp + 0xc], ecx
mov edi, dword [esp + 0x6c]
jmp dword [0x44bde4]
push dword [esp]
call fcn.0040ce20
add esp, 4
jmp dword [0x44bdec]
jmp dword [0x44bdec]
push edi
call fcn.0040ce20
add esp, 4
mov edi, ebx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x14], 0x504f4e4d
mov dword [esp + 0x18], 0
mov ecx, 0xd
mov edx, 0xf2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 7]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
add bl, 0xbf
mov byte [esp + ecx + 7], bl
inc ecx
dec edx
cmp ecx, 0x15
jne 0x42dca0
mov ecx, dword [0x44f534]
test ecx, ecx
mov ebx, edi
je 0x42dcf8
mov edx, dword [esp + 0x14]
xor esi, esi
mov edi, dword [0x44f538]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42dcf0
inc esi
cmp ecx, esi
jne 0x42dce0
jmp 0x42dcf8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42dd13
mov ebp, ebx
jmp dword [0x44bdf4]
push dword [esp + 4]
call fcn.0040ce20
add esp, 4
mov ebp, ebx
jmp case.0x42d73e.12
push eax
push 1
push dword [0x44f53c]
push ecx
call fcn.00440f10
add esp, 0x10
mov ebp, ebx
jmp dword [0x44bdf4]
jmp dword [0x44be04]
mov eax, dword [0x44be18]
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44be34]