Function at 0x588000
Capabilities:
Encode data using xor

Disassembly:
push eax
push ecx
push edx
push ebx
push ebp
push esi
push edi
call 0x58800c
pop edx
sub edx, 0x16d00c
push 0
pop ebx
push edx
xor dword [edx + 0x1c], 0x7b75953
add dword [edx + 0x2d0], 0x2f1a09da
sub dword [edx + 0x294], 0xfc71cb4
not dword [edx + 0x94]
xor dword [edx + 0x23c], 0x621b45e9
xor dword [edx + 0x278], 0x3e891e11
sub dword [edx + 0x38], 0x11f10020
sub dword [edx + 0x364], 0x51ea1560
not dword [edx + 0xd4]
sub dword [edx + 0x180], 0x15180830
add dword [edx + 0xdc], 0x3d4a3471
xor dword [edx + 0x218], 0x18739aa
sub dword [edx + 0xb4], 0x758436f5
xor dword [edx + 0x3c8], 0x1bec65be
not dword [edx + 0x21c]
not dword [edx + 0x84]
xor dword [edx + 0x234], 0x47a641ba
not dword [edx + 0x1e8]
not dword [edx + 0x88]
not dword [edx + 0x50]
sub dword [edx + 0x1e0], 0x722014fe
add dword [edx + 0x398], 0xdb62e56
sub dword [edx + 0x204], 0x38123f83
not dword [edx + 0x3a8]
sub dword [edx + 0x1f8], 0x2a5a4952
xor dword [edx + 0x304], 0x5c8c2e39
sub dword [edx + 0x10c], 0x79277386
add dword [edx + 0x210], 0x3cf74809
sub dword [edx + 0x274], 0x65be3c2b
xor dword [edx + 0x188], 0x30a217ac
sub dword [edx + 0x2ac], 0x2b723ce6
add dword [edx + 0x10], 0x6a477d8f
add dword [edx + 0x78], 0x45467bc3
xor dword [edx + 0x64], 0x5d525b18
add dword [edx + 0x198], 0x57b81786
sub dword [edx + 0x2a0], 0x6755667c
sub dword [edx + 0xc0], 0x1f39749d
sub dword [edx + 0x284], 0x2ed5177c
not dword [edx + 0x130]
add dword [edx + 0x13c], 0x42eb5b5d
sub dword [edx + 0x1c4], 0x5d8e07a5
add dword [edx + 0x354], 0x2e6e6eee
add dword [edx + 0x300], 0x15c66015
add dword [edx + 0x200], 0x2ee90c35
add dword [edx + 0x378], 0xbb62234
xor dword [edx + 0x1cc], 0x41c968ec
add dword [edx + 0x2ec], 0x1020d6e
not dword [edx + 0x37c]
add dword [edx + 0x1dc], 0x2d595b68
add dword [edx + 0x14], 0x9aa17d9
xor dword [edx + 0x1b4], 0x2dd30089
sub dword [edx + 0x238], 0x77dd10b6
xor dword [edx + 0x100], 0x7d913ed2
add dword [edx + 0x90], 0x4cf519b8
not dword [edx + 0xc]
xor dword [edx + 0x214], 0x45974e27
not dword [edx + 0x22c]
not dword [edx + 0x3f8]
xor dword [edx + 0x244], 0x16e4378d
sub dword [edx + 0x2a4], 0x31ff5468
sub dword [edx + 0x6c], 0x24d67d3
xor dword [edx + 0x1f4], 0x39427152
sub dword [edx + 0x174], 0x2db2c32
sub dword [edx + 0x18], 0x45370b4b
add dword [edx + 8], 0x77213339
sub dword [edx + 0x28], 0x21a87e19
not dword [edx + 0x270]
xor dword [edx + 0x248], 0x2acf480a
xor dword [edx + 0x3c4], 0xd195fb3
add dword [edx + 0x1c8], 0x30216713
sub dword [edx + 0x328], 0x3d5e26f9
sub dword [edx + 0x344], 0x2b3144bc
add dword [edx + 0x2e4], 0x48ec7deb
not dword [edx + 0xd0]
xor dword [edx + 0x30c], 0x1c0b0727
xor dword [edx + 0x240], 0x5acc7c2c
not dword [edx + 0x3f4]
xor dword [edx + 0x208], 0xa8d78da
add dword [edx + 0x288], 0x131347e9
add dword [edx + 0x330], 0x9b17eac
sub dword [edx + 0xe4], 0xa1703e0
xor dword [edx + 0x36c], 0x595c01bc
sub dword [edx + 0x3fc], 0x26248a4
sub dword [edx + 0x268], 0x24165fed
xor dword [edx + 0x1a8], 0x1d9a6021
sub dword [edx + 0x264], 0xc1d4b7b
xor dword [edx + 0x54], 0x1549477b
add dword [edx + 0x324], 0x6f5621df
xor dword [edx + 0x26c], 0x70c1542e
not dword [edx + 0x3e8]
not dword [edx + 0x70]
add dword [edx + 0x1bc], 0x405d0325
xor dword [edx + 0x1b0], 0x3a345d1f
add dword [edx + 0x2e8], 0x40e46749
add dword [edx + 0x17c], 0x42d626a3
sub dword [edx + 0x290], 0x1c4662fc
xor dword [edx + 0x31c], 0x5ed11128
sub dword [edx + 0x1ec], 0x48e055e4
add dword [edx + 0x370], 0x5fe61437
not dword [edx + 0x3e0]
add dword [edx + 0x7c], 0x6891db7
sub dword [edx + 0x120], 0x4d069e3
add dword [edx + 0x44], 0x7f30248c
sub dword [edx + 0x14c], 0x7e1d216a
not dword [edx + 0x3bc]
not dword [edx + 0x114]
not dword [edx + 4]
add dword [edx + 0x2c4], 0x6af24a4c
xor dword [edx + 0xbc], 0x2f8b41fa
sub dword [edx + 0x2bc], 0x665c0441
add dword [edx + 0x154], 0x61c21b61
xor dword [edx + 0x35c], 0x45880c47
not dword [edx + 0x310]
sub dword [edx + 0xfc], 0xd742e61
sub dword [edx + 0x338], 0x18d60cd5
add dword [edx + 0x390], 0x76922f6
add dword [edx + 0x12c], 0x2eb87703
not dword [edx + 0x34c]
xor dword [edx + 0x164], 0x712a424e
add dword [edx + 0x28c], 0x662538ae
add dword [edx + 0x3f0], 0x1c8f68c6
not dword [edx + 0x40]
xor dword [edx + 0x394], 0x4b620bf9
sub dword [edx + 0x24c], 0x29cf2f65
not dword [edx + 0x3d4]
add dword [edx + 0x48], 0x245d5deb
xor dword [edx + 0x190], 0x2fb5367d
not dword [edx + 0x4c]
xor dword [edx + 0x20], 0x5e7f6974
xor dword [edx + 0xf8], 0x4b9078e3
not dword [edx + 0x2fc]
add dword [edx + 0x340], 0x37a94c22
sub dword [edx + 0x68], 0x60537a
add dword [edx], 0x20fe182e
not dword [edx + 0xcc]
xor dword [edx + 0x298], 0x9e7385e
xor dword [edx + 0x2f4], 0x37471d14
xor dword [edx + 0x110], 0x2fe74fdf
sub dword [edx + 0x8c], 0x3ea952ea
not dword [edx + 0x374]
not dword [edx + 0x2cc]
xor dword [edx + 0xe0], 0x2c9b7760
sub dword [edx + 0x1e4], 0x41047c3a
add dword [edx + 0x3c], 0x50077e63
xor dword [edx + 0xa4], 0x746a1c1d
sub dword [edx + 0x2d8], 0x40490230
add dword [edx + 0x2e0], 0x1f925da2
xor dword [edx + 0x1a4], 0x362f3a6f
not dword [edx + 0x38c]
add dword [edx + 0x148], 0x86517e0
sub dword [edx + 0x358], 0x63551375
xor dword [edx + 0x128], 0x30c457a8
sub dword [edx + 0x124], 0xac7523d
sub dword [edx + 0x3b4], 0x53655f0a
add dword [edx + 0x168], 0x709d24bd
not dword [edx + 0x3ac]
sub dword [edx + 0x3dc], 0x3ce47931
sub dword [edx + 0xd8], 0x54ed0054
not dword [edx + 0x380]
add dword [edx + 0x224], 0x571a548a
xor dword [edx + 0x2b4], 0x7a896250
add dword [edx + 0x60], 0x729502c7
sub dword [edx + 0x1d0], 0x62565b56
xor dword [edx + 0x34], 0x9165de2
sub dword [edx + 0x24], 0x769f4c37
sub dword [edx + 0x230], 0x3e832681
sub dword [edx + 0x25c], 0x72fa60fb
sub dword [edx + 0x320], 0x384a1c25
add dword [edx + 0x140], 0x1da524a4
add dword [edx + 0x260], 0xbcf23f3
add dword [edx + 0x250], 0x1ecc5b86
not dword [edx + 0xf0]
add dword [edx + 0xf4], 0x37935074
not dword [edx + 0x2f8]
add dword [edx + 0x184], 0x18cb7b76
sub dword [edx + 0xc8], 0x1341453b
xor dword [edx + 0x2c8], 0xcc553fe
xor dword [edx + 0x3cc], 0x5b2d078c
add dword [edx + 0x3d0], 0x299f26c8
xor dword [edx + 0xc4], 0x692c40fc
sub dword [edx + 0x220], 0x4a7f6d89
add dword [edx + 0x104], 0x5589547d
xor dword [edx + 0x158], 0x7bba7559
xor dword [edx + 0x384], 0x4b16291
add dword [edx + 0x118], 0x779f0e3a
sub dword [edx + 0x150], 0x4b2178d0
add dword [edx + 0x1c0], 0x32ce0dd6
add dword [edx + 0x134], 0x101b0864
sub dword [edx + 0x280], 0x511b68d9
sub dword [edx + 0xe8], 0xb44207a
add dword [edx + 0x3ec], 0x1d85452e
not dword [edx + 0x144]
add dword [edx + 0x258], 0x5c90728f
xor dword [edx + 0x1b8], 0x5a253d2f
xor dword [edx + 0x30], 0x3b445e22
xor dword [edx + 0x9c], 0x33854eb7
not dword [edx + 0x3e4]
xor dword [edx + 0x3b8], 0x5bc70ade
add dword [edx + 0x108], 0x6afd0d28
sub dword [edx + 0x80], 0x763b3625
add dword [edx + 0x3a0], 0x776d7b
sub dword [edx + 0x27c], 0x1ddf2c51
sub dword [edx + 0x33c], 0xf5772c6
not dword [edx + 0x98]
sub dword [edx + 0x1ac], 0x6cc25d4b
xor dword [edx + 0x2a8], 0x2905d92
xor dword [edx + 0x368], 0x558946c8
sub dword [edx + 0x20c], 0x562d4350
xor dword [edx + 0xa8], 0x5c91170d
not dword [edx + 0x1fc]
add dword [edx + 0x19c], 0x79212769
add dword [edx + 0x32c], 0x63890e6a
not dword [edx + 0x1a0]
not dword [edx + 0x3b0]
xor dword [edx + 0xb8], 0x2b07139c
xor dword [edx + 0x228], 0x166c54b2
add dword [edx + 0xb0], 0x442c2a67
add dword [edx + 0x2c0], 0x25b85f9d
xor dword [edx + 0x1d8], 0x15537ada
xor dword [edx + 0x360], 0x26800f03
sub dword [edx + 0x388], 0x5d58208a
xor dword [edx + 0x74], 0x706f35be
add dword [edx + 0x3a4], 0x1b9858c8
not dword [edx + 0x2d4]
sub dword [edx + 0x314], 0x58622b87
xor dword [edx + 0x39c], 0x5a763119
add dword [edx + 0x18c], 0x4f6b65f6
not dword [edx + 0x254]
add dword [edx + 0xec], 0x75e6dce
not dword [edx + 0x350]
sub dword [edx + 0x2b8], 0x757a285b
not dword [edx + 0x348]
add dword [edx + 0x194], 0x71da2289
not dword [edx + 0x170]
xor dword [edx + 0x318], 0x39af1b5a
add dword [edx + 0x2b0], 0xf257889
xor dword [edx + 0xa0], 0x39c85541
add dword [edx + 0x160], 0x6d6c07ca
not dword [edx + 0x138]
not dword [edx + 0x2f0]
add dword [edx + 0x29c], 0x83263f5
sub dword [edx + 0x3c0], 0x48b779b2
xor dword [edx + 0x2dc], 0x7f4c7368
xor dword [edx + 0x15c], 0x3f313d18
not dword [edx + 0x58]
sub dword [edx + 0x16c], 0x6da72676
xor dword [edx + 0x2c], 0x28a83707
sub dword [edx + 0x178], 0x56a41dd6
add dword [edx + 0x3d8], 0x1c8d5416
not dword [edx + 0xac]
not dword [edx + 0x1d4]
sub dword [edx + 0x5c], 0x406c43de
sub dword [edx + 0x11c], 0x62414ce1
not dword [edx + 0x1f0]
add dword [edx + 0x334], 0x7776ca3
not dword [edx + 0x308]
add ebx, 0x400
add edx, 0x400
cmp ebx, 0x8c000
jne 0x588017
call fcn.00464f54
pop edi
pop esi
pop ebp
pop ebx
pop edx
pop ecx
pop eax
push ebp
mov ebp, esp
sub esp, 0x15
call fcn.00588b24
call fcn.00588961
call fcn.00588a3f
mov sp, di
lea edx, [0x401d56]
mov ecx, edx
test ecx, eax
jne 0x588920
push 0x15
test ecx, esp
jne 0x588926
mov esp, ebp
pop ebp
ret