Function at 0x42c184
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov eax, dword [0x4505b8]
mov dword [esp + 0x1c], 0x915d9f7b
mov dword [esp + 0x20], 0x95029300
mov dword [esp + 0x24], 0x89359750
mov dword [esp + 0x28], 0x8d298b1c
mov dword [esp + 0x2c], 0x81228f6b
mov dword [esp + 0x30], 0x8513833e
mov dword [esp + 0x34], 0x79218710
mov dword [esp + 0x38], 0x7dd97be8
mov dword [esp + 0x3c], 0x71a37fd8
mov dword [esp + 0x40], 0x75de73ad
mov dword [esp + 0x44], 0x69d177e1
mov dword [esp + 0x48], 0x6dff6bfd
mov dword [esp + 0x4c], 0x61ff6ff7
mov dword [esp + 0x50], 0x65bc63fe
mov dword [esp + 0x54], 0x59f967ec
mov dword [esp + 0x58], 0x5d5a5bc4
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x3f
ja 0x42b9eb
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x1c]
mov esi, ecx
xor esi, 0x8320b665
and ecx, 0x320b665
lea ecx, [esi + ecx*2]
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 7
mov edx, dword [esp]
mov byte [esp + edx + 0x1c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x40
jb 0x42b9b0
lea esi, [esp + 0x78]
lea ecx, [esp + 0x1c]
push esi
push 0
push 0
push 0x1f
push ecx
push 0
call eax
mov edi, dword [esp + 0x78]
test edi, edi
jns 0x42ba0e
mov eax, 0xffffffff
jmp 0x42ba11
lea eax, [edi + edi]
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x68], eax
mov eax, dword [0x4505b8]
mov dword [esp + 0x1c], 0xfcf092d
mov dword [esp + 0x20], 0x3f20dfc
mov dword [esp + 0x24], 0x7e701c4
mov dword [esp + 0x28], 0x1bfb05f0
mov dword [esp + 0x2c], 0x1ff2193d
mov dword [esp + 0x30], 0x13e11dce
mov dword [esp + 0x34], 0x17f311e4
mov dword [esp + 0x38], 0x2bcb15e4
mov dword [esp + 0x3c], 0x2f1129cc
mov dword [esp + 0x40], 0x23ce2d13
mov dword [esp + 0x44], 0x27c321d7
mov dword [esp + 0x48], 0x3bcd25d3
mov dword [esp + 0x4c], 0x3fcd39c1
mov dword [esp + 0x50], 0x33003dce
mov dword [esp + 0x54], 0x37cb31b8
mov dword [esp + 0x58], 0xcbca35c8
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x3f
ja 0x42bb2d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x1c]
mov ebx, edx
or ebx, 0x2add07bd
mov ebp, edx
not ebp
or ebp, 0xd522f842
and ebp, ebx
not ebp
and edx, 0xd522f842
lea ebx, [edx*2]
add ebx, ebp
mov edx, ebx
and edx, ecx
xor ebx, ecx
sub ebx, edx
lea ecx, [ebx + edx*2]
mov ebx, ecx
not ebx
and ebx, edx
not edx
and edx, ecx
sub edx, ebx
mov dword [esp + 4], edx
mov ecx, dword [esp + 4]
mov edx, ecx
xor edx, 0x4a
and ecx, 0x35
add ecx, ecx
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x1c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x40
jb 0x42bac0
push esi
push edi
mov esi, dword [esp + 0x70]
push esi
push 0x1f
lea ecx, [esp + 0x2c]
push ecx
push 0
call eax
lea eax, [esp + 0x60]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.004439d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c894]
xor ebx, ebx
jmp dword [0x44c94c]
lea eax, [esp + 0x70]
push 0
push eax
push dword [esp + 0x68]
call fcn.00443d70
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44c89c]
mov esi, dword [esp + 0x70]
lea eax, [esi + 1]
push eax
call fcn.0040c640
add esp, 4
push 0
push esi
mov dword [esp + 0x6c], eax
push eax
push dword [esp + 0x6c]
call fcn.00443e80
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esp + 0x18], 0
jmp dword [eax*4 + 0x44c8a4]
mov ebx, dword [esp + 0x18]
jmp dword [0x44c944]
push dword [esp + 0x64]
call fcn.0040c650
add esp, 4
mov eax, dword [esp + 0x60]
mov dword [esp + 0x1c], 0xf00f0e0d
mov word [esp + 0x20], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 5
ja 0x42bc50
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x1c]
mov esi, ecx
xor esi, 0x277d557d
and ecx, 0x277d557d
lea esi, [esi + ecx*2]
mov ecx, esi
and ecx, edx
xor esi, edx
lea edx, [esi + ecx*2]
mov esi, edx
not esi
and esi, ecx
add esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x8f
mov edx, dword [esp]
mov byte [esp + edx + 0x1c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 6
jb 0x42bc00
mov ecx, dword [0x4505bc]
test ecx, ecx
je 0x42bc8c
mov edx, dword [esp + 0x1c]
xor esi, esi
mov edi, dword [0x4505c0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x42bc80
inc esi
cmp ecx, esi
jne 0x42bc70
jmp 0x42bc8c
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42c26a
and bl, 1
jmp dword [0x44c94c]
push dword [esp + 0x68]
call fcn.0040c650
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44c960]
mov eax, ebx
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x64]
mov byte [esi + eax], 0
mov dword [esp + 0x18], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ebx, [esp + 0x1c]
mov dword [esp + 0x1c], 0xcac2c0c2
mov dword [esp + 0x20], 0xcec7d4c6
mov word [esp + 0x24], 0xff5
mov byte [esp + 0x26], 0xce
mov dword [esp + 0x27], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x42bd65
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x1c]
mov edx, eax
xor edx, 0x8d4e7776
and eax, 0xd4e7776
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mov ecx, eax
not ecx
and ecx, 0x4e
and eax, 0xb1
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x1c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x42bd20
movzx ecx, byte [esp + 0x1c]
test cl, cl
je 0x42bdb0
mov eax, ebx
mov ebp, esi
jmp 0x42bd87
movzx ecx, byte [eax]
test cl, cl
je 0x42bdc2
movzx edx, byte [esi]
test dl, dl
je 0x42bdc0
inc esi
inc eax
lea edi, [ebp + 1]
cmp dl, cl
je 0x42bd9b
mov ebp, edi
mov esi, edi
je 0x42bd80
mov eax, ebx
jmp 0x42bd80
mov ebp, esi
jmp 0x42bdc2
xor ebp, ebp
xor eax, eax
test ebp, ebp
sete al
jmp dword [eax*4 + 0x44c8ac]
jmp dword [0x44c8c0]
lea esi, [ebp + 0xa]
movzx eax, byte [ebp + 0xa]
xor ebx, ebx
test al, al
je 0x42bdd0
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x22
je 0x42be00
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42bdf0
jmp 0x42bdd0
mov ebx, ecx
jmp dword [0x44c8c0]
mov edi, ebx
sub edi, esi
xor eax, eax
cmp edi, 5
setb al
jmp dword [eax*4 + 0x44c8c4]
xor eax, eax
cmp byte [ebx - 1], 0x74
setne al
jmp dword [eax*4 + 0x44c8cc]
xor eax, eax
cmp byte [ebx - 2], 0x78
setne al
jmp dword [eax*4 + 0x44c8d4]
xor eax, eax
cmp byte [ebx - 3], 0x74
setne al
jmp dword [eax*4 + 0x44c8dc]
xor eax, eax
cmp byte [ebx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x44c8e4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x42be69
mov eax, 0xffffffff
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], edi
lea edx, [eax + edi*2]
mov ecx, eax
mov dword [esp + 8], eax
mov dword [esp + 0x10], edx
cmp eax, edx
jae 0x42bed7
mov ecx, dword [esp + 8]
cmp esi, ebx
jae 0x42bed7
mov ecx, dword [esp + 8]
mov edi, esi
nop
nop
nop
cmp byte [edi], 0
je 0x42bed7
lea eax, [esp + 0x1c]
push eax
push ebx
push edi
mov dword [esp + 0x20], ecx
call fcn.00410fa0
add esp, 0xc
movzx ecx, word [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov word [edx], cx
mov ecx, dword [esp + 0x14]
add ecx, 2
cmp ecx, dword [esp + 0x10]
jae 0x42bed7
add edi, eax
cmp edi, ebx
jb 0x42bea0
mov word [ecx], 0
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x18]
call fcn.004439d0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c8ec]
mov esi, ebx
jmp dword [0x44c92c]
push dword [esp + 8]
call fcn.0040c650
add esp, 4
mov esi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [case.0x42befb.21]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push 0
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x64]
call fcn.00443d70
add esp, 0xc
test eax, eax
setns al
mov edi, dword [esp + 0x6c]
cmp edi, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44c8f4]
push edi
call fcn.0040c640
add esp, 4
push 0
push edi
mov dword [esp + 0x1c], eax
push eax
push dword [esp + 0x68]
call fcn.00443e80
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44c8fc]
xor ecx, ecx
mov eax, dword [esp + 8]
jmp 0x42bfa8
add eax, 2
test dx, dx
je 0x42bfb9
mov edi, ecx
movzx edx, word [eax]
mov ecx, eax
cmp dx, 0x5c
je 0x42bfa0
mov ecx, edi
jmp 0x42bfa0
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x44c904]
xor edi, edi
xor eax, eax
jmp 0x42bfda
sub edi, dword [esp + 8]
sar edi, 1
inc edi
mov eax, dword [esp + 0xc]
sub eax, edi
add eax, 0x1b
push eax
call fcn.0040c640
add esp, 4
mov dword [esp + 0x10], eax
sub dword [esp + 0xc], edi
mov dword [esp + 0x1c], 0x40204d9
mov dword [esp + 0x20], 0x93f010e
mov dword [esp + 0x24], 0x32d4f904
mov dword [esp + 0x28], 0xd0152810
mov dword [esp + 0x2c], 0x2e1e1636
mov dword [esp + 0x30], 0xe4222c1c
mov dword [esp + 0x34], 0x8adee3
mov dword [esp + 0x74], edi
add esi, edi
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1b
ja 0x42c08a
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x1c]
mov edx, eax
xor edx, 0x48c4d0a4
and eax, 0xc8c4d0a4
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xcc
mov ecx, dword [esp]
mov byte [esp + ecx + 0x1c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1c
jb 0x42c040
movzx ecx, byte [esp + 0x1c]
mov eax, dword [esp + 0x10]
test cl, cl
je 0x42c0ab
lea edx, [esp + 0x1d]
mov eax, dword [esp + 0x10]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x42c0a0
mov byte [eax], 0
mov edi, dword [esp + 0xc]
test edi, edi
je 0x42c0e7
mov ecx, dword [esp + 0x74]
add ecx, ebp
mov ebp, ebx
sub ebp, ecx
add ebp, 0xfffffff5
and edi, 3
je 0x42c0eb
xor edx, edx
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax + edx], cl
inc edx
cmp edi, edx
jne 0x42c0ca
add eax, edx
mov edi, dword [esp + 0xc]
sub edi, edx
mov edx, eax
jmp 0x42c0ef
mov edx, eax
jmp 0x42c12d
mov edi, dword [esp + 0xc]
cmp ebp, 3
jb 0x42c12d
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax], cl
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax + 1], cl
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax + 2], cl
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
lea edx, [eax + 4]
mov byte [eax + 3], cl
mov eax, edx
add edi, 0xfffffffc
jne 0x42c0f4
mov byte [edx], 0
mov ecx, dword [esp + 0x90]
push dword [esp + 0x6c]
push dword [esp + 0x18]
mov esi, dword [esp + 0x18]
push esi
call fcn.0040d160
movzx eax, al
mov ecx, dword [esp + 0x18]
and cl, 1
movzx ecx, cl
mov edx, eax
not edx
and edx, ecx
xor eax, ecx
add eax, ecx
cmp eax, edx
setne al
mov dword [esp + 0x18], eax
jmp dword [0x44c90c]
push esi
call fcn.0040c650
add esp, 4
jmp dword [0x44c914]
jmp dword [0x44c914]
push dword [esp + 0x14]
call fcn.0040c650
add esp, 4
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], 0xf00f0e0d
mov word [esp + 0x20], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 5
ja 0x42c210
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x1c]
mov esi, ecx
xor esi, 0x277d557d
and ecx, 0x277d557d
lea esi, [esi + ecx*2]
mov ecx, esi
and ecx, edx
xor esi, edx
lea edx, [esi + ecx*2]
mov esi, edx
not esi
and esi, ecx
add esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x8f
mov edx, dword [esp]
mov byte [esp + edx + 0x1c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 6
jb 0x42c1c0
mov ecx, dword [0x4505bc]
test ecx, ecx
je 0x42c248
mov edx, dword [esp + 0x1c]
xor esi, esi
mov edi, dword [0x4505c0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x625b6034
je 0x42c240
inc esi
cmp ecx, esi
jne 0x42c230
jmp 0x42c248
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42c250
mov esi, ebx
jmp dword [0x44c92c]
push eax
push 1
push dword [0x4505c4]
push ecx
call fcn.004403a0
add esp, 0x10
mov esi, ebx
jmp dword [0x44c92c]
push eax
push 1
push dword [0x4505c4]
push ecx
call fcn.004403a0
add esp, 0x10
and bl, 1
jmp dword [0x44c94c]
int3
mov ebx, 0xbb6a0042
inc edx
add cl, bl
mov ebx, 0xbb8b0042
inc edx
add bl, al
mov ebx, 0xbcc00042
inc edx
add dh, dl
mov ebp, 0xbbc30042
inc edx
add dh, dl
mov ebp, 0xbdd60042
inc edx
add dh, dl
mov ebp, 0xbe080042
inc edx
add byte [ebx], bl
mov esi, 0xbf200042
inc edx
add byte [ebx], ch
mov esi, 0xbf200042
inc edx
add byte [ebx], bh
mov esi, 0xbf200042
inc edx
add byte [ebx - 0x42], cl
inc edx
add byte [eax], ah
mov edi, 0xbe5b0042
inc edx
add byte [eax], ah
mov edi, 0xbf020042
mov edi, 0xbf320042
inc edx
add byte [eax + 0x630042c1], dl
mov edi, 0xc17e0042
mov edi, 0xbf320042
inc edx
add byte [eax + 0x630042c1], dl
mov edi, 0xc17e0042
inc edx
add byte [edi + edi*4 - 0x4038ffbe], cl
inc edx
add ch, cl
mov edi, 0xc16f0042
inc edx
add byte [esi - 0x3f], bh
inc edx
add byte [ecx + eax*8 - 0x3e6fffbe], al
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebp + 0x10042c2], al
add byte [eax], al
add byte [edx], cl
mov edi, 0xbf200042
inc edx
add byte [eax], dh
mov edi, 0xbf300042
inc edx
add byte [eax], dh
mov edi, 0xbce00042
inc edx
add ch, cl
mov ebx, 0xbbd90042
inc edx
add byte [ebp - 0x4fffbd44], dl
mov esp, 0xbcb00042
inc edx
add byte [eax - 0x4fffbd44], dh
mov esp, 0xbcb60042
inc edx
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi], cl
xlatb
inc edx
add byte [eax], cl
xlatb
inc edx
add byte [esi - 0x61ffbd02], al
inc byte [edx]
xchg ebx, eax
stc
inc edx
add byte [ebx + edi*8 + 0x42], ch
add byte [ecx - 0x56ffbd02], ch
inc byte [edx]
in eax, dx
sti
inc edx
add byte [edi - 5], bh
inc edx
add byte [esi + 0x6b0042fb], al
cld
inc edx
add byte [ebx - 4], ch
inc edx
add byte [ebp - 5], ah
inc edx
add byte [esi + edi*8 + 0x42], ah
add byte [edx - 0x1d], bh
inc edx
add bh, dh
in eax, 0x42
add byte [esi - 0x1b], ah
inc edx
add byte [ecx], bl
out 0x42, al
add byte [esi - 0x1630ffbe], dh
inc edx
add dl, cl
jmp 0xd9f4ca0c