Function at 0x429eb2
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44c
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x4c], 0xb92ebb11
mov dword [esp + 0x50], 0xbd59bf23
mov dword [esp + 0x54], 0xb160b32f
mov dword [esp + 0x58], 0xb53eb72b
mov dword [esp + 0x5c], 0xa9aaab2f
mov word [esp + 0x60], 0
mov byte [esp + 0x62], 0
xor eax, eax
mov ecx, eax
add cl, 0x5f
xor cl, byte [esp + eax + 0x4c]
add cl, 0x25
mov byte [esp + eax + 0x4c], cl
inc eax
cmp eax, 0x17
jne case.default.0x429ab9
lea ebp, [esp + 0x4c]
lea ecx, [esp + 0x24]
push ebp
call fcn.0043cab0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x449f30]
lea ecx, [esp + 0x24]
push 0x410
call fcn.0043cd70
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x449f38]
mov dword [esp + 0x4c], 0x62d140f
mov dword [esp + 0x50], 0x1402270c
mov dword [esp + 0x54], 0x18031d23
mov dword [esp + 0x58], 0x2d061a3f
mov dword [esp + 0x5c], 0xc353e2e
mov dword [esp + 0x60], 0x15303a37
mov dword [esp + 0x64], 0x6e674a1a
mov dword [esp + 0x68], 0x6a416851
mov dword [esp + 0x6c], 0x425c5252
mov dword [esp + 0x70], 0x6245bf53
mov dword [esp + 0x74], 0x91a25b43
mov word [esp + 0x78], 0
mov byte [esp + 0x7a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x4c]
mov esi, ebx
and esi, 0x4e
mov ecx, eax
xor ecx, 0x6adc86a7
add ecx, esi
xor ecx, edx
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0xbc
mov byte [esp + eax + 0x4c], cl
inc eax
add ebx, 2
cmp eax, 0x2f
jne case.default.0x429ba4
lea eax, [esp + 0x40]
lea ecx, [esp + 0x24]
push 0
push 0x2b
push ebp
push eax
call fcn.0043d2c0
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
xor eax, eax
cmp ebx, esi
sete al
xor edi, edi
jmp dword [eax*4 + 0x449f40]
mov eax, esi
sub eax, ebx
sar eax, 2
mov ecx, eax
or ecx, 0x421
mov edx, eax
and edx, 0x421
imul ecx, edx
and eax, 0xfffffbde
xor edx, 0x421
imul edx, eax
add edx, ecx
push edx
call fcn.00408810
add esp, 4
mov dword [esp + 0x18], 0
xor ecx, ecx
mov dword [esp + 0x3c], esi
cmp ebx, esi
setne cl
mov dword [esp + 0x14], eax
mov edi, eax
jmp dword [ecx*4 + 0x449f48]
mov ebx, dword [esp + 0x18]
mov eax, ebx
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x449f50]
jmp dword [0x449fb0]
add ebx, 4
xor eax, eax
cmp ebx, dword [esp + 0x3c]
setne al
jmp dword [eax*4 + 0x449f48]
mov esi, dword [ebx]
push 0x400
push 0
push ebp
call fcn.00408890
add esp, 0xc
lea eax, [esp + 0xc]
lea ecx, [esp + 0x24]
push eax
push 0x400
push ebp
push esi
call fcn.0043d1e0
cmp dword [esp + 0xc], 0
sete cl
cmp eax, 0xc0000000
setae al
or al, cl
movzx eax, al
jmp dword [eax*4 + 0x449f58]
mov eax, 1
jmp dword [eax*4 + 0x449f60]
xor eax, eax
jmp dword [eax*4 + 0x449f60]
mov byte [esp + 0x44b], 0
movzx eax, byte [esp + 0x4c]
xor ecx, ecx
test al, al
je 0x429cd0
mov ecx, ebp
nop
nop
cmp al, 0x2e
je 0x429cd0
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x429cb0
mov dword [esp], edi
xor ecx, ecx
jmp 0x429cd3
mov dword [esp], edi
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x449f68]
movzx eax, byte [ecx + 1]
inc ecx
xor edi, edi
test al, al
je 0x429d03
mov edx, ecx
nop
nop
cmp al, 0x2e
je 0x429cff
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x429cf0
jmp 0x429d01
mov edi, ecx
mov ecx, edx
xor eax, eax
test edi, edi
setne al
mov dword [esp + 0x1c], ecx
jmp dword [eax*4 + 0x449f70]
mov eax, ecx
mov ecx, edi
mov ebp, eax
sub ecx, eax
lea edx, [ecx + ecx*2]
shr edx, 2
movzx eax, byte [edi - 1]
cmp eax, 0x3d
je 0x429d31
cmp eax, 0x2e
jne 0x429d32
dec edx
movzx eax, byte [ebp + ecx - 2]
cmp eax, 0x3d
mov dword [esp + 8], ecx
je 0x429d45
cmp eax, 0x2e
jne 0x429d46
dec edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edx
lea eax, [edx + 1]
push eax
call fcn.00408810
add esp, 4
mov dword [esp + 4], eax
cmp edi, ebp
je 0x429e45
xor esi, esi
mov edi, 2
jmp 0x429d86
mov esi, ebp
lea eax, [edi + 4]
add edi, 2
cmp edi, edx
mov edi, eax
mov ebp, dword [esp + 0x1c]
jae 0x429e45
movzx eax, byte [ebp + edi - 2]
push eax
call fcn.00420540
add esp, 4
mov ebx, eax
movzx eax, byte [ebp + edi - 1]
push eax
call fcn.00420540
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, ebp
lea ebp, [esi + 1]
mov dword [esp + 0x20], esi
mov edx, dword [esp + 4]
mov byte [edx + esi], al
mov edx, dword [esp + 8]
cmp edi, edx
jae 0x429d70
movzx eax, byte [ecx + edi]
push eax
call fcn.00420540
mov edx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
mov esi, ebp
je 0x429d72
mov bl, al
shl bh, 4
xor al, 0xc0
mov ecx, ebx
or cl, 0x3c
and cl, al
shr cl, 2
add cl, bh
mov eax, dword [esp + 0x20]
lea esi, [eax + 2]
mov ebp, dword [esp + 4]
mov byte [ebp + eax + 1], cl
lea eax, [edi + 1]
cmp eax, edx
jae 0x429d72
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00420540
mov edx, dword [esp + 0xc]
add esp, 4
cmp al, 0x40
je 0x429d72
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 4]
mov byte [esi + ecx + 2], al
add ecx, 3
mov esi, ecx
jmp 0x429d72
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 4]
mov byte [esi + eax], 0
push esi
call fcn.00401000
add esp, 4
mov ebx, eax
jmp dword [0x449f78]
jmp dword [0x449f84]
push esi
call fcn.00408820
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408820
add esp, 4
jmp dword [0x449f88]
push ebx
call fcn.00401ac0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
lea ebp, [esp + 0x4c]
mov esi, dword [esp]
jmp dword [ecx*4 + 0x449f90]
jmp 0x429f48
mov dword [esp + 0xc], 0xb9dc3011
lea ecx, [esp + 0x10]
mov byte [ecx + 2], 0
mov word [ecx], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x9f
xor dl, byte [esp + ecx + 0xc]
add dl, 0xe5
mov byte [esp + ecx + 0xc], dl
inc ecx
cmp ecx, 7
jne case.default.0x429efb
lea ecx, [esp + 0xc]
push ecx
push eax
call fcn.00401880
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x449f98]
jmp 0x429f23
movzx ecx, byte [eax]
test cl, cl
je 0x429f1b
inc eax
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x429f10
mov word [esi], 0x203a
add esi, 2
movzx eax, byte [esp + 0x4c]
test al, al
je 0x429f3b
lea ecx, [esp + 0x4d]
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x429f30
mov byte [esi], 0xa
inc esi
mov dword [esp], esi
mov al, 1
mov dword [esp + 0x18], eax
push ebx
call fcn.00402070
add esp, 4
mov ebx, dword [esp + 0x38]
mov eax, dword [case.0x429ba4.7]
mov edi, dword [esp]
nop
nop
nop
jmp eax
mov dword [esp], edi
mov byte [edi], 0
mov dword [esp + 0x4c], 0x43464979
mov dword [esp + 0x50], 0xbf534a4d
mov dword [esp + 0x54], 0xc03c4249
mov dword [esp + 0x58], 0x36c6227f
mov dword [esp + 0x5c], 0x2b753c29
mov dword [esp + 0x60], 0x313f3237
mov dword [esp + 0x64], 0xd7d273cf
mov dword [esp + 0x68], 0x5dd0
xor ecx, ecx
mov eax, 0xffffffff
nop
movzx edx, byte [esp + ecx + 0x4c]
mov edi, eax
or edi, 0x778569b6
add edi, ecx
mov ebx, ecx
xor ebx, 0xf78569b6
lea esi, [ebx + edi*2]
lea edi, [ebx + edi*2]
add edi, 2
and edi, edx
mov ebx, edi
or ebx, 0xfd
inc ebx
mov ebp, edi
and ebp, 0xfffffffd
imul ebp, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
sub ebp, edi
add edx, esi
add edx, 2
add edx, ebp
add dl, 0x72
mov byte [esp + ecx + 0x4c], dl
inc ecx
dec eax
cmp ecx, 0x20
jne 0x429fb0
mov edx, dword [esp + 0x14]
mov esi, dword [esp]
sub esi, edx
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 0x460]
push esi
push edx
push eax
call fcn.00409660
mov ebx, eax
jmp dword [0x449fb0]
push dword [esp + 0x14]
call fcn.00408820
add esp, 4
and bl, 1
mov edi, ebx
mov eax, dword [case.0x429ba4.0]
nop
jmp eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x42a059
cmp eax, dword [esp + 0x44]
je 0x42a059
push eax
call fcn.00408820
add esp, 4
mov ebx, edi
lea ecx, [esp + 0x24]
call fcn.0043ced0
mov eax, ebx
add esp, 0x44c
pop esi
pop edi
pop ebx
pop ebp
ret