Function at 0x429b80
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 + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x54], 0xc356c153
mov dword [esp + 0x58], 0xc7a7c5a1
mov dword [esp + 0x5c], 0xcbe4c9a5
mov dword [esp + 0x60], 0xcf56cda9
mov dword [esp + 0x64], 0xf3f2f195
mov byte [esp + 0x68], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xd0
xor cl, byte [esp + eax + 0x54]
add cl, 0xf0
mov byte [esp + eax + 0x54], cl
inc eax
cmp eax, 0x15
jne case.default.0x429c07
lea eax, [esp + 0x54]
lea ecx, [esp + 0x3c]
push eax
call fcn.0043c540
shr eax, 0x1f
jmp dword [eax*4 + 0x44b53c]
lea ecx, [esp + 0x3c]
push 0x410
call fcn.0043c7a0
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44b554]
lea ebx, [esp + 0x54]
jmp dword [0x44b560]
mov eax, dword [case.0x429c07.4]
xor ebx, ebx
nop
nop
nop
nop
nop
jmp eax
lea ecx, [esp + 0x3c]
call fcn.0043c900
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [edi]
mov dword [esp + 0xc], edi
mov edi, dword [edi + 4]
push 0x400
push 0
push ebx
call fcn.0040c880
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x3c]
push eax
push 0
push 0x400
push ebx
push edi
push esi
call fcn.0043d080
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 + 0x44b594]
mov eax, dword [esp + 0x2c]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44b58c]
jmp dword [0x44b5ec]
mov eax, dword [esp + 8]
mov byte [eax], 0
mov dword [esp + 0x54], 0xeff2f1c1
mov dword [esp + 0x58], 0xf3e7e6ed
mov dword [esp + 0x5c], 0xf8e4e6e1
mov dword [esp + 0x60], 0xeafade23
mov dword [esp + 0x64], 0xc73dfcf1
mov dword [esp + 0x68], 0xf9f3fefb
mov dword [esp + 0x6c], 0xe3ee37eb
mov dword [esp + 0x70], 0x1de8
mov byte [esp + 0x74], 0
xor eax, eax
nop
nop
movzx edx, byte [esp + eax + 0x54]
lea ecx, [eax + 0xc0]
mov esi, eax
xor esi, 0x3f
xor ecx, esi
and ecx, edx
xor ecx, esi
mov dl, 0x3f
sub dl, cl
mov byte [esp + eax + 0x54], dl
inc eax
cmp eax, 0x21
jne 0x42a090
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 8]
sub esi, edx
lea eax, [esp + 0x54]
mov ecx, dword [ebp + 8]
push esi
push edx
push eax
call fcn.0040d2e0
jmp dword [0x44b5ec]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
xor eax, eax
cmp edi, esi
sete al
xor ebx, ebx
jmp dword [eax*4 + 0x44b56c]
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.0040c6f0
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
lea ebx, [esp + 0x54]
mov dword [esp + 0x50], esi
jmp dword [ecx*4 + 0x44b584]
jmp dword [0x44b604]
mov dword [esp + 0x54], 0x86ed948f
mov dword [esp + 0x58], 0x9482e78c
mov dword [esp + 0x5c], 0x98839de3
mov dword [esp + 0x60], 0xed869aff
mov dword [esp + 0x64], 0x8cf5feee
mov dword [esp + 0x68], 0x95f0faf7
mov dword [esp + 0x6c], 0xaea7ca9a
mov dword [esp + 0x70], 0xaac1a8d1
mov dword [esp + 0x74], 0xc2dcd2d2
mov dword [esp + 0x78], 0xa2c5ffd3
mov dword [esp + 0x7c], 0x11e2dbc3
mov byte [esp + 0x80], 0
mov eax, 0x1760647
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x17605f3]
mov ecx, eax
and ecx, edx
mov esi, ecx
and esi, 0xfffffffd
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
xor edi, 2
imul edi, esi
add ecx, edi
add edx, eax
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x9d
mov byte [esp + eax - 0x17605f3], cl
inc eax
cmp eax, 0x1760674
jne 0x42a220
lea eax, [esp + 0x30]
lea ecx, [esp + 0x3c]
push 0
push 0x2b
push ebx
push eax
call fcn.0043d1f0
jmp dword [0x44b568]
mov dword [esp + 0x54], 0x86ed948f
mov dword [esp + 0x58], 0x9482e78c
mov dword [esp + 0x5c], 0x98839de3
mov dword [esp + 0x60], 0xed869aff
mov dword [esp + 0x64], 0x8cf5feee
mov dword [esp + 0x68], 0x95f0faf7
mov dword [esp + 0x6c], 0xaea7ca9a
mov dword [esp + 0x70], 0xaac1a8d1
mov dword [esp + 0x74], 0xc2dcd2d2
mov dword [esp + 0x78], 0xa2c5ffd3
mov dword [esp + 0x7c], 0x11e2dbc3
mov byte [esp + 0x80], 0
mov eax, 0x1760647
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x17605f3]
mov ecx, eax
and ecx, edx
mov esi, ecx
and esi, 0xfffffffd
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
xor edi, 2
imul edi, esi
add ecx, edi
add edx, eax
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x9d
mov byte [esp + eax - 0x17605f3], cl
inc eax
cmp eax, 0x1760674
jne 0x42a2f0
lea eax, [esp + 0x54]
lea edx, [esp + 0x30]
lea ecx, [esp + 0x3c]
push 0
push 0x2b
push eax
push edx
call fcn.0043d1f0
jmp case.0x429c07.8
pushfd
inc edx
add byte [esp + ebx*4], dh
inc edx
add byte [eax - 0x64], al
inc edx
add byte [eax - 0x64], al
inc edx
add byte [eax - 0x64], al
inc edx
add byte [edx - 0x64], al
inc edx
add byte [edx - 0x64], al
inc edx
add byte [edx], ch
pushfd
inc edx
add byte [ebp - 0x5e], bh
inc edx
add byte [edi + 0x7d0042a1], ch
mov byte [0xa0fb0042], al
inc edx
add byte [ebx], dl
mov eax, dword [0xa16c0042]
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x5d], dl
inc edx
add byte [edi], ah
mov al, byte [0x9c600042]
inc edx
add byte [edx], bh
mov al, byte [0xa0400042]
inc edx
add byte [eax - 0x3fffbd64], dh
pushfd
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x5d], dl
inc edx
add byte [eax], al
mov al, byte [0x9ccd0042]
inc edx
add byte [eax], al
mov al, byte [0x9d0f0042]
inc edx
add byte [eax], al
mov al, byte [0x9d430042]
inc edx
add dl, al
sahf
inc edx
add bl, cl
sahf
inc edx
add dl, ah
sahf
inc edx
add bh, ch
sahf
inc edx
add byte [edx - 0x73ffbd61], al
lahf
inc edx
add byte [eax], dl
mov al, byte [0xa0100042]
inc edx
add byte [edx], dl
mov al, byte [0xa0100042]
inc edx
add bl, dl
mov al, byte [0xa0f00042]
inc edx
add al, dh
mov al, byte [0xa0f00042]
inc edx
add byte [ecx + 0x42], ch
add al, dh
mov al, byte [0xa1960042]
inc edx
add byte [edx - 0x5f], dh
inc edx
add byte [edx - 0x64], al
inc edx
add byte [esi + 0x2b0042a1], dl