Function at 0x40b930
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x444
mov eax, dword [0x44a904]
mov dword [esp + 0x44], 0x21b727d3
mov dword [esp + 0x48], 0xddb923aa
mov dword [esp + 0x4c], 0xd94adf48
mov dword [esp + 0x50], 0xd50bdb3b
mov dword [esp + 0x54], 0xd100d71b
mov dword [esp + 0x58], 0xcdf2d300
mov dword [esp + 0x5c], 0xc927cf14
mov dword [esp + 0x60], 0xc55ccb53
mov dword [esp + 0x64], 0xc157c758
mov dword [esp + 0x68], 0xfd4fc349
mov dword [esp + 0x6c], 0xf908ffdc
mov dword [esp + 0x70], 0xf5dafb14
mov dword [esp + 0x74], 0xf126f727
mov dword [esp + 0x78], 0xed22f326
mov dword [esp + 0x7c], 0xe9ceef29
mov dword [esp + 0x80], 0xe571eb01
mov dword [esp + 0x84], 0xe128e772
mov dword [esp + 0x88], 0x9d27e32c
mov dword [esp + 0x8c], 0x99169fbc
mov dword [esp + 0x90], 0x95569b56
mov dword [esp + 0x94], 0x91b6974f
mov dword [esp + 0x98], 0x8d029353
mov dword [esp + 0x9c], 0x891a8f1c
mov dword [esp + 0xa0], 0x85638b17
mov dword [esp + 0xa4], 0x8164871b
mov dword [esp + 0xa8], 0xbd198375
mov dword [esp + 0xac], 0xb96fbf30
mov dword [esp + 0xb0], 0xb577bb77
mov dword [esp + 0xb4], 0xb160b77d
mov dword [esp + 0xb8], 0xad7cb37d
mov dword [esp + 0xbc], 0xa976af8c
mov dword [esp + 0xc0], 0xa552ab5d
mov dword [esp + 0xc4], 0xa151a748
mov dword [esp + 0xc8], 0x5d76a354
mov dword [esp + 0xcc], 0x59ca5f7c
mov dword [esp + 0xd0], 0x55cf5bc3
mov dword [esp + 0xd4], 0x517657cb
mov dword [esp + 0xd8], 0x4dcd53a9
mov dword [esp + 0xdc], 0x49db4fd1
mov dword [esp + 0xe0], 0x45914bd9
mov dword [esp + 0xe4], 0x41bb4764
mov dword [esp + 0xe8], 0x7dd043d8
mov dword [esp + 0xec], 0x79e97fed
mov dword [esp + 0xf0], 0x75ab7be7
mov dword [esp + 0xf4], 0x71a577a7
mov dword [esp + 0xf8], 0x6da473bb
mov dword [esp + 0xfc], 0x69b86fbc
mov dword [esp + 0x100], 0x65bc6bb8
mov dword [esp + 0x104], 0x614667b4
mov dword [esp + 0x108], 0x1d81638d
mov dword [esp + 0x10c], 0x19fd1f82
mov dword [esp + 0x110], 0x15811b8a
mov dword [esp + 0x114], 0x11d917c5
mov dword [esp + 0x118], 0xddb13dd
mov dword [esp + 0x11c], 0x9c30fda
mov dword [esp + 0x120], 0x50a0bc6
mov dword [esp + 0x124], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe3
ja 0x40bbd3
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x44]
add ecx, 0x72d0e279
xor ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0xa3
mov edx, dword [esp]
mov byte [esp + edx + 0x44], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe4
jb 0x40bba0
mov ebx, dword [esp + 0x470]
mov edi, dword [esp + 0x46c]
lea esi, [esp + 0x44]
push 0
push 0
push 0
push 0
push esi
call eax
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x444f44]
xor ebp, ebp
xor eax, eax
test edi, edi
setne al
mov ecx, edi
xor edi, edi
jmp dword [eax*4 + 0x444fc4]
mov ecx, dword [esp + 0x458]
mov eax, dword [0x44a908]
mov dword [esp + 0x44], 0x919e9c51
mov byte [esp + 0x48], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x40bc70
nop
nop
nop
nop
mov edx, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 0x44]
add edx, 0x1db602a5
xor edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
add dl, 0xc7
mov edi, dword [esp]
mov byte [esp + edi + 0x44], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x40bc40
movzx edx, word [esp + 0x44]
push 0
push edx
push ecx
push ebp
call eax
xor ecx, ecx
mov dword [esp + 0xc], eax
test eax, eax
setne cl
mov dword [esp + 0x40], ebp
jmp dword [ecx*4 + 0x444f4c]
xor edi, edi
xor ebp, ebp
jmp 0x40bf4c
mov eax, dword [0x44a90c]
mov dword [esp + 0x10], 0x199a1b1c
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 6
ja 0x40bd14
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 + 0x10]
lea edi, [ecx + edx]
add edi, 0x4fdd663b
add ecx, 0x3b
and ecx, edx
mov edx, edi
not edx
and edx, ecx
add edx, ecx
not ecx
and ecx, edi
sub ecx, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x44]
add cl, 0xd9
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 7
jb 0x40bcd0
mov ecx, dword [esp + 0x45c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x44], 0x73a571a0
mov dword [esp + 0x48], 0x7fa27daf
mov word [esp + 0x4c], 0x7978
mov dword [esp + 0x4e], 0
mov dword [esp + 8], 0
mov edi, dword [esp + 8]
cmp edi, 0xd
ja 0x40bd97
nop
mov edi, dword [esp + 8]
mov ebx, dword [esp + 8]
movzx ebx, byte [esp + ebx + 0x44]
lea ebp, [edi + ebx]
add ebp, 0x7ace3614
add edi, 0x14
and edi, ebx
mov ebx, ebp
not ebx
and ebx, edi
add ebx, edi
not edi
and edi, ebp
sub edi, ebx
mov dword [esp], edi
mov ebx, dword [esp]
add bl, 0x9c
mov edi, dword [esp + 8]
mov byte [esp + edi + 0x44], bl
inc dword [esp + 8]
mov edi, dword [esp + 8]
cmp edi, 0xe
jb 0x40bd50
push edx
push 0
push 0
push 0
push ecx
push esi
push dword [esp + 0x24]
call eax
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
xor ebp, ebp
jmp dword [ecx*4 + 0x444f54]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x468]
mov edi, dword [esp + 0x464]
mov ecx, dword [esp + 0x460]
movzx eax, byte [0x44aa3c]
jmp dword [eax*4 + 0x444f5c]
mov esi, ecx
jmp dword [0x444f68]
mov dword [esp + 0x10], 0xc3adc183
mov dword [esp + 0x14], 0xc7adc5ab
mov dword [esp + 0x18], 0xcbafc9a1
mov dword [esp + 0x1c], 0xcfeecd96
mov dword [esp + 0x20], 0xf38df18f
mov dword [esp + 0x24], 0xf790f597
mov dword [esp + 0x28], 0xfb97f987
mov dword [esp + 0x2c], 0xff81fd6b
mov dword [esp + 0x30], 0xe37be182
mov dword [esp + 0x34], 0xe7bbe574
mov word [esp + 0x38], 0xe9e8
mov dword [esp + 0x3a], 0
mov byte [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2e
ja 0x40beac
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x10]
add ecx, 0xe016bdd0
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
mov edx, ecx
not edx
and edx, eax
mov ebp, eax
not ebp
and ecx, ebp
sub ecx, edx
xor eax, ecx
and ecx, ebp
add ecx, ecx
sub ecx, eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x44]
add al, 0xf0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2f
jb 0x40be60
movzx eax, word [esp + 0x10]
test ax, ax
je 0x40bed1
lea esi, [esp + 0x44]
lea ecx, [esp + 0x12]
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40bec0
mov word [esi], 0
movzx eax, word [0x44aa3e]
test ax, ax
je 0x40bf05
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi + ecx], ax
movzx eax, word [ecx + 0x44aa40]
add ecx, 2
test ax, ax
jne 0x40bef0
add esi, ecx
mov word [esi], 0
lea eax, [esp + 0x44]
push 0x20000000
push 0xffffffffffffffff
push eax
push dword [esp + 0x10]
call dword [0x44a918]
mov edi, dword [esp + 0x464]
mov ebx, dword [esp + 0x468]
mov esi, dword [esp + 0x460]
jmp dword [0x444f68]
push dword [esp + 0xc]
call dword [0x44a930]
mov ebx, dword [esp + 0x470]
push dword [esp + 0x40]
call dword [0x44a930]
xor eax, eax
mov ecx, dword [esp + 0x46c]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x444fc4]
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x444fdc]
jmp dword [0x444fe8]
push ebp
call fcn.0043a340
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
call fcn.0043a340
add esp, 4
jmp dword [0x444fec]
mov eax, dword [case.0x40bbf9.36]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [ecx], ebp
jmp dword [0x444fd4]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x445004]
jmp dword [0x44500c]
mov dword [ebx], edi
jmp dword [0x445018]
mov dword [ebx], edi
mov dword [ebx], edi
jmp dword [0x445018]
test ebp, ebp
setne al
add esp, 0x444
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [ebp + edi], 0
mov esi, dword [esp + 4]
jmp dword [0x444fb8]
mov dword [esp + 0x10], 0
mov eax, esi
add eax, edi
lea ecx, [esp + 0x10]
push ecx
push dword [esp + 0x48]
push eax
push dword [esp + 0x10]
call dword [0x44a928]
add edi, dword [esp + 0x10]
mov ebp, esi
xor eax, eax
jmp dword [eax*4 + 0x444f94]
mov ebp, esi
mov esi, dword [esp + 4]
push ebx
push esi
call dword [0x44a924]
test eax, eax
setne cl
mov eax, dword [esp + 0x44]
test eax, eax
setne dl
and dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x444f84]
add eax, edi
inc eax
push eax
push ebp
call fcn.0043ca00
add esp, 8
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x444f8c]
mov esi, ebp
mov eax, 1
jmp dword [eax*4 + 0x444f94]
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x444f9c]
mov esi, dword [esp + 4]
jmp dword [0x444fb8]
push 0
push esi
call dword [0x44a920]
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
xor ebp, ebp
jmp dword [ecx*4 + 0x444f7c]
mov dword [esp + 0x44], 0
xor edi, edi
lea ebx, [esp + 0x44]
xor ebp, ebp
jmp 0x40c055
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
mov esi, dword [esp + 4]
jmp dword [ecx*4 + 0x444f74]
jmp dword [0x444fb8]
push esi
call dword [0x44a930]
nop
nop
nop
nop
nop
push esi
call dword [0x44a930]
jmp dword [0x444fc0]
xor eax, eax
mov ecx, esi
neg ecx
sbb eax, eax
push 0
push ebx
push ebx
push edi
push eax
push esi
push dword [esp + 0x1c]
call dword [0x44a91c]
xor ebp, ebp
mov eax, esi
neg eax
mov eax, 0
sbb eax, eax
push 0
push ebx
push ebx
push edi
push eax
push esi
push dword [esp + 0x1c]
call dword [0x44a91c]
jmp dword [0x444f70]
mov esp, 0xbc140040
inc eax
add byte [edx - 0x64ffbf44], dl
mov esp, 0xbf3b0040
inc eax
add byte [eax - 0x20ffbf43], bh
mov ebp, 0xbde70040
inc eax
add byte [0x360040c1], bl
rol dword [eax], 0x1d
rol dword [eax], 0xea
rol byte [eax], 0xfe
rol byte [eax], 0xba
rol byte [eax], 0xfe
rol byte [eax], 0xd5
rol byte [eax], 0xa2
rol byte [eax], 0x77
rol byte [eax], 0x20
rol byte [eax], 0x94
rol byte [eax], 0x4f
rol byte [eax], 0xa2
rol byte [eax], 0xb0
rol byte [eax], 0xa
rol byte [eax], 1
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx], cl
rol byte [eax], 4
rol dword [eax], 0x10
rol dword [eax], 0x10
rol dword [eax], 0x3b
mov edi, 0xbf6b0040
inc eax
add al, al
mov edi, 0xbfc00040
inc eax
add al, al
mov edi, 0xbfc80040
inc eax
add al, al
mov edi, 0xbfc80040
inc eax
add byte [ecx - 0x41], bh
inc eax
add byte [edi - 0x41], bh
inc eax
add byte [eax - 0x60ffbf41], dl
mov edi, 0xbf900040
inc eax
add byte [eax - 0x4fffbf41], dh
mov edi, 0xbfb00040
inc eax
add al, cl
mov edi, 0xbffa0040
inc eax
add dh, dl
mov edi, 0xbfdc0040
inc eax
add al, dh
mov edi, 0xbff00040
inc eax
add dl, bh
mov edi, 0x10040
add byte [eax], al
add dword [eax], eax
add byte [eax], al
cli
mov edi, 65600
add byte [eax], al
test eax, 0x140040c7
mov dword [eax], case.0x40c40d.1