Function at 0x42bea2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x458
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x54], 0x23962193
mov dword [esp + 0x58], 0x27872581
mov dword [esp + 0x5c], 0x3b443985
mov dword [esp + 0x60], 0x3fb63d99
mov dword [esp + 0x64], 0x33323195
mov word [esp + 0x68], 0
mov eax, 0x88
mov ecx, 7
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x34]
lea edx, [eax - 0x80]
mov edi, ecx
and edi, 0xe
and edx, 0x31
or edx, edi
mov edi, eax
and edi, esi
xor edx, 0x8e
or edx, esi
xor edx, edi
add dl, 0x58
mov byte [esp + eax - 0x34], dl
inc eax
dec ecx
cmp eax, 0x9e
jne case.default.0x42a173
lea eax, [esp + 0x54]
lea ecx, [esp + 0x34]
push eax
call fcn.0043db90
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44bdfc]
lea ecx, [esp + 0x34]
push 0x410
call fcn.0043dda0
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44be04]
mov dword [esp + 0x54], 0x5e771065
mov dword [esp + 0x58], 0x28267d58
mov dword [esp + 0x5c], 0x542d2779
mov dword [esp + 0x60], 0x432a2a75
mov dword [esp + 0x64], 0x386f7642
mov dword [esp + 0x68], 0x4b546a6d
mov dword [esp + 0x6c], 0x46416a4e
mov dword [esp + 0x70], 0x426b445f
mov dword [esp + 0x74], 0x9aa85256
mov dword [esp + 0x78], 0xba9f85a9
mov dword [esp + 0x7c], 0x5f8e9999
mov word [esp + 0x80], 0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0xde
xor al, byte [esp + ebx + 0x54]
add al, 0xaa
mov byte [esp + ebx + 0x54], al
inc ebx
cmp ebx, 0x2e
jne case.default.0x42a23a
lea eax, [esp + 0x48]
lea ecx, [esp + 0x34]
push 0
push 0x2b
lea edx, [esp + 0x5c]
push edx
push eax
call fcn.0043e900
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
xor eax, eax
cmp edi, esi
sete al
jmp dword [eax*4 + 0x44be0c]
mov eax, esi
sub eax, edi
sar eax, 3
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.0040c730
add esp, 4
mov dword [esp + 0x30], 0
xor ecx, ecx
cmp edi, esi
setne cl
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
jmp dword [ecx*4 + 0x44be14]
mov ebx, dword [esp + 0x30]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x44be1c]
jmp dword [0x44be6c]
add edi, 8
xor eax, eax
mov esi, dword [esp + 0x18]
cmp edi, esi
setne al
jmp dword [eax*4 + 0x44be14]
mov dword [esp + 0xc], edi
jmp dword [0x44be28]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
push ebx
call fcn.00404930
add esp, 4
add edi, 8
xor eax, eax
cmp edi, esi
setne al
jmp dword [eax*4 + 0x44be14]
mov edx, ebx
sub edx, esi
mov eax, edx
xor eax, 1
mov ecx, edx
and ecx, 0xfffffffe
add ecx, ecx
sub ecx, eax
lea edi, [edx + edx*2]
shr edi, 2
movzx eax, byte [esi + ecx]
cmp eax, 0x3d
je 0x42a317
cmp eax, 0x2e
jne 0x42a318
dec edi
movzx eax, byte [esi + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0x28], edx
je 0x42a32b
cmp eax, 0x2e
jne 0x42a32c
dec edi
mov eax, edi
and eax, 1
mov ecx, edi
mov dword [esp + 0x44], edi
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
call fcn.0040c730
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], esi
cmp ebx, esi
je 0x42a448
xor ebx, ebx
mov esi, 2
jmp 0x42a370
lea eax, [esi + 4]
add esi, 2
cmp esi, edx
mov esi, eax
jae 0x42a448
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x10]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.00421230
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.00421230
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
mov byte [edx + ebx], cl
mov ecx, dword [esp + 8]
lea ebx, [ecx + 1]
mov edx, dword [esp + 0x28]
cmp esi, edx
jae 0x42a360
mov byte [esp + 7], al
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + esi]
push eax
call fcn.00421230
mov edx, dword [esp + 0x2c]
add esp, 4
cmp al, 0x40
je 0x42a360
mov ch, al
movzx eax, byte [esp + 7]
shl al, 4
mov cl, ch
shr cl, 2
and cl, 0xf
or cl, al
mov edi, dword [esp + 8]
lea ebx, [edi + 2]
mov eax, dword [esp + 0x1c]
mov byte [eax + edi + 1], cl
lea eax, [esi + 1]
cmp eax, edx
jae 0x42a360
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + esi + 1]
push eax
mov byte [esp + 0xb], ch
call fcn.00421230
movzx ecx, byte [esp + 0xb]
mov edx, dword [esp + 0x2c]
add esp, 4
cmp al, 0x40
je 0x42a360
shl cl, 6
add al, cl
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 8]
mov byte [ecx + ebx + 2], al
add ebx, 3
jmp 0x42a360
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
mov byte [esi + eax], 0
push esi
call fcn.00403d70
add esp, 4
mov ebx, eax
jmp dword [0x44be54]
push esi
call fcn.0040c740
add esp, 4
push ebx
call fcn.004046c0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44be5c]
mov dword [esp + 0x10], eax
mov dword [esp + 8], ebx
mov dword [esp + 0x20], 0x298c9091
mov dword [esp + 0x24], 0
mov ecx, 0x1e09ae47
mov ebx, 0x61f651b8
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x1e09ae27]
mov edi, eax
and edi, ecx
mov esi, edi
and esi, 0x4d
mov edx, edi
and edx, 2
or edi, 2
imul edi, edx
xor edx, 2
imul edx, esi
add edi, edx
mov edx, edi
xor edx, ecx
and edi, ebx
add edi, edi
sub edx, edi
add dl, al
add dl, 0x9d
mov byte [esp + ecx - 0x1e09ae27], dl
inc ecx
dec ebx
cmp ecx, 0x1e09ae4f
jne 0x42a4b0
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x14]
call fcn.00404610
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44be64]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
jmp 0x42a557
movzx ecx, byte [eax]
test cl, cl
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
je 0x42a54b
inc eax
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x42a540
mov word [edx], 0x203a
add edx, 2
mov edi, dword [esp + 0xc]
movzx eax, byte [esp + 0x54]
test al, al
je 0x42a57b
lea ecx, [esp + 0x55]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x42a570
mov byte [edx], 0xa
inc edx
mov dword [esp + 0x14], edx
mov al, 1
mov dword [esp + 0x30], eax
jmp 0x42a2d7
mov byte [esp + 0x453], 0
movzx eax, byte [esp + 0x54]
xor esi, esi
test al, al
je 0x42a5c1
lea ecx, [esp + 0x54]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x42a5bf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42a5b0
jmp 0x42a5c1
mov esi, ecx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x44be44]
movzx eax, byte [esi + 1]
inc esi
xor ebx, ebx
test al, al
je 0x42a5f1
mov ecx, esi
nop
nop
nop
nop
cmp al, 0x2e
je 0x42a5ef
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42a5e0
jmp 0x42a5f1
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44be4c]
mov eax, 1
jmp dword [eax*4 + 0x44be3c]
mov esi, dword [edi]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 4]
lea ebx, [esp + 0x54]
push 0x400
push 0
push ebx
call fcn.0040c7d0
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push 0
push 0x400
push ebx
push edi
mov edi, dword [esp + 0x20]
push esi
call fcn.0043e770
mov esi, dword [edi]
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 4]
push 0x400
push 0
lea ebx, [esp + 0x5c]
push ebx
call fcn.0040c7d0
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push 0
push 0x400
push ebx
push edi
mov edi, dword [esp + 0x20]
push esi
call fcn.0043e770
jmp dword [0x44be2c]
cmp eax, 0xc0000000
setae al
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x24]
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44be34]
xor eax, eax
jmp dword [eax*4 + 0x44be3c]
xor ebx, ebx
test edi, edi
jne 0x42a75e
jmp case.0x42a173.0
mov esi, dword [esp + 0x14]
mov byte [esi], 0
mov dword [esp + 0x54], 0xa7a2a171
mov dword [esp + 0x58], 0xa38f8eb5
mov dword [esp + 0x5c], 0xb8bcbeb1
mov dword [esp + 0x60], 0xbaaa9673
mov dword [esp + 0x64], 0x8f75b481
mov dword [esp + 0x68], 0x8983868b
mov dword [esp + 0x6c], 0x93964f8b
mov dword [esp + 0x70], 0x1598
mov byte [esp + 0x74], 0
xor eax, eax
nop
nop
nop
mov ecx, eax
add cl, 0xc
xor cl, byte [esp + eax + 0x54]
add cl, 0xc4
mov byte [esp + eax + 0x54], cl
inc eax
cmp eax, 0x21
jne 0x42a710
mov edx, dword [esp + 0x2c]
sub esi, edx
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 8]
push esi
push edx
push eax
call fcn.0040d2c0
mov ebx, eax
jmp dword [0x44be6c]
push dword [esp + 0x2c]
call fcn.0040c740
add esp, 4
and bl, 1
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
test edi, edi
je case.0x42a173.0
cmp edi, esi
je case.0x42a173.0
push edi
call fcn.0040c740
add esp, 4
lea ecx, [esp + 0x34]
call fcn.0043df20
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
cmp dword [esp + 0x5c], 0xc
setne al
jmp dword [eax*4 + 0x44c03c]
jmp dword [0x44c050]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + eax + 0x90]
mov eax, 0xfffffffe
mov dword [esp + 0x34], esi
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x42c4a0
sar eax, 1
mov ecx, dword [esp + 0x48]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 0xd
lea eax, [edx*2 + 0x1a]
test ecx, ecx
jns 0x42c4c9
mov eax, 0xffffffff
push eax
call fcn.0040c730
add esp, 4
mov ecx, dword [esp + 0x40]
movzx edx, word [ecx]
mov ecx, eax
test dx, dx
je 0x42c501
mov edi, dword [esp + 0x58]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x42c4f0
mov word [ecx], 0x5c
mov dword [esp], 0x13c611b4
mov dword [esp + 4], 0xef4ded5b
mov dword [esp + 8], 0xeb5ee949
mov dword [esp + 0xc], 0xe735e504
mov dword [esp + 0x10], 0xe343e16c
mov dword [esp + 0x14], 0xff43fd70
mov word [esp + 0x18], 0xf9f8
mov edx, esp
mov byte [edx + 0x1e], 0
mov dword [edx + 0x1a], 0
mov esi, 0x7c
mov edi, 0x83
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi - 0x7c]
lea ebp, [ebx + ebx]
not ebp
add ebp, ebx
mov edx, ebp
xor edx, 0x59
or ebp, 0xa6
and ebp, edx
mov edx, ebx
xor edx, 0xa6
or ebx, 0x59
and ebx, edx
or ebx, ebp
mov ebp, edi
and ebp, 0xa6
mov edx, esi
and edx, 0x59
or edx, ebp
xor edx, ebx
add dl, 0x94
mov byte [esp + esi - 0x7c], dl
inc esi
dec edi
cmp esi, 0x9b
jne 0x42c560
add ecx, 2
mov esi, dword [esp + 0x34]
movzx edx, word [esi]
test dx, dx
je 0x42c5d1
add esi, 2
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x42c5c0
mov word [ecx], 0
movzx edx, word [esp]
test dx, dx
je 0x42c601
lea esi, [esp + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x42c5f0
mov word [ecx], 0
lea ecx, [esp + 0x54]
push 0x60
push 3
push 0x120089
push ecx
push eax
call fcn.00443b30
add esp, 0x14
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + eax + 0x90]
mov esi, 0xfffffffe
nop
nop
nop
cmp word [edi + esi + 2], 0
lea esi, [esi + 2]
jne 0x42c630
mov edx, esi
sar edx, 1
mov eax, dword [esp + 0x48]
lea ecx, [edx + eax]
mov dword [esp + 0x50], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x42c65f
mov eax, 0xffffffff
mov dword [esp + 0x34], edi
push eax
call fcn.0040c730
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x40]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x42c6a1
mov edx, dword [esp + 0x58]
mov eax, edi
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 0x42c690
mov dword [esp + 0x3c], edi
mov word [eax], 0x5c
mov dword [esp], 0x13c611b4
mov dword [esp + 4], 0xef4ded5b
mov dword [esp + 8], 0xeb5ee949
mov dword [esp + 0xc], 0xe735e504
mov dword [esp + 0x10], 0xe343e16c
mov dword [esp + 0x14], 0xff43fd70
mov word [esp + 0x18], 0xf9f8
mov ecx, esp
mov byte [ecx + 0x1e], 0
mov dword [ecx + 0x1a], 0
mov ecx, 0x7c
mov edx, 0x83
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x7c]
lea ebx, [edi + edi]
not ebx
add ebx, edi
mov ebp, ebx
xor ebp, 0x59
or ebx, 0xa6
and ebx, ebp
mov ebp, edi
xor ebp, 0xa6
or edi, 0x59
and edi, ebp
or edi, ebx
mov ebp, edx
and ebp, 0xa6
mov ebx, ecx
and ebx, 0x59
or ebx, ebp
xor ebx, edi
add bl, 0x94
mov byte [esp + ecx - 0x7c], bl
inc ecx
dec edx
cmp ecx, 0x9b
jne 0x42c700
add eax, 2
mov ebp, dword [esp + 0x34]
movzx ecx, word [ebp]
test cx, cx
je 0x42c771
lea edx, [ebp + 2]
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42c760
mov word [eax], 0
movzx ecx, word [esp]
test cx, cx
mov edi, dword [esp + 0x3c]
je 0x42c7a1
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 0x42c790
mov word [eax], 0
lea eax, [esp + 0x54]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00443b30
add esp, 0x14
jmp dword [0x44c054]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c05c]
xor ebx, ebx
jmp dword [0x44c0ec]
lea eax, [esp + 0x70]
push 0
push eax
push dword [esp + 0x5c]
call fcn.00443e60
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44c064]
jmp dword [0x44c06c]
mov eax, dword [esp + 0x54]
mov dword [esp], 0x1c1d1a1b
mov byte [esp + 4], 0
mov ecx, 0xd8258f3a
nop
nop
nop
movzx edx, byte [esp + ecx + 0x27da70c6]
xor edx, ecx
add edx, 0x3d1e3ca4
mov edi, edx
xor edi, 0x38
and edx, 0x38
lea edx, [edi + edx*2]
add dl, 2
mov byte [esp + ecx + 0x27da70c6], dl
inc ecx
cmp ecx, 0xd8258f3f
jne 0x42c840
mov ecx, dword [0x44fd60]
test ecx, ecx
je 0x42c8a9
mov edx, dword [esp]
xor edi, edi
mov ebp, dword [0x44fd64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + edi*8], 0x7e776f1
je 0x42c8a1
inc edi
cmp ecx, edi
jne 0x42c890
jmp 0x42c8a9
mov ecx, dword [ebp + edi*8 + 4]
cmp ecx, edx
jne 0x42c8b7
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
jmp dword [0x44c0ec]
push eax
push 1
push dword [0x44fd68]
push ecx
call fcn.004407f0
add esp, 0x10
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
jmp dword [0x44c0ec]
mov edi, dword [esp + 0x70]
lea eax, [edi + 1]
push eax
call fcn.0040c730
add esp, 4
push 0
push edi
push eax
push dword [esp + 0x60]
call fcn.00443f30
add esp, 0x10
mov edi, dword [esp + 0x70]
lea eax, [edi + 1]
push eax
call fcn.0040c730
add esp, 4
mov ebp, eax
push 0
push edi
push eax
push dword [esp + 0x60]
call fcn.00443f30
add esp, 0x10
jmp dword [0x44c078]
jmp dword [0x44c044]
push dword [esp + 0x40]
call fcn.0040c740
add esp, 4
mov eax, dword [esp + 0x60]
and al, 1
add esp, 0xe0
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0xa76b0042]
inc edx
add byte [ebx - 0x59], ch
inc edx
add byte [esi + 0x410042a1], dl
mov byte [0xa6b00042], al
inc edx
add byte [esi - 0x3affbd5e], dl
mov byte [0xa2a80042], al
inc edx
add byte [edi + 0x100042a6], bh
cmpsb byte [esi], byte es:[edi]
inc edx
add byte [ecx - 0x5a], cl
inc edx
add byte [eax + 0x100042a6], cl
cmpsb byte [esi], byte es:[edi]
inc edx
add byte [eax], al
cmpsb byte [esi], byte es:[edi]
inc edx
add byte [edi - 0x4fffbd5a], ah
mov byte [0xa5900042], al
inc edx
add byte [eax - 0x30ffbd5e], dh
movsd dword es:[edi], dword [esi]
inc edx
add byte [eax - 0xeffbd5e], dh
mov byte [0xa4650042], al
inc edx
add byte [esi - 0x5c], ch
inc edx
add bh, cl
mov byte [0xa4850042], al
inc edx
add byte [ebx], dl
movsd dword es:[edi], dword [esi]
inc edx
add byte [0x430042a5], ah
cmpsd dword [esi], dword es:[edi]
inc edx
add byte [edi - 0x59], cl
inc edx
add byte [ebx - 0x57], al
test eax, 0xa9690042