Function at 0x42e770
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x78
mov eax, dword [0x451f5c]
mov dword [esp + 0x10], 0xf333f12d
mov dword [esp + 0x14], 0xef7eed7c
mov dword [esp + 0x18], 0xeb0be914
mov dword [esp + 0x1c], 0xe707e568
mov dword [esp + 0x20], 0xe306e13d
mov dword [esp + 0x24], 0x9f099d6a
mov dword [esp + 0x28], 0x9b079914
mov dword [esp + 0x2c], 0x97779504
mov dword [esp + 0x30], 0x9349910c
mov dword [esp + 0x34], 0x8f6a8d57
mov dword [esp + 0x38], 0x8b17891b
mov dword [esp + 0x3c], 0x87158517
mov dword [esp + 0x40], 0x83158119
mov dword [esp + 0x44], 0xbf68bd2a
mov dword [esp + 0x48], 0xbb2fb930
mov dword [esp + 0x4c], 0xb7b6b520
mov word [esp + 0x50], 0
mov byte [esp + 0x52], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xac
xor dl, byte [esp + ecx + 0x10]
add dl, 0xa4
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x43
jne 0x42e810
lea edi, [esp + 0x74]
lea ecx, [esp + 0x10]
push edi
push 0
push 0
push 0x1f
push ecx
push 0
call eax
mov ebx, dword [esp + 0x74]
test ebx, ebx
jns 0x42e849
mov eax, 0xffffffff
jmp 0x42e84c
lea eax, [ebx + ebx]
push eax
call fcn.0040cad0
add esp, 4
mov ebp, eax
mov eax, dword [0x451f5c]
mov dword [esp + 0x10], 0xb9fdbbdf
mov dword [esp + 0x14], 0xbd2ebf28
mov dword [esp + 0x18], 0xb1d5b3f8
mov dword [esp + 0x1c], 0xb5d1b724
mov dword [esp + 0x20], 0xa9c6abef
mov dword [esp + 0x24], 0xad3fafda
mov dword [esp + 0x28], 0xa139a338
mov dword [esp + 0x2c], 0xa5c1a730
mov dword [esp + 0x30], 0xd987dbc0
mov dword [esp + 0x34], 0xddb2df85
mov dword [esp + 0x38], 0xd149d349
mov dword [esp + 0x3c], 0xd543d745
mov dword [esp + 0x40], 0xc95bcb4b
mov dword [esp + 0x44], 0xcd9ccf5a
mov dword [esp + 0x48], 0xc151c344
mov dword [esp + 0x4c], 0xc5c6c75c
xor ecx, ecx
nop
nop
mov edx, ecx
add dl, 0x1f
xor dl, byte [esp + ecx + 0x10]
add dl, 0x65
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x40
jne case.default.0x42e920
push edi
push ebx
push ebp
push 0x1f
lea ecx, [esp + 0x20]
push ecx
push 0
call eax
lea eax, [esp + 0x5c]
push 0x60
push 3
push 0x120089
push eax
push ebp
call fcn.00445a20
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44e068]
mov dword [esp], 0
jmp dword [0x44e190]
push ebp
call fcn.0040cae0
add esp, 4
mov eax, dword [esp]
and al, 1
add esp, 0x78
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x6c]
push 0
push eax
push dword [esp + 0x64]
call fcn.00445dc0
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x44e070]
mov esi, dword [esp + 0x6c]
lea eax, [esi + 1]
push eax
call fcn.0040cad0
add esp, 4
push 0
push esi
mov dword [esp + 0x6c], eax
push eax
push dword [esp + 0x68]
call fcn.00445ec0
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x44e078]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x64]
mov byte [edi + eax], 0
mov dword [esp], 0
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], 0xe6eee8e6
mov dword [esp + 0x14], 0xe2ebe4ea
mov word [esp + 0x18], 0x2b15
mov byte [esp + 0x1a], 0x4a
lea eax, [esp + 0x1b]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
lea edx, [eax - 0x513a8310]
lea esi, [ecx + ecx]
not esi
add esi, ecx
and esi, edx
mov edx, eax
xor edx, 0xf
and edx, ecx
or edx, esi
mov ecx, edx
and ecx, 0x4f
xor edx, 0x4f
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xe
jne 0x42e9f0
movzx edx, byte [esp + 0x10]
test dl, dl
lea ebx, [esp + 0x10]
je 0x42ea62
mov eax, ebx
mov ecx, edi
jmp 0x42ea47
movzx edx, byte [eax]
test dl, dl
je 0x42ea62
mov dh, byte [ecx]
test dh, dh
je 0x42ea60
inc ecx
inc eax
lea esi, [edi + 1]
cmp dh, dl
je 0x42ea5a
mov edi, esi
mov ecx, esi
je 0x42ea40
mov eax, ebx
jmp 0x42ea40
xor edi, edi
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44e080]
movzx eax, byte [edi + 0xa]
add edi, 0xa
xor edx, edx
test al, al
je 0x42ea92
mov ecx, edi
nop
cmp al, 0x22
je 0x42ea90
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42ea80
jmp 0x42ea92
mov edx, ecx
mov esi, edx
sub esi, edi
xor eax, eax
cmp esi, 5
setb al
jmp dword [eax*4 + 0x44e088]
jmp dword [0x44e098]
xor eax, eax
cmp byte [edx - 1], 0x74
setne al
jmp dword [eax*4 + 0x44e0a0]
xor eax, eax
cmp byte [edx - 2], 0x78
setne al
jmp dword [eax*4 + 0x44e0a8]
xor eax, eax
cmp byte [edx - 3], 0x74
setne al
jmp dword [eax*4 + 0x44e0b0]
xor eax, eax
cmp byte [edx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x44e0b8]
mov eax, esi
inc eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x60], ebp
jns 0x42eb0a
mov eax, 0xffffffff
jmp 0x42eb11
lea eax, [esi*2 + 2]
push eax
call fcn.0040cad0
add esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], esi
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 4], eax
mov dword [esp + 0x58], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x54]
jae 0x42eb7c
mov esi, dword [esp + 4]
cmp edi, ebx
jae 0x42eb7c
mov esi, dword [esp + 4]
mov ebp, edi
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebp], 0
je 0x42eb7c
lea eax, [esp + 0x10]
push eax
push ebx
push ebp
call fcn.00410ec0
add esp, 0xc
movzx ecx, word [esp + 0x10]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x58]
jae 0x42eb7c
add ebp, eax
cmp ebp, ebx
jb 0x42eb50
mov word [esi], 0
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x14]
call fcn.00445a20
add esp, 0x14
not eax
shr eax, 0x1f
mov ebp, dword [esp + 0x60]
jmp dword [eax*4 + 0x44e0c0]
mov eax, dword [case.0x42eba4.24]
mov edi, dword [esp + 0x54]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 4]
jmp dword [0x44e130]
jmp dword [0x44e138]
push esi
call fcn.0040cae0
add esp, 4
nop
nop
nop
nop
nop
push esi
call fcn.0040cae0
add esp, 4
jmp dword [0x44e144]
mov eax, dword [case.0x42ea9e.1]
mov ecx, dword [esp + 0x54]
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
jmp eax
lea esi, [esp + 0x68]
jmp dword [0x44e0c8]
push 0
push esi
push dword [esp + 0x10]
call fcn.00445dc0
add esp, 0xc
nop
nop
nop
push 0
push esi
push dword [esp + 0x10]
call fcn.00445dc0
add esp, 0xc
jmp dword [0x44e0d0]
mov esi, dword [esp + 0x68]
test eax, eax
setns al
cmp esi, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44e0d8]
push esi
call fcn.0040cad0
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0x14]
call fcn.00445ec0
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
mov esi, dword [esp + 4]
mov ecx, esi
jmp dword [eax*4 + 0x44e0e0]
add ecx, 2
test ax, ax
je 0x42ecb0
mov ebp, edx
movzx eax, word [ecx]
mov edx, ecx
cmp ax, 0x5c
je 0x42ec90
mov edx, ebp
jmp 0x42ec90
mov ecx, esi
xor edx, edx
jmp dword [0x44e0f0]
xor eax, eax
test ebp, ebp
setne al
mov dword [esp + 0x58], ebx
jmp dword [eax*4 + 0x44e0f8]
xor ebp, ebp
xor eax, eax
mov esi, dword [esp + 0xc]
jmp 0x42ece3
sub ebp, esi
sar ebp, 1
inc ebp
mov esi, dword [esp + 0xc]
mov eax, esi
sub eax, ebp
add eax, 0x1b
push eax
call fcn.0040cad0
add esp, 4
mov edx, esi
not edx
and edx, ebp
mov ecx, ebp
not ebp
and ebp, esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0xc], edx
sub ebp, edx
mov dword [esp + 0x10], 0xe0fee007
mov dword [esp + 0x14], 0xfbf1e7e2
mov dword [esp + 0x18], 0xf21037e0
mov dword [esp + 0x1c], 0x2ceffcf4
mov dword [esp + 0x20], 0x6eaee12
mov dword [esp + 0x24], 0xc8060010
mov word [esp + 0x28], 0xd6c9
mov byte [esp + 0x2a], 0xa6
mov word [esp + 0x2b], 0
mov esi, 0xf66af66d
nop
nop
nop
movzx edx, byte [esp + esi + 0x99509a3]
mov ebx, edx
and ebx, esi
add bl, bl
sub dl, bl
movzx edx, dl
add edx, esi
add dl, 0xdf
mov byte [esp + esi + 0x99509a3], dl
inc esi
cmp esi, 0xf66af68a
jne 0x42ed50
movzx edx, byte [esp + 0x10]
mov ebx, eax
test dl, dl
je 0x42ed9b
lea esi, [esp + 0x11]
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x42ed90
mov byte [ebx], 0
test ebp, ebp
je 0x42edc6
add edi, ecx
mov esi, ebp
and esi, 3
je 0x42edca
xor edx, edx
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [ebx + edx], cl
inc edx
cmp esi, edx
jne 0x42edad
add ebx, edx
sub ebp, edx
mov esi, ebx
jmp 0x42edca
mov esi, ebx
jmp 0x42ee10
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0x70]
cmp ecx, 0xfffffffc
ja 0x42ee10
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [ebx], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [ebx + 1], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
mov byte [ebx + 2], cl
movzx ecx, byte [edi]
cmp cl, 1
sbb edi, 0xffffffff
lea esi, [ebx + 4]
mov byte [ebx + 3], cl
mov ebx, esi
add ebp, 0xfffffffc
jne 0x42edd7
mov byte [esi], 0
mov ecx, dword [esp + 0x8c]
push dword [esp + 0x68]
mov ebx, dword [esp + 0x5c]
push ebx
mov esi, eax
push eax
call fcn.0040d480
mov ecx, dword [esp]
and cl, 1
or cl, al
mov dword [esp], ecx
mov ebp, dword [esp + 0x60]
jmp dword [0x44e100]
push esi
call fcn.0040cae0
add esp, 4
jmp dword [0x44e108]
jmp dword [0x44e114]
jmp dword [0x44e108]
push ebx
call fcn.0040cae0
add esp, 4
jmp dword [0x44e114]
mov eax, dword [esp + 8]
mov dword [esp + 0x10], 0x34353637
lea ecx, [esp + 0x1b]
mov byte [ecx - 5], 0
mov word [ecx - 7], 0
mov ecx, 0xf4
mov edx, 0xb
nop
nop
movzx esi, byte [esp + ecx - 0xe4]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
add bl, 0x3c
mov byte [esp + ecx - 0xe4], bl
inc ecx
dec edx
cmp ecx, 0xfb
jne 0x42ee90
mov ecx, dword [0x451f60]
test ecx, ecx
je case.0x42eba4.19
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x451f64]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42eee0
inc esi
cmp ecx, esi
jne 0x42eed0
jmp case.0x42eba4.19
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x42eba4.19
push eax
push 1
push dword [0x451f68]
push ecx
call fcn.004426c0
add esp, 0x10
jmp case.0x42eba4.19
jmp dword [0x44e118]
mov eax, dword [esp + 8]
mov dword [esp + 0x10], 0x34353637
lea ecx, [esp + 0x1b]
mov byte [ecx - 5], 0
mov word [ecx - 7], 0
mov ecx, 0xf4
mov edx, 0xb
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0xe4]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
add bl, 0x3c
mov byte [esp + ecx - 0xe4], bl
inc ecx
dec edx
cmp ecx, 0xfb
jne 0x42ef30
mov ecx, dword [0x451f60]
test ecx, ecx
je 0x42ef00
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x451f64]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42ef80
inc esi
cmp ecx, esi
jne 0x42ef70
jmp 0x42ef00
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x42ef00
push eax
push 1
push dword [0x451f68]
push ecx
call fcn.004426c0
add esp, 0x10
jmp dword [0x44e118]
jmp dword [0x44e160]
mov esi, dword [esp + 0x64]
jmp dword [0x44e168]
jmp dword [0x44e170]
push esi
call fcn.0040cae0
add esp, 4
push esi
call fcn.0040cae0
add esp, 4
jmp dword [0x44e178]
mov eax, dword [case.0x42e920.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x10], 0x34353637
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov ecx, 0xf4
mov edx, 0xb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0xe4]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
add bl, 0x3c
mov byte [esp + ecx - 0xe4], bl
inc ecx
dec edx
cmp ecx, 0xfb
jne 0x42f020
mov ecx, dword [0x451f60]
test ecx, ecx
je 0x42f078
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [0x451f64]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42f070
inc esi
cmp ecx, esi
jne 0x42f060
jmp 0x42f078
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42f07e
jmp dword [0x44e190]
push eax
push 1
push dword [0x451f68]
push ecx
call fcn.004426c0
add esp, 0x10
jmp dword [0x44e190]