Function at 0x42c160
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], 0x21aa27a9
mov dword [esp + 0x58], 0x3d81239f
mov dword [esp + 0x5c], 0x39483f8b
mov dword [esp + 0x60], 0x35b23b87
mov dword [esp + 0x64], 0x3136378b
mov word [esp + 0x68], 0
mov byte [esp + 0x6a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, eax
and edx, 0x17
xor edx, 0xf7
mov ecx, eax
and ecx, 8
sub ecx, edx
xor cl, byte [esp + eax + 0x54]
add cl, 0xd3
mov byte [esp + eax + 0x54], cl
inc eax
cmp eax, 0x17
jne case.default.0x42c206
lea eax, [esp + 0x54]
lea ecx, [esp + 0x34]
push eax
call fcn.0043f4f0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44eea0]
jmp dword [0x44eeac]
lea ecx, [esp + 0x34]
push 0x410
call fcn.0043f700
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ecx, [esp + 0x34]
push 0x410
call fcn.0043f700
jmp dword [0x44eeb4]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44eeb8]
xor ebx, ebx
jmp dword [0x44eecc]
mov dword [esp + 0x54], 0xdab3c8dd
mov dword [esp + 0x58], 0xc0cab5d0
mov dword [esp + 0x5c], 0xd4cdd3b1
mov dword [esp + 0x60], 0x9ff6ee8d
mov dword [esp + 0x64], 0xf08b829e
mov dword [esp + 0x68], 0xe7848e85
mov dword [esp + 0x6c], 0xe2e986ea
mov dword [esp + 0x70], 0xfe97fc83
mov dword [esp + 0x74], 0x9e808e82
mov dword [esp + 0x78], 0xf693ad81
mov dword [esp + 0x7c], 0x5baa9191
mov word [esp + 0x80], 0
mov eax, 0x14
mov ecx, 0x6b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0xd
mov edx, ecx
not edx
mov edi, eax
and edi, 0x72
or edi, esi
and edx, 0x72
or edx, edi
xor dl, byte [esp + eax + 0x40]
xor dl, 0x8d
add dl, 0x1c
mov byte [esp + eax + 0x40], dl
inc eax
dec ecx
cmp eax, 0x42
jne case.default.0x42c324
lea eax, [esp + 0x48]
lea ecx, [esp + 0x34]
push 0
push 0x2b
lea edx, [esp + 0x5c]
push edx
push eax
call fcn.00440220
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
xor eax, eax
cmp edi, esi
sete al
mov dword [esp + 0x14], esi
jmp dword [eax*4 + 0x44eed0]
mov eax, esi
sub eax, edi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.0040c730
add esp, 4
mov dword [esp + 0x2c], 0
xor ecx, ecx
cmp edi, esi
setne cl
mov dword [esp + 0x28], eax
mov dword [esp + 8], eax
jmp dword [ecx*4 + 0x44eed8]
mov edi, dword [esp + 0x18]
add edi, 8
xor eax, eax
mov esi, dword [esp + 0x14]
cmp edi, esi
setne al
jmp dword [eax*4 + 0x44eed8]
mov esi, dword [edi]
mov dword [esp + 0x18], edi
mov edi, dword [edi + 4]
push 0x400
push 0
lea ebx, [esp + 0x5c]
push ebx
call fcn.0040c8d0
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push 0
push 0x400
push ebx
push edi
push esi
call fcn.004400b0
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 + 0x44eee8]
mov eax, 1
jmp 0x42c3e2
xor eax, eax
mov ecx, dword [case.0x42c324.9]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
jmp dword [eax*4 + 0x44ef00]
mov byte [esp + 0x453], 0
movzx eax, byte [esp + 0x54]
xor esi, esi
test al, al
je 0x42c421
lea ecx, [esp + 0x54]
cmp al, 0x2e
je 0x42c41f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42c410
jmp 0x42c421
mov esi, ecx
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x44ef08]
movzx eax, byte [esi + 1]
inc esi
xor ebx, ebx
test al, al
je 0x42c451
mov ecx, esi
nop
nop
nop
nop
cmp al, 0x2e
je 0x42c44f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42c440
jmp 0x42c451
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x44ef10]
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 0x42c485
cmp eax, 0x2e
jne 0x42c486
dec edi
movzx eax, byte [esi + edx - 2]
cmp eax, 0x3d
mov dword [esp + 0xc], edx
je 0x42c499
cmp eax, 0x2e
jne 0x42c49a
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 + 4], esi
cmp ebx, esi
je 0x42c5ba
xor edx, edx
mov esi, 2
jmp 0x42c4f0
mov edx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esi + 4]
add esi, 2
cmp esi, ecx
mov esi, eax
jae 0x42c5ba
mov dword [esp + 0x10], edx
mov edi, dword [esp + 4]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.00422f50
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.00422f50
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov byte [ecx + edx], al
inc edx
mov ecx, dword [esp + 0xc]
cmp esi, ecx
jae 0x42c4e0
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi]
push eax
mov edi, edx
call fcn.00422f50
mov edx, edi
mov ecx, dword [esp + 0x10]
add esp, 4
cmp al, 0x40
je 0x42c4e0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0x10]
lea edx, [edi + 2]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x1c]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x42c4cd
mov eax, dword [esp + 4]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.00422f50
mov ecx, dword [esp + 0x10]
add esp, 4
cmp al, 0x40
mov edx, dword [esp + 0x30]
je 0x42c4e0
shl bl, 6
add al, bl
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov byte [edx + edi + 2], al
add edi, 3
mov edx, edi
jmp 0x42c4e0
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x1c]
mov byte [ebx + eax], 0
push ebx
call fcn.00403d70
add esp, 4
mov dword [esp + 4], eax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp dword [0x44ef18]
push ebx
call fcn.0040c740
add esp, 4
mov ebx, dword [esp + 4]
push ebx
call fcn.004046c0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44ef20]
jmp 0x42c729
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0xf3107c63
lea eax, [esp + 0x24]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor edx, edx
lea ecx, [esp + 0x20]
nop
nop
nop
nop
nop
mov dword [esp + 0x10], ecx
movzx esi, byte [ecx]
mov edi, eax
and edi, 0xfe91fa8
mov ebx, edx
xor ebx, 0x780b702b
sub ebx, edi
lea ecx, [ebx + 1]
mov edi, ecx
and edi, esi
add esi, ebx
inc esi
mov ebx, esi
not ebx
lea edi, [ebx + edi*2]
and edi, ecx
mov ecx, edi
or ecx, 0xfffffffd
inc ecx
mov ebx, edi
and ebx, 0xfffffffd
imul ebx, ecx
mov ecx, edi
and ecx, 2
or edi, 2
imul edi, ecx
sub ebx, edi
add ebx, esi
mov esi, ebx
and esi, 0x21
mov ecx, ebx
and ecx, 2
mov edi, ecx
xor edi, 2
imul edi, esi
or esi, 2
imul esi, ecx
mov ecx, dword [esp + 0x10]
xor ebx, 0x23
add ebx, edi
add ebx, esi
inc bl
mov byte [ecx], bl
inc ecx
dec edx
add eax, 0xfffffffe
cmp edx, 0xfffffff9
jne 0x42c630
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x10]
call fcn.00404610
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44ef28]
mov edx, dword [esp + 8]
jmp 0x42c6f3
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [esp + 8]
je 0x42c6eb
inc eax
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x42c6e0
mov word [edx], 0x203a
add edx, 2
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 4]
movzx eax, byte [esp + 0x54]
test al, al
je 0x42c71b
lea ecx, [esp + 0x55]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x42c710
mov byte [edx], 0xa
inc edx
mov dword [esp + 8], edx
mov al, 1
mov dword [esp + 0x2c], eax
push ebx
call fcn.00404930
add esp, 4
add edi, 8
xor eax, eax
cmp edi, esi
setne al
jmp dword [eax*4 + 0x44eed8]
mov ebx, dword [esp + 0x2c]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x44eee0]
mov esi, dword [esp + 0x28]
jmp dword [0x44ef30]
xor ebx, ebx
test edi, edi
jne 0x42c84f
jmp case.0x42c206.0
mov eax, dword [esp + 8]
mov byte [eax], 0
mov dword [esp + 0x54], 0x51a1b23
mov dword [esp + 0x58], 0x19090a07
mov dword [esp + 0x5c], 0x4000203
mov dword [esp + 0x60], 0x1e0222c1
mov dword [esp + 0x64], 0x2dcb0813
mov dword [esp + 0x68], 0xf151209
mov dword [esp + 0x6c], 0x7976b109
mov dword [esp + 0x70], 0x8774
mov eax, 0x8e598da8
mov ecx, 0x58
nop
movzx edx, byte [esp + eax + 0x71a672ac]
mov esi, edx
not esi
or esi, ecx
lea edi, [eax + esi]
and edx, ecx
mov ebx, edx
not ebx
and ebx, edi
xor edx, edi
add edx, esi
sub edx, ebx
add edx, eax
mov esi, edx
and esi, 0x3c
xor edx, 0xbc
lea edx, [edx + esi*2]
inc dl
mov byte [esp + eax + 0x71a672ac], dl
inc eax
dec ecx
cmp eax, 0x8e598dc8
jne 0x42c7c0
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 8]
sub edx, esi
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 8]
push edx
push esi
push eax
call fcn.0040d350
mov ebx, eax
jmp dword [0x44ef30]
jmp dword [0x44ef3c]
push esi
call fcn.0040c740
add esp, 4
push esi
call fcn.0040c740
add esp, 4
jmp dword [0x44ef44]
and bl, 1
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
test edi, edi
je case.0x42c206.0
cmp edi, esi
je case.0x42c206.0
push edi
call fcn.0040c740
add esp, 4
lea ecx, [esp + 0x34]
call fcn.0043f8a0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret