Function at 0x42ed59
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov eax, dword [0x45303c]
mov dword [esp + 0x1c], 0x8f4f896d
mov dword [esp + 0x20], 0x83328d3c
mov dword [esp + 0x24], 0x87278144
mov dword [esp + 0x28], 0x9b3b8530
mov dword [esp + 0x2c], 0x9f32997d
mov dword [esp + 0x30], 0x93219d4e
mov dword [esp + 0x34], 0x97339124
mov dword [esp + 0x38], 0x6bcb9524
mov dword [esp + 0x3c], 0x6f9169cc
mov dword [esp + 0x40], 0x63ce6d93
mov dword [esp + 0x44], 0x67c361d7
mov dword [esp + 0x48], 0x7bcd65d3
mov dword [esp + 0x4c], 0x7fcd79c1
mov dword [esp + 0x50], 0x73807dce
mov dword [esp + 0x54], 0x77cb71f8
mov dword [esp + 0x58], 0x4b4a75c8
mov dword [esp + 0x5c], 0
mov ecx, 0x62
mov edx, 0x9d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x46]
lea esi, [ebx + ebx]
not esi
add esi, ebx
and esi, ecx
and ebx, edx
or ebx, esi
add bl, 0x16
mov byte [esp + ecx - 0x46], bl
inc ecx
dec edx
cmp ecx, 0xa6
jne 0x42e520
lea esi, [esp + 0x88]
lea ecx, [esp + 0x1c]
push esi
push 0
push 0
push 0x1f
push ecx
push 0
call eax
mov edi, dword [esp + 0x88]
test edi, edi
jns 0x42e56c
mov eax, 0xffffffff
jmp 0x42e56f
lea eax, [edi + edi]
push eax
call fcn.0040c710
add esp, 4
mov dword [esp + 0x80], eax
mov eax, dword [0x45303c]
mov dword [esp + 0x1c], 0x19d51bf7
mov dword [esp + 0x20], 0xe556e7a8
mov dword [esp + 0x24], 0xe14de328
mov dword [esp + 0x28], 0xed41ef5c
mov dword [esp + 0x2c], 0xe94eeb07
mov dword [esp + 0x30], 0xf547f73a
mov dword [esp + 0x34], 0xf159f348
mov dword [esp + 0x38], 0xfd51ff40
mov dword [esp + 0x3c], 0xf90ffb50
mov dword [esp + 0x40], 0xc562c70d
mov dword [esp + 0x44], 0xc169c379
mov dword [esp + 0x48], 0xcd73cf7d
mov dword [esp + 0x4c], 0xc97bcb7b
mov dword [esp + 0x50], 0xd524d77a
mov dword [esp + 0x54], 0xd161d36c
mov dword [esp + 0x58], 0xdddedf64
mov ecx, 0x7b
mov edx, 0x84
nop
nop
movzx ebx, byte [esp + ecx - 0x5f]
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
and ebp, ecx
and ebx, edx
or ebx, ebp
add bl, 0x99
mov byte [esp + ecx - 0x5f], bl
inc ecx
dec edx
cmp ecx, 0xbb
jne case.default.0x42e664
push esi
push edi
mov ebp, dword [esp + 0x88]
push ebp
push 0x1f
lea edi, [esp + 0x2c]
push edi
push 0
call eax
lea eax, [esp + 0x70]
push 0x60
push 3
push 0x120089
push eax
push ebp
call fcn.00446250
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f19c]
push dword [esp + 0x7c]
call fcn.0040c720
add esp, 4
mov eax, dword [case.0x42d0b3.115]
mov ebp, dword [esp + 0x80]
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44f2d0]
push ebp
call fcn.0040c720
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
call fcn.0040c720
add esp, 4
jmp dword [0x44f2d4]
mov eax, ebx
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp + 0x7c]
mov byte [ebp + eax], 0
mov dword [esp + 0x18], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x1c], 0x7a626062
mov dword [esp + 0x20], 0x7e677466
mov word [esp + 0x24], 0x3f15
mov byte [esp + 0x26], 0xde
lea eax, [esp + 0x27]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xb91d0e2e
nop
movzx ecx, byte [esp + eax + 0x46e2f1ee]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x1a
mov byte [esp + eax + 0x46e2f1ee], cl
inc eax
cmp eax, 0xb91d0e3e
jne 0x42e810
movzx ecx, byte [esp + 0x1c]
test cl, cl
je 0x42e880
lea eax, [esp + 0x1c]
mov esi, ebp
jmp 0x42e859
movzx ecx, byte [eax]
test cl, cl
mov esi, edi
je 0x42e892
movzx edx, byte [ebp]
test dl, dl
je 0x42e890
inc ebp
inc eax
mov edi, esi
inc esi
cmp dl, cl
je 0x42e86e
mov edi, esi
mov ebp, esi
je 0x42e850
lea eax, [esp + 0x1c]
jmp 0x42e850
mov esi, ebp
jmp 0x42e892
xor esi, esi
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44f1d4]
lea ebp, [esi + 0xa]
movzx eax, byte [esi + 0xa]
xor edx, edx
test al, al
je 0x42e8c2
mov ecx, ebp
nop
cmp al, 0x22
je 0x42e8c0
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42e8b0
jmp 0x42e8c2
mov edx, ecx
mov ecx, edx
sub ecx, ebp
xor eax, eax
cmp ecx, 5
setb al
jmp dword [eax*4 + 0x44f1dc]
xor eax, eax
cmp byte [edx - 1], 0x74
setne al
jmp dword [eax*4 + 0x44f1f4]
xor eax, eax
cmp byte [edx - 2], 0x78
setne al
jmp dword [eax*4 + 0x44f1fc]
xor eax, eax
cmp byte [edx - 3], 0x74
setne al
jmp dword [eax*4 + 0x44f214]
xor eax, eax
cmp byte [edx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x44f21c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x10], edx
mov eax, ecx
inc eax
mov dword [esp + 0x60], ecx
lea eax, [ecx + ecx + 2]
jns 0x42e92f
mov eax, 0xffffffff
push eax
call fcn.0040c710
add esp, 4
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x60]
lea ecx, [eax + ecx*2]
mov edx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 4], ecx
cmp eax, ecx
mov edi, dword [esp + 0x10]
jae 0x42e9a3
mov edx, dword [esp + 0x14]
cmp ebp, edi
jae 0x42e9a3
mov edx, dword [esp + 0x14]
mov esi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x42e9a3
lea eax, [esp + 0x1c]
push eax
push edi
push esi
mov dword [esp + 0xc], edx
call fcn.00411100
mov edx, dword [esp + 0xc]
add esp, 0xc
movzx ecx, word [esp + 0x1c]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 4]
jae 0x42e9a3
add esi, eax
cmp esi, edi
jb 0x42e970
mov word [edx], 0
lea eax, [esp + 0x6c]
push 0x60
push 3
push 0x120089
push eax
push dword [esp + 0x24]
call fcn.00446250
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f234]
mov eax, dword [esp + 0x10]
mov ebp, eax
jmp dword [0x44f2a4]
mov eax, dword [case.0x42e9c7.29]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
lea eax, [esp + 0x68]
push 0
push eax
push dword [esp + 0x74]
call fcn.00446550
add esp, 0xc
test eax, eax
setns al
mov esi, dword [esp + 0x68]
cmp esi, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44f23c]
push esi
call fcn.0040c710
add esp, 4
mov dword [esp + 0x74], eax
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x78]
call fcn.00446610
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44f244]
xor ecx, ecx
mov eax, dword [esp + 0x14]
jmp 0x42ea68
add eax, 2
test dx, dx
je 0x42ea79
mov esi, ecx
movzx edx, word [eax]
mov ecx, eax
cmp dx, 0x5c
je 0x42ea60
mov ecx, esi
jmp 0x42ea60
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x44f24c]
mov dword [esp + 0x64], 0
xor esi, esi
jmp dword [0x44f258]
sub esi, dword [esp + 0x14]
sar esi, 1
inc esi
mov eax, dword [esp + 0x60]
sub eax, esi
mov dword [esp + 0x64], eax
jmp dword [0x44f258]
mov ecx, dword [esp + 0x18]
and cl, 1
or cl, al
mov dword [esp + 0x18], ecx
jmp dword [0x44f264]
push dword [esp + 8]
call fcn.0040c720
add esp, 4
nop
nop
nop
jmp dword [0x44f278]
jmp dword [0x44f27c]
push edi
call fcn.0040c720
add esp, 4
mov eax, dword [case.0x42e9c7.2]
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], 0x282b2a25
mov word [esp + 0x20], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x37
xor dl, byte [esp + ecx + 0x1c]
add dl, 0xed
mov byte [esp + ecx + 0x1c], dl
inc ecx
cmp ecx, 6
jne 0x42eb10
mov ecx, dword [0x453040]
test ecx, ecx
je 0x42eb58
mov edx, dword [esp + 0x1c]
xor esi, esi
mov edi, dword [0x453044]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42eb50
inc esi
cmp ecx, esi
jne 0x42eb40
jmp 0x42eb58
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42eb77
mov eax, dword [esp + 0x10]
mov ebp, eax
jmp dword [0x44f2a4]
push dword [esp + 0x14]
mov ebp, eax
call fcn.0040c720
add esp, 4
jmp case.0x42e9c7.29
push eax
push 1
push dword [0x453048]
push ecx
call fcn.00443090
add esp, 0x10
mov eax, dword [esp + 0x10]
mov ebp, eax
jmp dword [0x44f2a4]
mov eax, dword [esp + 0x64]
add eax, 0x1b
push eax
call fcn.0040c710
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x60]
mov eax, esi
mov dword [esp + 4], esi
sub ecx, esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], 0x585a58bb
mov dword [esp + 0x20], 0x57594b46
mov dword [esp + 0x24], 0x56b8e348
mov dword [esp + 0x28], 0xac736454
mov dword [esp + 0x2c], 0x62766a8e
mov dword [esp + 0x30], 0xa06a6868
mov word [esp + 0x34], 0xa2a1
mov byte [esp + 0x36], 0xf2
mov dword [esp + 0x37], 0
xor esi, esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], esi
movzx ecx, byte [esp + edx + 0x1c]
mov esi, dword [esp]
and esi, 0x26
mov edi, edx
xor edi, 0xd346cd3
add edi, esi
lea esi, [ecx + ecx]
not esi
add esi, ecx
and esi, edi
lea eax, [edi + edi]
not eax
add eax, edi
mov edi, ecx
not edi
or edi, eax
add ecx, edi
inc ecx
or ecx, esi
mov esi, dword [esp]
mov eax, ecx
xor eax, 0xe2d74862
and ecx, 0x1d28b79d
add ecx, ecx
sub ecx, eax
mov eax, ecx
and eax, 1
xor ecx, 1
lea eax, [ecx + eax*2]
add al, 0x42
mov byte [esp + edx + 0x1c], al
inc edx
add esi, 2
cmp edx, 0x1f
jne 0x42ec10
mov eax, dword [esp + 4]
lea edx, [eax + ebp]
movzx ecx, byte [esp + 0x1c]
mov eax, dword [esp + 8]
test cl, cl
je 0x42ec9b
lea esi, [esp + 0x1d]
mov eax, dword [esp + 8]
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x42ec90
mov byte [eax], 0
mov edi, dword [esp + 0xc]
test edi, edi
je 0x42ecee
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 4]
add esi, ecx
mov ecx, dword [esp + 0x10]
sub ecx, esi
add ecx, 0xfffffff5
and edi, 3
je 0x42ecf2
mov dword [esp], ecx
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax + esi], cl
inc esi
cmp edi, esi
jne 0x42ecd0
add eax, esi
sub dword [esp + 0xc], esi
mov esi, eax
mov ecx, dword [esp]
jmp 0x42ecf2
mov esi, eax
jmp 0x42ed39
cmp ecx, 3
mov edi, dword [esp + 0xc]
jb 0x42ed39
nop
nop
nop
nop
nop
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax], cl
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax + 1], cl
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax + 2], cl
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
lea esi, [eax + 4]
mov byte [eax + 3], cl
mov eax, esi
add edi, 0xfffffffc
jne 0x42ed00
mov byte [esi], 0
mov ecx, dword [esp + 0xa0]
push dword [esp + 0x68]
mov edi, dword [esp + 0x78]
push edi
push dword [esp + 0x10]
call fcn.0040d180
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x64]
add eax, 0x1b
push eax
call fcn.0040c710
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x60]
mov eax, esi
mov dword [esp + 4], esi
sub ecx, esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], 0x585a58bb
mov dword [esp + 0x20], 0x57594b46
mov dword [esp + 0x24], 0x56b8e348
mov dword [esp + 0x28], 0xac736454
mov dword [esp + 0x2c], 0x62766a8e
mov dword [esp + 0x30], 0xa06a6868
mov word [esp + 0x34], 0xa2a1
mov byte [esp + 0x36], 0xf2
mov dword [esp + 0x37], 0
xor esi, esi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], esi
movzx eax, byte [esp + edx + 0x1c]
mov esi, dword [esp]
and esi, 0x26
mov edi, edx
xor edi, 0xd346cd3
add edi, esi
lea esi, [eax + eax]
not esi
add esi, eax
and esi, edi
lea ecx, [edi + edi]
not ecx
add ecx, edi
mov edi, eax
not edi
or edi, ecx
add eax, edi
inc eax
or eax, esi
mov esi, dword [esp]
mov ecx, eax
xor ecx, 0xe2d74862
and eax, 0x1d28b79d
add eax, eax
sub eax, ecx
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add al, 0x42
mov byte [esp + edx + 0x1c], al
inc edx
add esi, 2
cmp edx, 0x1f
jne 0x42edd0
mov eax, dword [esp + 4]
lea ecx, [eax + ebp]
movzx eax, byte [esp + 0x1c]
mov edx, dword [esp + 8]
test al, al
je 0x42ee5b
lea esi, [esp + 0x1d]
mov edx, dword [esp + 8]
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x42ee50
mov byte [edx], 0
mov edi, dword [esp + 0xc]
test edi, edi
je 0x42eead
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 4]
add esi, eax
mov eax, dword [esp + 0x10]
sub eax, esi
add eax, 0xfffffff5
and edi, 3
je 0x42eeb1
mov dword [esp], eax
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx + esi], al
inc esi
cmp edi, esi
jne 0x42ee90
add edx, esi
sub dword [esp + 0xc], esi
mov esi, edx
mov eax, dword [esp]
jmp 0x42eeb1
mov esi, edx
jmp 0x42eef5
cmp eax, 3
mov edi, dword [esp + 0xc]
jb 0x42eef5
nop
nop
nop
nop
nop
nop
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx], al
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx + 1], al
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx + 2], al
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
lea esi, [edx + 4]
mov byte [edx + 3], al
mov edx, esi
add edi, 0xfffffffc
jne 0x42eec0
mov byte [esi], 0
mov ecx, dword [esp + 0xa0]
push dword [esp + 0x68]
mov edi, dword [esp + 0x78]
push edi
push dword [esp + 0x10]
call fcn.0040d180
mov esi, dword [esp + 4]
jmp dword [0x44f25c]
int3
out 0x42, al
add byte [ebx - 0x1a], dh
inc edx
add byte [edx], al
out 0x42, eax
add byte [edi - 0x22ffbd1a], bl
out 0x42, al
add byte [edi + 0x10042], ch
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
lodsb al, byte [esi]
out 0x42, eax
add al, al
out 0x42, eax
add al, al
out 0x42, eax
add dl, al
out 0x42, eax
add al, al
out 0x42, eax
add byte [eax - 0x22ffbd18], ah
out 0x42, al
add ch, dl
call 0xea24f224
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ch, dl
call 0x45f234
add byte [eax], al
in eax, 0xe8
inc edx
add al, ah
jmp 0xe939f240
jmp 0xea36f27c