Function at 0x4694e0
Capabilities:
Encode data using xor
Encrypt data using des
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
pop ebp
sub esp, 0x80c
push ebx
push ebp
push esi
push edi
mov esi, dword [esp + 0x820]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, eax
shr ecx, 4
xor ecx, edx
and ecx, 0xf0f0f0f
xor edx, ecx
shl ecx, 4
xor eax, ecx
mov ecx, eax
shr ecx, 0x10
xor ecx, edx
and ecx, 0xffff
xor edx, ecx
shl ecx, 0x10
xor eax, ecx
mov ecx, edx
shr ecx, 2
xor ecx, eax
and ecx, 0x33333333
xor eax, ecx
add ecx, ecx
add ecx, ecx
xor edx, ecx
mov ecx, edx
shr ecx, 8
xor ecx, eax
and ecx, 0xff00ff
xor eax, ecx
shl ecx, 8
xor ecx, edx
rol ecx, 1
mov edx, ecx
xor edx, eax
and edx, 0xaaaaaaaa
xor ecx, edx
xor edx, eax
rol edx, 1
mov edi, 0x10000
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], edi
mov edi, 0x400
mov dword [esp + 0x10], edx
mov edx, 0x1010400
mov ebx, 0x1010404
mov ebp, 0x1010004
mov dword [esp + 0x3c], edi
mov dword [esp + 0x48], edi
mov edi, 0x1000400
mov dword [esp + 0x1c], edx
mov dword [esp + 0x40], edx
mov edx, 0x1000404
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov ebp, 0x10400
mov ebx, 0x1010000
xor eax, eax
mov edi, 0x10004
mov dword [esp + 0x4c], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], 0x10404
mov dword [esp + 0x34], 4
mov dword [esp + 0x54], 0x1000000
mov dword [esp + 0x58], 4
mov dword [esp + 0x5c], 0x404
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], edi
mov edx, 0x1000004
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xec], edx
mov edx, 0x404
mov dword [esp + 0x88], edi
mov dword [esp + 0xe0], edi
mov dword [esp + 0xf0], edx
mov dword [esp + 0xfc], edx
mov dword [esp + 0x10c], edi
mov edx, 0x1000400
mov edi, 0x80108020
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xe4], ebx
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], edx
mov dword [esp + 0x110], ebp
mov dword [esp + 0x51c], edi
mov ebx, 0x80008000
mov edx, 0x8000
mov ebp, 0x100000
mov dword [esp + 0x540], edi
mov edi, bind
mov dword [esp + 0x520], ebx
mov dword [esp + 0x524], edx
mov dword [esp + 0x52c], ebp
mov dword [esp + 0x548], edi
mov dword [esp + 0x54c], ebx
mov dword [esp + 0x550], ebp
mov ebp, 0x108000
mov ebx, 0x100020
mov dword [esp + 0x56c], edi
mov dword [esp + 0x570], edx
mov edi, 0x80100000
mov edx, 0x8020
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0x404
mov dword [esp + 0x94], 0x10404
mov dword [esp + 0x98], 0x1000000
mov dword [esp + 0x9c], 0x10000
mov dword [esp + 0xa0], 0x1010404
mov dword [esp + 0xa4], 4
mov dword [esp + 0xac], 0x1010400
mov dword [esp + 0xb0], 0x1000000
mov dword [esp + 0xb4], 0x1000000
mov dword [esp + 0xb8], 0x400
mov dword [esp + 0xbc], 0x1010004
mov dword [esp + 0xc0], 0x10000
mov dword [esp + 0xcc], 0x400
mov dword [esp + 0xd0], 4
mov dword [esp + 0xd4], 0x1000404
mov dword [esp + 0xd8], 0x10404
mov dword [esp + 0xdc], 0x1010404
mov dword [esp + 0xe8], 0x1000404
mov dword [esp + 0xf4], 0x10404
mov dword [esp + 0xf8], 0x1010400
mov dword [esp + 0x108], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], 0x1010004
mov dword [esp + 0x528], 0x108020
mov dword [esp + 0x530], 0x20
mov dword [esp + 0x534], 0x80100020
mov dword [esp + 0x538], 0x80008020
mov dword [esp + 0x53c], 0x80000020
mov dword [esp + 0x544], 0x80108000
mov dword [esp + 0x554], 0x20
mov dword [esp + 0x558], 0x80100020
mov dword [esp + 0x55c], ebp
mov dword [esp + 0x560], ebx
mov dword [esp + 0x564], 0x80008020
mov dword [esp + 0x568], eax
mov dword [esp + 0x574], 0x108020
mov dword [esp + 0x578], edi
mov dword [esp + 0x57c], ebx
mov dword [esp + 0x580], 0x80000020
mov dword [esp + 0x584], eax
mov dword [esp + 0x588], ebp
mov dword [esp + 0x58c], edx
mov dword [esp + 0x590], 0x80108000
mov dword [esp + 0x594], edi
mov dword [esp + 0x5b0], edi
mov dword [esp + 0x5bc], edi
mov edi, 0x20
mov dword [esp + 0x5c4], edi
mov dword [esp + 0x5d0], edi
mov dword [esp + 0x5fc], ebp
mov dword [esp + 0x618], ebp
mov edi, 0x80000020
mov ebp, 0x8000200
mov dword [esp + 0x598], edx
mov dword [esp + 0x5dc], edx
mov dword [esp + 0x5e8], edi
mov dword [esp + 0x5ec], ebx
mov dword [esp + 0x5f4], edi
mov dword [esp + 0x5f8], ebx
mov dword [esp + 0x608], edx
mov edi, 0x208
mov ebx, 0x8020200
mov edx, 0x8020008
mov dword [esp + 0x22c], ebp
mov dword [esp + 0x238], ebp
mov ebp, 0x20008
mov dword [esp + 0x21c], edi
mov dword [esp + 0x220], ebx
mov dword [esp + 0x228], edx
mov dword [esp + 0x23c], ebp
mov dword [esp + 0x250], ebp
mov ebp, 0x8000000
mov dword [esp + 0x258], edi
mov dword [esp + 0x264], ebx
mov ebx, 0x200
mov edi, 0x20200
mov dword [esp + 0x274], edx
mov edx, 0x8000208
mov dword [esp + 0x59c], eax
mov dword [esp + 0x5a0], 0x108020
mov dword [esp + 0x5a4], 0x80100020
mov dword [esp + 0x5a8], 0x100000
mov dword [esp + 0x5ac], 0x80008020
mov dword [esp + 0x5b4], 0x80108000
mov dword [esp + 0x5b8], 0x8000
mov dword [esp + 0x5c0], 0x80008000
mov dword [esp + 0x5c8], 0x80108020
mov dword [esp + 0x5cc], 0x108020
mov dword [esp + 0x5d4], 0x8000
mov dword [esp + 0x5d8], 0x80000000
mov dword [esp + 0x5e0], 0x80108000
mov dword [esp + 0x5e4], 0x100000
mov dword [esp + 0x5f0], 0x80008020
mov dword [esp + 0x600], eax
mov dword [esp + 0x604], 0x80008000
mov dword [esp + 0x60c], 0x80000000
mov dword [esp + 0x610], 0x80100020
mov dword [esp + 0x614], 0x80108020
mov dword [esp + 0x224], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], 0x20208
mov dword [esp + 0x240], 0x8000008
mov dword [esp + 0x244], 0x8000008
mov dword [esp + 0x248], 0x20000
mov dword [esp + 0x24c], 0x8020208
mov dword [esp + 0x254], 0x8020000
mov dword [esp + 0x25c], ebp
mov dword [esp + 0x260], 8
mov dword [esp + 0x268], ebx
mov dword [esp + 0x26c], edi
mov dword [esp + 0x270], 0x8020000
mov dword [esp + 0x278], 0x20208
mov dword [esp + 0x27c], edx
mov dword [esp + 0x280], edi
mov dword [esp + 0x284], 0x20000
mov dword [esp + 0x288], edx
mov dword [esp + 0x28c], 8
mov dword [esp + 0x290], 0x8020208
mov dword [esp + 0x294], ebx
mov dword [esp + 0x298], ebp
mov dword [esp + 0x29c], 0x8020200
mov dword [esp + 0x2a0], ebp
mov dword [esp + 0x2a4], 0x20008
mov dword [esp + 0x2a8], 0x208
mov dword [esp + 0x2ac], 0x20000
mov dword [esp + 0x2bc], ebx
mov dword [esp + 0x2d0], ebx
mov dword [esp + 0x2f4], edi
mov dword [esp + 0x318], edi
mov ebx, 0x8020008
mov edi, 0x2081
mov dword [esp + 0x2e4], ebp
mov ebp, 0x8020000
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x2dc], edx
mov dword [esp + 0x300], edx
mov dword [esp + 0x314], ebx
mov edx, 0x802001
mov dword [esp + 0x320], edi
mov dword [esp + 0x324], edi
mov edi, 0x800001
mov ebx, 0x802000
mov dword [esp + 0x2fc], ebp
mov dword [esp + 0x308], ebp
mov ebp, 0x800080
mov dword [esp + 0x31c], edx
mov dword [esp + 0x334], edi
mov dword [esp + 0x340], ebx
mov dword [esp + 0x344], ebx
mov dword [esp + 0x358], edi
mov ebx, 0x2000
mov edi, 0x800000
mov dword [esp + 0x368], edx
mov edx, 0x2080
mov dword [esp + 0x354], ebp
mov dword [esp + 0x388], ebp
mov dword [esp + 0x39c], ebp
mov dword [esp + 0x3c0], ebp
mov dword [esp + 0x2b0], 0x8020200
mov dword [esp + 0x2b4], 0x8000200
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2c0], 0x20008
mov dword [esp + 0x2c4], 0x8020208
mov dword [esp + 0x2c8], 0x8000200
mov dword [esp + 0x2cc], 0x8000008
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2e0], 0x20000
mov dword [esp + 0x2e8], 0x8020208
mov dword [esp + 0x2ec], 8
mov dword [esp + 0x2f0], 0x20208
mov dword [esp + 0x2f8], 0x8000008
mov dword [esp + 0x304], 0x208
mov dword [esp + 0x30c], 0x20208
mov dword [esp + 0x310], 8
mov dword [esp + 0x328], 0x80
mov dword [esp + 0x32c], 0x802080
mov dword [esp + 0x330], 0x800081
mov dword [esp + 0x338], 0x2001
mov dword [esp + 0x33c], eax
mov dword [esp + 0x348], 0x802081
mov dword [esp + 0x34c], 0x81
mov dword [esp + 0x350], eax
mov dword [esp + 0x35c], 1
mov dword [esp + 0x360], ebx
mov dword [esp + 0x364], edi
mov dword [esp + 0x36c], 0x80
mov dword [esp + 0x370], edi
mov dword [esp + 0x374], 0x2001
mov dword [esp + 0x378], edx
mov dword [esp + 0x37c], 0x800081
mov dword [esp + 0x380], 1
mov dword [esp + 0x384], edx
mov dword [esp + 0x38c], ebx
mov dword [esp + 0x390], 0x802080
mov dword [esp + 0x394], 0x802081
mov dword [esp + 0x398], 0x81
mov dword [esp + 0x3a0], 0x800001
mov dword [esp + 0x3a4], 0x802000
mov dword [esp + 0x3a8], 0x802081
mov dword [esp + 0x3ac], 0x81
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b8], 0x802000
mov dword [esp + 0x3bc], edx
mov dword [esp + 0x3c4], 0x800081
mov ebp, 1
mov dword [esp + 0x3c8], ebp
mov dword [esp + 0x3e4], ebp
mov dword [esp + 0x400], edx
mov dword [esp + 0x404], edi
mov dword [esp + 0x410], edi
mov ebp, 0x2001
mov edx, 0x100
mov edi, 0x2080000
mov dword [esp + 0x3e8], ebx
mov dword [esp + 0x3f0], ebp
mov dword [esp + 0x3fc], ebp
mov dword [esp + 0x414], ebx
mov dword [esp + 0x61c], edx
mov dword [esp + 0x624], edi
mov ebx, 0x42000100
mov ebp, 0x80000
mov dword [esp + 0x630], edx
mov edx, 0x40000000
mov dword [esp + 0x638], edi
mov edi, 0x40080100
mov dword [esp + 0x628], ebx
mov dword [esp + 0x62c], ebp
mov dword [esp + 0x634], edx
mov dword [esp + 0x63c], edi
mov dword [esp + 0x640], ebp
mov dword [esp + 0x648], edi
mov edi, 0x42080100
mov dword [esp + 0x64c], ebx
mov dword [esp + 0x658], edx
mov ebp, 0x40080000
mov ebx, 0x40000100
mov edx, 0x42000000
mov dword [esp + 0x3cc], 0x802001
mov dword [esp + 0x3d0], 0x2081
mov dword [esp + 0x3d4], 0x2081
mov dword [esp + 0x3d8], 0x80
mov dword [esp + 0x3dc], 0x802081
mov dword [esp + 0x3e0], 0x81
mov dword [esp + 0x3ec], 0x800001
mov dword [esp + 0x3f4], 0x802080
mov dword [esp + 0x3f8], 0x800081
mov dword [esp + 0x408], 0x802001
mov dword [esp + 0x40c], 0x80
mov dword [esp + 0x418], 0x802080
mov dword [esp + 0x620], 0x2080100
mov dword [esp + 0x644], 0x2000100
mov dword [esp + 0x650], 0x42080000
mov dword [esp + 0x654], 0x80100
mov dword [esp + 0x65c], 0x2000000
mov dword [esp + 0x660], ebp
mov dword [esp + 0x664], ebp
mov dword [esp + 0x668], eax
mov dword [esp + 0x66c], ebx
mov dword [esp + 0x670], edi
mov dword [esp + 0x674], edi
mov dword [esp + 0x678], 0x2000100
mov dword [esp + 0x67c], 0x42080000
mov dword [esp + 0x680], ebx
mov dword [esp + 0x684], eax
mov dword [esp + 0x688], edx
mov dword [esp + 0x68c], 0x2080100
mov dword [esp + 0x690], 0x2000000
mov dword [esp + 0x694], edx
mov dword [esp + 0x698], 0x80100
mov dword [esp + 0x69c], 0x80000
mov dword [esp + 0x6a0], 0x42000100
mov dword [esp + 0x6a4], 0x100
mov dword [esp + 0x6a8], 0x2000000
mov dword [esp + 0x6ac], 0x40000000
mov dword [esp + 0x6b0], 0x2080000
mov dword [esp + 0x6b4], 0x42000100
mov dword [esp + 0x6b8], 0x40080100
mov dword [esp + 0x6bc], 0x2000100
mov dword [esp + 0x6c0], 0x40000000
mov dword [esp + 0x6c4], 0x42080000
mov dword [esp + 0x6c8], 0x2080100
mov dword [esp + 0x6cc], 0x40080100
mov dword [esp + 0x6d0], 0x100
mov dword [esp + 0x6d4], 0x2000000
mov dword [esp + 0x6d8], 0x42080000
mov dword [esp + 0x6dc], edi
mov dword [esp + 0x6e8], edi
mov dword [esp + 0x6e4], edx
mov dword [esp + 0x6f4], ebp
mov dword [esp + 0x6f8], edx
mov dword [esp + 0x704], ebx
mov dword [esp + 0x710], ebp
mov dword [esp + 0x718], ebx
mov edi, 0x20000010
mov edx, 0x20400000
mov ebx, 0x4000
mov ebp, 0x20404010
mov dword [esp + 0x11c], edi
mov dword [esp + 0x148], edi
mov edi, 0x400010
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], ebx
mov dword [esp + 0x128], ebp
mov dword [esp + 0x12c], edx
mov edx, 0x10
mov dword [esp + 0x134], ebp
mov ebp, 0x400000
mov dword [esp + 0x168], ebx
mov ebx, 0x404000
mov dword [esp + 0x14c], edi
mov dword [esp + 0x160], edi
mov edi, 0x20400010
mov dword [esp + 0x130], edx
mov dword [esp + 0x138], ebp
mov dword [esp + 0x144], ebp
mov ebp, 0x20004010
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x174], edx
mov edx, 0x20404000
mov dword [esp + 0x190], ebx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1d4], ebx
mov ebx, 0x20400000
mov dword [esp + 0x178], edi
mov dword [esp + 0x17c], edi
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x6e0], 0x80100
mov dword [esp + 0x6ec], 0x2080000
mov dword [esp + 0x6f0], eax
mov dword [esp + 0x6fc], 0x80100
mov dword [esp + 0x700], 0x2000100
mov dword [esp + 0x708], 0x80000
mov dword [esp + 0x70c], eax
mov dword [esp + 0x714], 0x2080100
mov dword [esp + 0x13c], 0x20004000
mov dword [esp + 0x140], 0x404010
mov dword [esp + 0x150], 0x20004000
mov dword [esp + 0x154], 0x20000000
mov dword [esp + 0x158], 0x4010
mov dword [esp + 0x15c], eax
mov dword [esp + 0x164], ebp
mov dword [esp + 0x170], ebp
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], 0x404010
mov dword [esp + 0x188], edx
mov dword [esp + 0x18c], 0x4010
mov dword [esp + 0x194], edx
mov dword [esp + 0x198], 0x20000000
mov dword [esp + 0x19c], 0x20004000
mov dword [esp + 0x1a0], 0x10
mov dword [esp + 0x1ac], 0x20404010
mov dword [esp + 0x1b0], 0x400000
mov dword [esp + 0x1b4], 0x4010
mov dword [esp + 0x1b8], 0x20000010
mov dword [esp + 0x1bc], 0x400000
mov dword [esp + 0x1c0], 0x20004000
mov dword [esp + 0x1c4], 0x20000000
mov dword [esp + 0x1c8], 0x4010
mov dword [esp + 0x1cc], 0x20000010
mov dword [esp + 0x1d0], 0x20404010
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1dc], 0x404010
mov dword [esp + 0x1e0], edx
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1ec], 0x10
mov edi, 0x4000
mov dword [esp + 0x1f0], edi
mov dword [esp + 0x1fc], edi
mov edi, 0x400010
mov dword [esp + 0x200], edi
mov dword [esp + 0x214], edi
mov edi, 0x200000
mov dword [esp + 0x20c], edx
mov edx, 0x800
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x204], ebp
mov dword [esp + 0x218], ebp
mov dword [esp + 0x41c], edi
mov ebx, 0x4200002
mov ebp, 0x4000802
mov dword [esp + 0x440], edi
mov edi, 0x4000002
mov dword [esp + 0x42c], edx
mov dword [esp + 0x480], edx
mov edx, 0x200800
mov dword [esp + 0x420], ebx
mov dword [esp + 0x424], ebp
mov dword [esp + 0x430], ebp
mov ebp, 0x4000800
mov dword [esp + 0x448], edi
mov dword [esp + 0x454], ebx
mov ebx, 0x200002
mov dword [esp + 0x46c], edi
mov edi, 0x4200000
mov dword [esp + 0x48c], edx
mov dword [esp + 0x498], edx
mov dword [esp + 0x4a0], edx
mov dword [esp + 0x4ec], edx
mov dword [esp + 0x1f8], 0x404010
mov dword [esp + 0x208], eax
mov dword [esp + 0x210], 0x20000000
mov dword [esp + 0x428], eax
mov dword [esp + 0x434], 0x200802
mov dword [esp + 0x438], 0x4200800
mov dword [esp + 0x43c], 0x4200802
mov dword [esp + 0x444], eax
mov dword [esp + 0x44c], 2
mov dword [esp + 0x450], 0x4000000
mov dword [esp + 0x458], 0x802
mov dword [esp + 0x45c], ebp
mov dword [esp + 0x460], 0x200802
mov dword [esp + 0x464], ebx
mov dword [esp + 0x468], ebp
mov dword [esp + 0x470], edi
mov dword [esp + 0x474], 0x4200800
mov dword [esp + 0x478], ebx
mov dword [esp + 0x47c], edi
mov dword [esp + 0x484], 0x802
mov dword [esp + 0x488], 0x4200802
mov dword [esp + 0x490], 2
mov dword [esp + 0x494], 0x4000000
mov dword [esp + 0x49c], 0x4000000
mov dword [esp + 0x4a4], 0x200000
mov dword [esp + 0x4a8], 0x4000802
mov dword [esp + 0x4ac], 0x4000802
mov dword [esp + 0x4b0], 0x4200002
mov dword [esp + 0x4b4], 0x4200002
mov dword [esp + 0x4b8], 2
mov dword [esp + 0x4bc], ebx
mov dword [esp + 0x4c0], 0x4000000
mov dword [esp + 0x4c4], ebp
mov dword [esp + 0x4c8], 0x200000
mov dword [esp + 0x4cc], 0x4200800
mov dword [esp + 0x4d0], 0x802
mov dword [esp + 0x4d4], 0x200802
mov dword [esp + 0x4d8], 0x4200800
mov dword [esp + 0x4dc], 0x802
mov dword [esp + 0x4e0], 0x4000002
mov dword [esp + 0x4e4], 0x4200802
mov dword [esp + 0x4e8], edi
mov dword [esp + 0x4f0], eax
mov dword [esp + 0x4f4], 2
mov dword [esp + 0x4f8], 0x4200802
mov dword [esp + 0x4fc], eax
mov dword [esp + 0x500], 0x200802
mov dword [esp + 0x504], edi
mov edx, 0x800
mov edi, 0x10041040
mov dword [esp + 0x508], edx
mov dword [esp + 0x514], edx
mov dword [esp + 0x518], ebx
mov dword [esp + 0x728], edi
mov dword [esp + 0x744], edi
mov ebx, 0x10001040
mov edx, 0x10000000
mov edi, 0x41000
mov dword [esp + 0x510], ebp
mov dword [esp + 0x71c], ebx
mov ebp, 0x1000
mov dword [esp + 0x72c], edx
mov dword [esp + 0x730], ebx
mov ebx, 0x40
mov dword [esp + 0x738], edx
mov edx, 0x10040000
mov dword [esp + 0x748], edi
mov dword [esp + 0x76c], edi
mov edi, 0x10040040
mov dword [esp + 0x720], ebp
mov dword [esp + 0x734], ebx
mov dword [esp + 0x740], edx
mov dword [esp + 0x754], ebp
mov ebp, 0x10001000
mov dword [esp + 0x758], ebx
mov ebx, 0x1040
mov dword [esp + 0x75c], edx
mov edx, 0x10000040
mov dword [esp + 0x774], edi
mov dword [esp + 0x780], eax
mov dword [esp + 0x784], eax
mov dword [esp + 0x788], edi
mov dword [esp + 0x7b0], edi
mov dword [esp + 0x7cc], edi
mov dword [esp + 0x7dc], eax
mov edi, 0x40040
mov dword [esp + 0x7f8], eax
mov eax, 0x41000
mov dword [esp + 0x50c], 0x4000002
mov dword [esp + 0x724], 0x40000
mov dword [esp + 0x73c], 0x40040
mov dword [esp + 0x74c], 0x10041000
mov dword [esp + 0x750], 0x41040
mov dword [esp + 0x760], edx
mov dword [esp + 0x764], ebp
mov dword [esp + 0x768], ebx
mov dword [esp + 0x770], 0x40040
mov dword [esp + 0x778], 0x10041000
mov dword [esp + 0x77c], ebx
mov dword [esp + 0x78c], edx
mov dword [esp + 0x790], ebp
mov dword [esp + 0x794], 0x41040
mov dword [esp + 0x798], 0x40000
mov dword [esp + 0x79c], 0x41040
mov dword [esp + 0x7a0], 0x40000
mov dword [esp + 0x7a4], 0x10041000
mov dword [esp + 0x7a8], 0x1000
mov dword [esp + 0x7ac], 0x40
mov dword [esp + 0x7b4], 0x1000
mov dword [esp + 0x7b8], 0x41040
mov dword [esp + 0x7bc], ebp
mov dword [esp + 0x7c0], 0x40
mov dword [esp + 0x7c4], edx
mov dword [esp + 0x7c8], 0x10040000
mov dword [esp + 0x7d0], 0x10000000
mov dword [esp + 0x7d4], 0x40000
mov dword [esp + 0x7d8], 0x10001040
mov dword [esp + 0x7e0], 0x10041040
mov dword [esp + 0x7e4], edi
mov dword [esp + 0x7e8], edx
mov dword [esp + 0x7ec], 0x10040000
mov dword [esp + 0x7f0], ebp
mov dword [esp + 0x7f4], 0x10001040
mov dword [esp + 0x7fc], 0x10041040
mov dword [esp + 0x800], eax
mov dword [esp + 0x804], eax
mov dword [esp + 0x808], ebx
mov dword [esp + 0x80c], ebx
mov dword [esp + 0x810], edi
mov dword [esp + 0x814], 0x10000000
mov edx, dword [esp + 0x824]
mov dword [esp + 0x818], 0x10041000
mov dword [esp + 0x14], 8
nop
mov eax, ecx
ror eax, 4
xor eax, dword [edx]
add edx, 4
mov edi, eax
shr edi, 8
mov ebx, eax
shr ebx, 0x10
and ebx, 0x3f
and edi, 0x3f
mov edi, dword [esp + edi*4 + 0x61c]
or edi, dword [esp + ebx*4 + 0x21c]
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
or edi, dword [esp + ebx*4 + 0x1c]
and eax, 0x3f
or edi, dword [esp + eax*4 + 0x41c]
mov eax, dword [edx]
xor eax, ecx
mov ebx, eax
shr ebx, 8
and ebx, 0x3f
mov ebx, dword [esp + ebx*4 + 0x11c]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [esp + ebp*4 + 0x31c]
mov ebp, eax
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [esp + ebp*4 + 0x51c]
and eax, 0x3f
or ebx, dword [esp + eax*4 + 0x71c]
add edx, 4
or ebx, edi
mov ebp, ebx
mov ebx, dword [esp + 0x10]
xor ebx, ebp
mov eax, ebx
ror eax, 4
xor eax, dword [edx]
mov dword [esp + 0x10], ebx
mov edi, eax
shr edi, 8
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
and edi, 0x3f
mov edi, dword [esp + edi*4 + 0x61c]
or edi, dword [esp + ebp*4 + 0x21c]
mov ebp, eax
shr ebp, 0x18
and ebp, 0x3f
or edi, dword [esp + ebp*4 + 0x1c]
and eax, 0x3f
or edi, dword [esp + eax*4 + 0x41c]
mov eax, dword [edx + 4]
xor eax, ebx
add edx, 4
mov ebx, eax
shr ebx, 8
and ebx, 0x3f
mov ebx, dword [esp + ebx*4 + 0x11c]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
or ebx, dword [esp + ebp*4 + 0x31c]
mov ebp, eax
shr ebp, 0x18
and ebp, 0x3f
or ebx, dword [esp + ebp*4 + 0x51c]
and eax, 0x3f
or ebx, dword [esp + eax*4 + 0x71c]
add edx, 4
or ebx, edi
xor ecx, ebx
sub dword [esp + 0x14], 1
jne 0x46a894
mov edx, dword [esp + 0x10]
ror ecx, 1
mov eax, ecx
xor eax, edx
and eax, 0xaaaaaaaa
xor ecx, eax
xor eax, edx
ror eax, 1
mov edx, eax
shr edx, 8
xor edx, ecx
and edx, 0xff00ff
xor ecx, edx
shl edx, 8
xor eax, edx
mov edx, eax
shr edx, 2
xor edx, ecx
and edx, 0x33333333
xor ecx, edx
add edx, edx
add edx, edx
xor eax, edx
mov edx, ecx
shr edx, 0x10
xor edx, eax
and edx, 0xffff
xor eax, edx
shl edx, 0x10
xor ecx, edx
mov edx, ecx
shr edx, 4
xor edx, eax
and edx, 0xf0f0f0f
mov edi, edx
shl edi, 4
xor edi, ecx
mov dword [esi], edi
pop edi
xor edx, eax
mov dword [esi + 4], edx
pop esi
pop ebp
pop ebx
add esp, 0x80c
ret 8