Function at 0x509000
Capabilities:
Encode data using xor

Disassembly:
push eax
push ecx
push edx
push ebx
push ebp
push esi
push edi
call 0x50900c
pop eax
sub eax, 0x8c40c
push 0
pop ecx
push eax
xor dword [eax + 0x15c], 0x7c6a0ae0
not dword [eax + 0x54]
sub dword [eax + 0x234], 0x235d3014
not dword [eax + 0x3bc]
sub dword [eax + 0x134], 0x5aa17a90
xor dword [eax + 0x1a8], 0x7e7b3eaa
sub dword [eax + 0x360], 0x229e49dc
sub dword [eax + 0x30c], 0x575c656a
xor dword [eax + 0x7c], 0x78f417f1
xor dword [eax + 0x2c], 0x47d712b8
not dword [eax + 0x278]
not dword [eax + 0x3d0]
xor dword [eax + 0x228], 0x287124f
add dword [eax + 0x1b0], 0x138d4efb
xor dword [eax + 0x1a0], 0x4cd55fbe
add dword [eax + 0x12c], 0x475e5595
add dword [eax + 0x334], 0x5bc500b4
add dword [eax + 0x10c], 0x47747662
sub dword [eax + 0x2dc], 0x3d835bca
sub dword [eax + 0x24], 0x55db64c4
add dword [eax + 0x2c0], 0x21170d44
add dword [eax + 0x2b8], 0x1e43ef
sub dword [eax + 0xc8], 0xb842421
xor dword [eax + 0x25c], 0x53fd6f1f
add dword [eax + 0x330], 0x2004493b
xor dword [eax + 0x74], 0x2e1d20a3
xor dword [eax + 0x2a8], 0x33a10b59
add dword [eax + 0xa8], 0x3caa1d34
not dword [eax + 0x2e8]
add dword [eax + 0x148], 0x12011d90
xor dword [eax + 0xd4], 0x30032ff2
xor dword [eax + 0x154], 0x78530b9e
not dword [eax + 0x30]
xor dword [eax + 0x2f4], 0x5d47721
sub dword [eax + 0xac], 0x10f54a0
add dword [eax + 0xb0], 0x2f802096
sub dword [eax + 0x1a4], 0x20ae2324
xor dword [eax + 0xec], 0x429a1de1
add dword [eax + 0x118], 0x4ab518be
xor dword [eax + 0x270], 0x52b40594
sub dword [eax + 0x3f0], 0x76b22788
sub dword [eax + 0x2b0], 0x70853966
not dword [eax + 0x3c0]
add dword [eax + 0x308], 0x600169ed
not dword [eax + 0x2cc]
sub dword [eax + 0x128], 0x564460d4
xor dword [eax + 0xc0], 0xca64ab8
xor dword [eax + 0x44], 0xc944174
not dword [eax + 0x35c]
xor dword [eax + 0x3f8], 0x18784c2a
xor dword [eax + 0x1ac], 0x1dc6890
add dword [eax + 0xf0], 0x699a1715
xor dword [eax + 0xa0], 0x7d6c2193
sub dword [eax + 0x31c], 0x71cf7c10
sub dword [eax + 0x288], 0x7f2a39d2
sar byte [ecx], cl
sub bh, byte [edi - 0x7f]
test al, 0xd8
add dword [eax], eax
add byte [ebp + 0x6d], bh
sub edx, dword [eax - 0x7f]
jo 0x509271
sti
dec ebp
inc edx
aaa
not dword [eax + 0x204]
add dword [eax + 0x378], 0x50c5577b
xor dword [eax + 0x37c], 0x7f7d1c88
sub dword [eax + 0x358], 0xc1e3573
not dword [eax + 0x3e0]
not dword [eax + 0x98]
add dword [eax + 0x230], 0x3b300f44
xor dword [eax + 0x384], 0xcb33a4b
add dword [eax + 4], 0x6de500ea
add dword [eax + 0xbc], 0x69242678
sub dword [eax + 0x3c], 0x6f7a6109
xor dword [eax + 0x78], 0xcd4535d
sub dword [eax + 0x68], 0x4f4f7291
sub dword [eax + 0x40], 0x34e97e55
xor dword [eax + 0x3e4], 0x64345383
xor dword [eax + 0xa4], 0x5c0f71f1
add dword [eax + 0x260], 0x7376655b
sub dword [eax + 0x3ac], 0x3f8e5014
add dword [eax + 0x110], 0x1fe439da
sub dword [eax + 0x328], 0x66ff2d62
not dword [eax + 0x1bc]
sub dword [eax + 0xe4], 0x13f3f08
xor dword [eax + 0x20c], 0x5bf60837
not dword [eax + 0x3c4]
xor dword [eax + 0x168], 0x5cd163b7
sub dword [eax + 0x258], 0x24356fb5
sub dword [eax + 0x290], 0x2e6e21af
add dword [eax + 0xd8], 0x4e5612e3
add dword [eax + 0x36c], 0x312d745f
not dword [eax + 0x2f8]
add dword [eax + 0x1f4], 0x47da1072
add dword [eax + 0xc4], 0x6b147938
xor dword [eax + 0xe0], 0x6f787e7b
not dword [eax + 0x2bc]
add dword [eax + 0x3cc], 0x85c3a77
add dword [eax + 0xf8], 0x2b9f1885
add dword [eax + 0x198], 0x30896068
sub dword [eax + 0x2fc], 0x673d5f2b
add dword [eax + 0x310], 0x55ff1ae3
not dword [eax + 0x23c]
not dword [eax + 0x5c]
sub dword [eax + 0x368], 0x464260de
xor dword [eax + 0x224], 0x14c94a99
xor dword [eax + 0xe8], 0x594f0d2f
sub dword [eax + 0x11c], 0x57fd5da1
not dword [eax + 0x1f8]
add dword [eax + 0x158], 0x7c746b94
not dword [eax + 0x294]
sub dword [eax + 0x3a0], 0x2bd11907
sub dword [eax + 0x318], 0x77a77d5a
sub dword [eax + 0x364], 0x535c0cad
sub dword [eax + 0x120], 0x2c4353bd
not dword [eax + 0x32c]
xor dword [eax + 0x180], 0x631d5b8b
sub dword [eax + 0x1dc], 0x5f27704f
xor dword [eax + 0x370], 0x4dd23934
not dword [eax + 0x58]
add dword [eax + 0x250], 0x365512ed
add dword [eax + 0x3b8], 0x2fe20459
not dword [eax + 0x2c4]
xor dword [eax + 0x1e0], 0x99a40d3
sub dword [eax + 0x1f0], 0x5f886099
not dword [eax + 0x34]
sub dword [eax + 0x8c], 0xf0d7b50
add dword [eax + 0x14], 0x537d6848
not dword [eax + 0x64]
add dword [eax + 0x3fc], 0x163336e
not dword [eax + 0x33c]
add dword [eax + 0x208], 0xae931ef
add dword [eax + 0x2d8], 0x17485d54
xor dword [eax + 0x124], 0x5f63117f
xor dword [eax + 0x28], 0x68756c33
not dword [eax + 0x220]
add dword [eax + 0x2d0], 0x70615418
xor dword [eax + 0x338], 0x77ca02ab
sub dword [eax + 0x194], 0x6c20009a
not dword [eax + 0x178]
xor dword [eax + 0x2a0], 0x170c1ea5
xor dword [eax + 8], 0x5f6d2cb7
not dword [eax + 0x190]
sub dword [eax + 0x34c], 0x32d8064e
not dword [eax + 0x238]
sub dword [eax + 0x1d4], 0x7bd4564f
add dword [eax + 0x340], 0x1e6c53df
not dword [eax + 0x304]
add dword [eax + 0x26c], 0x282e2dea
add dword [eax + 0x388], 0x15a814d9
sub dword [eax + 0x314], 0x7a860516
sub dword [eax + 0x90], 0x6a341f05
sub dword [eax + 0x3b0], 0x1a266e99
xor dword [eax + 0x170], 0x59514b0c
sub dword [eax + 0x174], 0x37a762f7
sub dword [eax + 0x164], 0x1c343b6b
not dword [eax + 0x3b4]
add dword [eax + 0x280], 0x7eed46b3
not dword [eax + 0x130]
add dword [eax + 0x160], 0x64ed5fa5
not dword [eax + 0x144]
not dword [eax + 0x300]
xor dword [eax + 0x4c], 0x411e57f7
not dword [eax + 0x214]
sub dword [eax + 0x254], 0x2ede093d
not dword [eax + 0x350]
add dword [eax + 0x188], 0x1f0753ad
add dword [eax + 0x2c8], 0x7b9757a7
xor dword [eax + 0x1e8], 0x250b27c1
xor dword [eax + 0x244], 0x1cb546f8
xor dword [eax + 0x184], 0xe7c0b4e
add dword [eax + 0x1d0], 0x6bb90db2
xor dword [eax + 0x2ec], 0x5f6c2130
not dword [eax + 0x19c]
add dword [eax + 0x2e0], 0x5c7a0496
add dword [eax + 0xd0], 0x42f357ab
xor dword [eax + 0x3c8], 0x69f35f24
not dword [eax + 0x390]
xor dword [eax + 0x2a4], 0x648c6f97
xor dword [eax + 0x1c4], 0x1b4c7942
xor dword [eax + 0x14c], 0xe712c9b
not dword [eax + 0x16c]
not dword [eax + 0xc]
sub dword [eax + 0xdc], 0x1d2d4e5d
xor dword [eax + 0x3dc], 0x1cff4491
add dword [eax + 0x348], 0x2d8f4998
not dword [eax + 0x20]
sub dword [eax + 0x324], 0x6ccf3dd4
sub dword [eax + 0x320], 0x34a0403b
add dword [eax + 0x1cc], 0x66af4786
not dword [eax + 0x274]
xor dword [eax + 0xfc], 0x5adc57ac
add dword [eax + 0x394], 0xea77532
not dword [eax + 0x29c]
add dword [eax + 0x50], 0x2dd9792f
add dword [eax + 0x18c], 0x14647b5d
xor dword [eax + 0x3ec], 0x1e891c70
sub dword [eax + 0x344], 0x2f59095f
sub dword [eax + 0x284], 0x62c448e8
not dword [eax + 0x2ac]
sub dword [eax + 0x28c], 0x18403ee8
xor dword [eax + 0x298], 0x284a279e
not dword [eax + 0x24c]
xor dword [eax + 0x210], 0x34880a57
sub dword [eax + 0x94], 0x536a63f5
not dword [eax + 0x84]
add dword [eax + 0x1c8], 0x1208403b
not dword [eax + 0x100]
sub dword [eax + 0x70], 0x1de94adc
add dword [eax + 0x39c], 0x1efa72a4
xor dword [eax + 0x138], 0x76721071
sub dword [eax + 0x2f0], 0x6d501bd5
sub dword [eax + 0x380], 0x3bd4307f
not dword [eax + 0x22c]
xor dword [eax + 0x10], 0x2c5122ad
add dword [eax + 0x27c], 0x290b35de
xor dword [eax + 0x38], 0x53ef751c
sub dword [eax + 0xcc], 0x4b491614
xor dword [eax + 0x3a4], 0x3e6a250a
xor dword [eax + 0x1c0], 0x243b02b4
not dword [eax + 0x240]
sub dword [eax + 0x264], 0x56a02c44
sub dword [eax + 0x3d8], 0x296d0b29
sub dword [eax + 0x1b4], 0x3d36788b
not dword [eax + 0x1fc]
sub dword [eax + 0x268], 0x1375ee6
add dword [eax + 0x6c], 0x7a796891
xor dword [eax + 0x104], 0x355a7fa0
xor dword [eax + 0x218], 0x50d25a56
xor dword [eax + 0x38c], 0x3b6265b2
add dword [eax + 0x1ec], 0x1e5c4995
xor dword [eax + 0x354], 0x38ec20b0
add dword [eax + 0xb4], 0x34482ded
add dword [eax + 0x374], 0x124c50c5
xor dword [eax + 0x398], 0x43a324a1
add dword [eax + 0x9c], 0x4b475ea6
add dword [eax + 0x1e4], 0x490c3341
not dword [eax + 0x200]
xor dword [eax + 0xb8], 0x2f47388a
add dword [eax + 0x3a8], 0x75da5002
not dword [eax + 0x2d4]
not dword [eax]
xor dword [eax + 0xf4], 0x8db2a6f
sub dword [eax + 0x248], 0x29d24cbb
not dword [eax + 0x3e8]
xor dword [eax + 0x1b8], 0x7f2a2aea
add dword [eax + 0x48], 0x645b6756
xor dword [eax + 0x3f4], 0x3d8a603c
xor dword [eax + 0x108], 0x5b4d7472
xor dword [eax + 0x140], 0x3ec4760f
xor dword [eax + 0x2e4], 0x47c8702a
not dword [eax + 0x3d4]
sub dword [eax + 0x2b4], 0x48702d64
xor dword [eax + 0x1c], 0x69ae0b61
not dword [eax + 0x80]
add dword [eax + 0x150], 0x5f165f8e
add dword [eax + 0x13c], 0x76301cdc
xor dword [eax + 0x17c], 0x20737d97
sub dword [eax + 0x88], 0x63813da8
add dword [eax + 0x114], 0x59827053
add dword [eax + 0x21c], 0x91d2c9b
add dword [eax + 0x18], 0xf907fd4
add ecx, 0x400
add eax, 0x400
cmp ecx, 0x8c000
jne 0x509017
call fcn.004c6b54
pop edi
pop esi
pop ebp
pop ebx
pop edx
pop ecx
pop eax