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 ebx
sub ebx, 0x8c40c
push 0
pop ecx
push ebx
xor dword [ebx + 0x140], 0x6e954b8
add dword [ebx + 0x3d8], 0xcdc33a0
add dword [ebx + 0x170], 0x63b46549
sub dword [ebx + 0x1e0], 0x3e97eb8
add dword [ebx + 0x340], 0x39cf1c2e
add dword [ebx + 0x2b4], 0x4c33803
add dword [ebx + 0x9c], 0x8824c02
not dword [ebx + 0x384]
xor dword [ebx + 0x60], 0x624d50c0
not dword [ebx + 0x110]
add dword [ebx + 0x30], 0x2c1128a
add dword [ebx + 0x358], 0xdb737b8
not dword [ebx + 0x21c]
sub dword [ebx + 0x38], 0x27aa2d25
xor dword [ebx + 0x244], 0x73316471
xor dword [ebx + 0x204], 0x42bd489e
sub dword [ebx + 0x274], 0x7e63e1f
sub dword [ebx + 0x17c], 0x29f311e7
xor dword [ebx + 0x3e4], 0x7c027edc
sub dword [ebx + 0x298], 0x39ef6fe9
add dword [ebx + 0x3b0], 0x7e042375
add dword [ebx + 0x354], 0x12280ce4
add dword [ebx + 0x300], 0x7053d06
sub dword [ebx + 0x2f0], 0x491e510f
xor dword [ebx + 0x1e8], 0x4de15b66
add dword [ebx + 0x1dc], 0x2b177006
sub dword [ebx + 0x180], 0x1f7a63e3
not dword [ebx + 0x3a0]
xor dword [ebx + 0x14c], 0x39da19bc
sub dword [ebx + 0x1d0], 0x4f452144
sub dword [ebx + 0x184], 0x74f50a29
add dword [ebx + 0x260], 0x7536896
xor dword [ebx + 0x1f4], 0x4a8d4c1d
xor dword [ebx + 0x38c], 0x6c9953ae
not dword [ebx + 0xc8]
not dword [ebx + 0x344]
xor dword [ebx + 0xf0], 0x6dbe59cd
sub dword [ebx + 0x2c], 0xa915e13
not dword [ebx + 0x3cc]
add dword [ebx + 0x324], 0x2ab63347
sub dword [ebx + 0x248], 0x5c9d072a
sub dword [ebx + 0x3f0], 0x4e8979f2
sub dword [ebx + 0x19c], 0x11b05335
xor dword [ebx + 0x30c], 0x18121471
xor dword [ebx + 0x3ac], 0x4f0a3986
add dword [ebx + 0xe8], 0x5b6227f7
xor dword [ebx + 0x230], 0x492340f6
sub dword [ebx + 0xd4], 0x59785a1b
sub dword [ebx + 0x284], 0x198a48d2
not dword [ebx + 0x190]
xor dword [ebx + 4], 0x4fc71491
add dword [ebx + 0x178], 0x6f7c2e32
xor dword [ebx + 0x188], 0x320e70b1
sub dword [ebx + 0x2a0], 0x46813b84
xor dword [ebx + 0x54], 0x11b24902
add dword [ebx + 0x2c0], 0x1bba4f7a
not dword [ebx + 0x250]
add dword [ebx + 0x1c8], 0x1e500472
not dword [ebx + 0x1c0]
not dword [ebx + 0x24c]
sub dword [ebx + 0x25c], 0x52695437
not dword [ebx + 0x27c]
xor dword [ebx + 0x218], 0x36e52002
xor dword [ebx + 0x294], 0x3ea44adb
not dword [ebx + 0x1cc]
xor dword [ebx + 0x26c], 0x43e57fa6
add dword [ebx + 0x3a4], 0x7f903d26
not dword [ebx + 0x20]
not dword [ebx + 0x2a4]
add dword [ebx + 0x2f8], 0x724a0185
not dword [ebx + 0x234]
xor dword [ebx + 0x2d8], 0x319043e5
xor dword [ebx + 0x240], 0x75081b64
xor dword [ebx + 0x70], 0x4b581ee1
sub dword [ebx + 0x220], 0x77d20533
xor dword [ebx + 0x144], 0x757b0ae9
sub dword [ebx + 0x318], 0x49c374a1
not dword [ebx + 0x50]
not dword [ebx + 0xf8]
xor dword [ebx + 0x134], 0x3a713d34
not dword [ebx + 0x16c]
not dword [ebx + 0x158]
sub dword [ebx + 0xac], 0x19841406
add dword [ebx + 0xd8], 0x9874c96
not dword [ebx + 0x270]
add dword [ebx + 0xe0], 0x7b1e24e6
xor dword [ebx + 0x2cc], 0x40c15060
not dword [ebx + 0x3bc]
not dword [ebx + 0x388]
not dword [ebx + 0x11c]
add dword [ebx + 0x88], 0x60443ea6
xor dword [ebx + 0x128], 0x124e5d27
sub dword [ebx + 0x32c], 0x4aec4777
sub dword [ebx + 0x1fc], 0x87544a3
add dword [ebx + 0x1b4], 0x228c4e80
xor dword [ebx + 0x264], 0x66ed5d36
xor dword [ebx + 0x200], 0x4cf27116
sub dword [ebx + 0xc4], 0x675d47b0
xor dword [ebx + 0xb8], 0x40202a2c
add dword [ebx + 0x368], 0x2c017f36
add dword [ebx + 0x168], 0x2da77822
xor dword [ebx + 0x3d0], 0x4dd55d0b
add dword [ebx + 0x14], 0x2c883b80
not dword [ebx + 0x31c]
add dword [ebx + 0xbc], 0x3fe6430f
add dword [ebx + 0x360], 0x3ac646b0
sub dword [ebx + 0x2e8], 0x18165098
sub dword [ebx + 0x48], 0xa660dca
add dword [ebx + 0xa8], 0xea732a8
sub dword [ebx + 0x1a0], 0x3bc00bc3
add dword [ebx + 0x338], 0x48b47c27
sub dword [ebx + 0x364], 0x671277fa
xor dword [ebx + 0xfc], 0x7f6d75ed
not dword [ebx + 0x90]
add dword [ebx + 0x58], 0x37522d89
not dword [ebx + 0x1d4]
add dword [ebx + 0x2e0], 0x5db409e0
not dword [ebx + 0x2fc]
xor dword [ebx + 0x150], 0x43984160
sub dword [ebx + 0xc], 0x29386d59
xor dword [ebx + 0x314], 0x7d766250
add dword [ebx + 0x4c], 0x68652ee6
xor dword [ebx + 0x154], 0x558117dd
add dword [ebx + 0x3f8], 0x6e8d7778
sub dword [ebx + 0x288], 0x712727f7
not dword [ebx + 0x5c]
sub dword [ebx + 0x380], 0x390f59f3
xor dword [ebx + 0x2d4], 0x322162cc
add dword [ebx + 0x24], 0x2edc6e0c
add dword [ebx + 0x74], 0x273c2903
add dword [ebx + 0x1f8], 0x91a1ee2
sub dword [ebx + 0x194], 0x2cae77a3
not dword [ebx + 0x3c]
sub dword [ebx + 0x1b0], 0x49ae5a05
sub dword [ebx + 0x208], 0x2c756381
sub dword [ebx + 0x2f4], 0x4a307491
not dword [ebx + 0x224]
add dword [ebx + 0x3fc], 0x353e0f79
not dword [ebx + 0x68]
add dword [ebx + 0x18], 0x4d480fba
sub dword [ebx + 0x394], 0x62f8504a
add dword [ebx + 0x1bc], 0x77876cd1
not dword [ebx + 0x330]
add dword [ebx + 0x94], 0x64566ee1
add dword [ebx + 0x310], 0x5fb45a92
sub dword [ebx + 0x1e4], 0x50884265
sub dword [ebx + 0x34], 0x1bc161af
not dword [ebx + 0x18c]
xor dword [ebx + 0x374], 0x2383096b
sub dword [ebx + 0x10], 0x8795e47
add dword [ebx + 0xb0], 0x72b50967
sub dword [ebx + 0x84], 0x26126c9b
xor dword [ebx + 0x238], 0x355943d2
sub dword [ebx + 0x148], 0x39d23e34
not dword [ebx + 0x3e8]
xor dword [ebx + 0xa0], 0x88f4b28
not dword [ebx + 0x40]
add dword [ebx + 8], 0x44f100bb
xor dword [ebx + 0x2c4], 0x33f91fb1
xor dword [ebx + 0x334], 0x7b0f7c29
add dword [ebx + 0x348], 0x3286536a
xor dword [ebx + 0x80], 0x4413258f
not dword [ebx + 0x98]
not dword [ebx + 0x64]
xor dword [ebx + 0x214], 0x7f6a76f4
xor dword [ebx + 0x35c], 0x360835d9
xor dword [ebx + 0x100], 0x6a181f13
add dword [ebx + 0x2b0], 0x42336674
xor dword [ebx + 0x22c], 0x67412e12
sub dword [ebx + 0x1b8], 0x7b806eab
not dword [ebx + 0xa4]
add dword [ebx + 0x108], 0x69fc6230
not dword [ebx + 0x124]
not dword [ebx + 0x78]
add dword [ebx + 0x36c], 0x31fc21a6
add dword [ebx + 0x164], 0x45226b55
xor dword [ebx + 0x2ec], 0x753f5881
not dword [ebx + 0x6c]
xor dword [ebx + 0x1a8], 0x21ee7614
sub dword [ebx + 0x28c], 0x38045fcd
add dword [ebx + 0x370], 0x2f8028bc
not dword [ebx + 0x2e4]
not dword [ebx + 0x1a4]
not dword [ebx + 0x1d8]
xor dword [ebx + 0x320], 0x798408ce
xor dword [ebx + 0x290], 0x69d35c5f
xor dword [ebx + 0x44], 0x7a46038b
xor dword [ebx + 0x104], 0x47993afb
not dword [ebx + 0x20c]
sub dword [ebx + 0x2d0], 0x588b4853
sub dword [ebx + 0x3b8], 0x11262505
not dword [ebx + 0x114]
add dword [ebx + 0x138], 0x7e401bbc
not dword [ebx + 0x3c8]
add dword [ebx + 0xf4], 0x7a500187
sub dword [ebx + 0x3a8], 0x778f74e5
sub dword [ebx + 0x1c4], 0x4f3a09ac
add dword [ebx + 0x33c], 0x4c6177a
xor dword [ebx + 0x15c], 0x7a46aa1
add dword [ebx + 0x1ac], 0x4004094e
xor dword [ebx + 0x390], 0x24b25d7b
add dword [ebx + 0x118], 0x4951234b
sub dword [ebx + 0x228], 0x6a8063c5
xor dword [ebx + 0x160], 0x63c07c30
not dword [ebx + 0xe4]
not dword [ebx + 0x210]
xor dword [ebx + 0x198], 0x242e1916
add dword [ebx], 0x8b50e3e
xor dword [ebx + 0x1ec], 0x3a14185d
xor dword [ebx + 0x2dc], 0x62f1156a
not dword [ebx + 0x2a8]
add dword [ebx + 0x378], 0x4ccd0529
add dword [ebx + 0x174], 0x140e2892
sub dword [ebx + 0x3e0], 0x1640171d
not dword [ebx + 0x2b8]
add dword [ebx + 0x8c], 0x3f9778cd
not dword [ebx + 0x34c]
xor dword [ebx + 0x350], 0x609476ae
sub dword [ebx + 0x328], 0xe591ad6
sub dword [ebx + 0x7c], 0x1e8d497c
xor dword [ebx + 0x12c], 0x1c0d4787
sub dword [ebx + 0x3f4], 0x39f73aa4
add dword [ebx + 0x39c], 0x432d6d90
not dword [ebx + 0xcc]
xor dword [ebx + 0x3d4], 0x13e9347e
add dword [ebx + 0x268], 0x7b09321b
sub dword [ebx + 0x258], 0x45f01e51
add dword [ebx + 0x278], 0x438c55b6
sub dword [ebx + 0x37c], 0x4f58298a
sub dword [ebx + 0x1c], 0x309b41a3
xor dword [ebx + 0x2c8], 0x5eb16db5
sub dword [ebx + 0x308], 0x3c1c1f6d
not dword [ebx + 0x13c]
xor dword [ebx + 0x23c], 0x602836e2
sub dword [ebx + 0x120], 0x492091d
not dword [ebx + 0xc0]
not dword [ebx + 0x1f0]
not dword [ebx + 0x254]
add dword [ebx + 0x3b4], 0x68f07934
xor dword [ebx + 0x2bc], 0x75cb0a08
sub dword [ebx + 0xb4], 0x518a0cec
sub dword [ebx + 0xec], 0x11b077a1
xor dword [ebx + 0x2ac], 0x279b4e8d
not dword [ebx + 0x398]
xor dword [ebx + 0x10c], 0x4e371841
sub dword [ebx + 0xdc], 0x76b949ce
sub dword [ebx + 0x29c], 0x41a96325
not dword [ebx + 0x3c0]
xor dword [ebx + 0x3ec], 0x11f21dcd
xor dword [ebx + 0x130], 0x719c2d08
not dword [ebx + 0x304]
xor dword [ebx + 0xd0], 0x8434b1e
xor dword [ebx + 0x280], 0x1f3857c5
not dword [ebx + 0x3c4]
xor dword [ebx + 0x3dc], 0x19073bbb
xor dword [ebx + 0x28], 0xe01043d
add ecx, 0x400
add ebx, 0x400
cmp ecx, 0x8c000
jne 0x509017
call fcn.004c65b8
pop edi
pop esi
pop ebp
pop ebx
pop edx
pop ecx
pop eax