Function at 0x1000bd40
Capabilities:
Encode data using xor
Encrypt data using chaskey
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x13c
mov eax, dword [esp + 0x140]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, eax
mov dword [esp + 0x48], 7
lea ecx, [ecx]
mov edx, dword [esi]
mov edi, edx
shr edi, 1
xor edi, edx
and edi, 0x22222222
lea ebx, [edi + edi]
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 2
xor edi, edx
and edi, 0xc0c0c0c
lea ebx, [edi*4]
xor ebx, edi
xor edx, ebx
mov ebp, dword [esi + 4]
mov edi, edx
shr edi, 4
xor edi, edx
and edi, 0xf000f0
mov ebx, edi
shl ebx, 4
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 8
xor edi, edx
and edi, 0xff00
mov ebx, edi
shl ebx, 8
xor ebx, edi
xor edx, ebx
mov edi, ebp
shr edi, 1
xor edi, ebp
and edi, 0x22222222
lea ebx, [edi + edi]
xor ebx, ebp
xor ebx, edi
mov edi, ebx
shr edi, 2
xor edi, ebx
and edi, 0xc0c0c0c
lea ebp, [edi*4]
xor ebp, ebx
xor ebp, edi
mov edi, ebp
shr edi, 4
xor edi, ebp
and edi, 0xf000f0
mov ebx, edi
shl ebx, 4
xor ebx, ebp
xor ebx, edi
mov ebp, ebx
shr ebp, 8
xor ebp, ebx
and ebp, 0xff00
mov edi, ebp
shl edi, 8
xor edi, ebx
xor edi, ebp
mov ebx, edi
movzx ebp, dx
and edi, 0xffff0000
shl ebx, 0x10
shr edx, 0x10
or edi, edx
or ebx, ebp
xor dword [ecx], ebx
xor dword [ecx + 4], edi
mov edx, dword [esi + 8]
mov edi, edx
shr edi, 1
xor edi, edx
and edi, 0x22222222
lea ebx, [edi + edi]
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 2
xor edi, edx
and edi, 0xc0c0c0c
lea ebx, [edi*4]
xor ebx, edi
xor edx, ebx
mov ebp, dword [esi + 0xc]
mov edi, edx
shr edi, 4
xor edi, edx
and edi, 0xf000f0
mov ebx, edi
shl ebx, 4
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 8
xor edi, edx
and edi, 0xff00
mov ebx, edi
shl ebx, 8
xor ebx, edi
xor edx, ebx
mov edi, ebp
shr edi, 1
xor edi, ebp
and edi, 0x22222222
lea ebx, [edi + edi]
xor ebx, ebp
xor ebx, edi
mov edi, ebx
shr edi, 2
xor edi, ebx
and edi, 0xc0c0c0c
lea ebp, [edi*4]
xor ebp, ebx
xor ebp, edi
mov edi, ebp
shr edi, 4
xor edi, ebp
and edi, 0xf000f0
mov ebx, edi
shl ebx, 4
xor ebx, ebp
xor ebx, edi
mov ebp, ebx
shr ebp, 8
xor ebp, ebx
and ebp, 0xff00
mov edi, ebp
shl edi, 8
xor edi, ebx
xor edi, ebp
mov ebx, edi
and edi, 0xffff0000
shl ebx, 0x10
movzx ebp, dx
or ebx, ebp
xor dword [ecx + 8], ebx
shr edx, 0x10
or edi, edx
xor dword [ecx + 0xc], edi
mov edx, dword [esi + 0x10]
mov edi, edx
shr edi, 1
xor edi, edx
and edi, 0x22222222
lea ebx, [edi + edi]
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 2
xor edi, edx
and edi, 0xc0c0c0c
lea ebx, [edi*4]
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 4
xor edi, edx
and edi, 0xf000f0
mov ebx, edi
mov ebp, dword [esi + 0x14]
shl ebx, 4
xor ebx, edi
xor edx, ebx
mov edi, edx
shr edi, 8
xor edi, edx
and edi, 0xff00
mov ebx, edi
shl ebx, 8
xor ebx, edi
mov edi, ebp
shr edi, 1
xor edi, ebp
and edi, 0x22222222
xor edx, ebx
lea ebx, [edi + edi]
xor ebx, ebp
xor ebx, edi
mov edi, ebx
shr edi, 2
xor edi, ebx
and edi, 0xc0c0c0c
lea ebp, [edi*4]
xor ebp, ebx
xor ebp, edi
mov edi, ebp
shr edi, 4
xor edi, ebp
and edi, 0xf000f0
mov ebx, edi
shl ebx, 4
xor ebx, ebp
xor ebx, edi
mov ebp, ebx
shr ebp, 8
xor ebp, ebx
and ebp, 0xff00
mov edi, ebp
shl edi, 8
xor edi, ebx
xor edi, ebp
mov ebx, edi
movzx ebp, dx
shl ebx, 0x10
and edi, 0xffff0000
shr edx, 0x10
or ebx, ebp
xor dword [ecx + 0x10], ebx
or edi, edx
xor dword [ecx + 0x14], edi
add esi, 0x18
add ecx, 0x18
dec dword [esp + 0x48]
jne 0x1000bd60
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0xe4], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xf4], ecx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x78], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0xe0], ecx
mov ecx, dword [eax + 0x18]
mov dword [esp + 0xf0], edx
mov edx, dword [eax + 0x1c]
mov dword [esp + 0xec], ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x80], edx
mov edx, dword [eax + 0x24]
mov dword [esp + 0xd4], ecx
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x2c]
mov dword [esp + 0xc0], ecx
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xa8], edx
mov edx, dword [eax + 0x34]
mov dword [esp + 0x5c], ecx
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0xdc], ecx
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x44]
mov dword [esp + 0xcc], ecx
mov ecx, dword [eax + 0x48]
mov dword [esp + 0xa0], edx
mov edx, dword [eax + 0x4c]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 0x50]
mov dword [esp + 0x88], edx
mov edx, dword [eax + 0x54]
mov dword [esp + 0xbc], ecx
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 0x5c]
mov dword [esp + 0xc8], ecx
mov ecx, dword [eax + 0x60]
mov dword [esp + 0x98], edx
mov edx, dword [eax + 0x64]
mov dword [esp + 0xd8], ecx
mov ecx, dword [eax + 0x68]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0x6c]
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax + 0x70]
mov dword [esp + 0x90], edx
mov edx, dword [eax + 0x74]
mov dword [esp + 0xf8], ecx
mov ecx, dword [eax + 0x78]
mov dword [esp + 0x50], edx
mov edx, dword [eax + 0x7c]
mov dword [esp + 0xe8], ecx
mov ecx, dword [eax + 0x80]
mov dword [esp + 0x44], edx
mov edx, dword [eax + 0x84]
mov dword [esp + 0xc4], ecx
mov ecx, dword [eax + 0x88]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x8c]
mov dword [esp + 0x54], ecx
mov ecx, dword [eax + 0x90]
mov dword [esp + 0x64], edx
mov edx, dword [eax + 0x94]
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x9c]
mov dword [esp + 0x2c], 0x1007e860
mov dword [esp + 0x74], ecx
mov dword [esp + 0xac], edx
mov ecx, dword [eax + 0xa0]
mov ebp, dword [eax + 0xb4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [eax + 0xa4]
mov dword [esp + 0x40], ecx
mov ecx, dword [eax + 0xa8]
mov dword [esp + 0x84], ecx
mov ecx, dword [eax + 0xac]
mov dword [esp + 0x8c], ecx
mov ecx, dword [eax + 0xb0]
mov dword [esp + 0x94], ecx
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0x9c], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0xa4], ecx
mov ecx, dword [eax + 0xc4]
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x148], 0xc
mov edi, edi
mov eax, dword [esp + 0x8c]
xor eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x84]
xor esi, dword [esp + 0xc4]
xor eax, dword [esp + 0x98]
xor esi, dword [esp + 0xc8]
xor eax, dword [esp + 0x60]
xor esi, dword [esp + 0x5c]
mov edi, dword [esp + 0xa4]
xor edi, dword [esp + 0x74]
xor eax, dword [esp + 0x78]
xor edi, dword [esp + 0xf8]
xor esi, dword [esp + 0xf4]
xor edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x94]
xor edi, dword [esp + 0xd4]
xor ebx, dword [esp + 0x54]
xor ecx, edx
xor ecx, dword [esp + 0x50]
xor ebx, dword [esp + 0xd8]
xor ecx, dword [esp + 0x88]
xor ebx, dword [esp + 0xdc]
xor ecx, dword [esp + 0x58]
xor ebx, dword [esp + 0xe0]
mov dword [esp + 0x24], eax
rol eax, 1
xor eax, edi
mov edx, esi
xor edx, ecx
rol ecx, 1
xor ecx, ebx
mov dword [esp + 0x30], ecx
mov ecx, ebp
xor ecx, dword [esp + 0x64]
mov dword [esp + 0x28], esi
xor ecx, dword [esp + 0x1c]
xor ecx, dword [esp + 0x4c]
xor ecx, dword [esp + 0xf0]
mov esi, ecx
xor esi, edi
mov edi, dword [esp + 0x7c]
xor edi, dword [esp + 0xe8]
xor edi, dword [esp + 0xbc]
xor edi, dword [esp + 0xc0]
xor edi, dword [esp + 0xd0]
rol ecx, 1
xor ecx, edi
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x40]
xor edi, dword [esp + 0x44]
mov dword [esp + 0x34], ecx
xor edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x48]
xor edi, dword [esp + 0xa8]
xor ecx, dword [esp + 0x14]
xor edi, dword [esp + 0xe4]
xor ecx, dword [esp + 0x90]
xor ebx, edi
xor ecx, dword [esp + 0xa0]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x9c]
xor ebx, dword [esp + 0x6c]
xor ecx, dword [esp + 0x80]
xor ebx, dword [esp + 0xb8]
mov dword [esp + 0x10], ecx
xor ebx, dword [esp + 0xcc]
rol ecx, 1
xor ebx, dword [esp + 0xec]
xor ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ebx
xor ebx, dword [esp + 0x24]
rol edi, 1
xor edi, dword [esp + 0x20]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x10]
xor edi, dword [esp + 0x18]
mov dword [esp + 0x24], edi
mov edi, eax
xor edi, dword [esp + 0xd0]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x34]
xor edi, dword [esp + 0x5c]
mov ebp, ebx
xor ebp, dword [esp + 0x1c]
rol edi, 0x16
mov dword [esp + 0x18], edi
not edi
rol ebp, 0x16
mov dword [esp + 0x1c], ebp
and edi, dword [esp + 0x1c]
mov ebp, esi
xor ebp, dword [esp + 0x14]
rol ebp, 0xb
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x28]
xor ebp, dword [esp + 0xa4]
rol ebp, 7
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x2c]
xor edi, dword [ebp]
add dword [esp + 0x2c], 4
xor edi, dword [esp + 0x20]
mov ebp, edx
mov dword [esp + 0xa4], edi
mov edi, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x14]
xor ebp, dword [esp + 0x70]
xor edi, dword [esp + 0x18]
mov dword [esp + 0x13c], edi
mov edi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x10]
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x128], edi
mov edi, dword [esp + 0x10]
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, dword [esp + 0x10]
mov dword [esp + 0x100], edi
mov edi, dword [esp + 0x30]
xor edi, dword [esp + 0xec]
rol edi, 0xe
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0x68]
rol edi, 0xa
mov dword [esp + 0x18], edi
not edi
rol ebp, 2
mov dword [esp + 0x1c], ebp
and edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x38]
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0x3c]
mov dword [esp + 0x120], edi
mov edi, dword [esp + 0x1c]
not edi
rol ebp, 0x17
mov dword [esp + 0x14], ebp
and edi, dword [esp + 0x14]
mov ebp, ebx
xor edi, dword [esp + 0x18]
xor ebp, dword [esp + 0xb0]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x14]
not edi
rol ebp, 0x1f
and edi, ebp
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x104], edi
mov edi, ebp
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0x130], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, ebp
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x38]
xor edi, dword [esp + 0x78]
mov ebp, esi
xor ebp, dword [esp + 0x90]
rol edi, 1
mov dword [esp + 0x20], edi
mov edi, ecx
xor edi, dword [esp + 0xdc]
rol edi, 3
mov dword [esp + 0x18], edi
not edi
rol ebp, 0xd
mov dword [esp + 0x1c], ebp
and edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0x74]
mov dword [esp + 0x10c], edi
mov edi, dword [esp + 0x1c]
not edi
rol ebp, 4
mov dword [esp + 0x14], ebp
and edi, dword [esp + 0x14]
mov ebp, eax
xor edi, dword [esp + 0x18]
xor ebp, dword [esp + 0x7c]
mov dword [esp + 0x90], edi
mov edi, dword [esp + 0x14]
not edi
rol ebp, 9
and edi, ebp
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x78], edi
mov edi, ebp
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0x134], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, ebp
mov ebp, dword [esp + 0x34]
xor ebp, dword [esp + 0xc8]
mov dword [esp + 0x138], edi
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x58]
rol edi, 0xe
mov dword [esp + 0x20], edi
mov edi, eax
xor edi, dword [esp + 0xc0]
rol edi, 0x12
mov dword [esp + 0x18], edi
rol ebp, 5
not edi
mov dword [esp + 0x1c], ebp
and edi, dword [esp + 0x1c]
mov ebp, ebx
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0x64]
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x1c]
rol ebp, 8
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x30]
xor ebp, dword [esp + 0x9c]
not edi
and edi, dword [esp + 0x14]
rol ebp, 0x1c
xor edi, dword [esp + 0x18]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x12c], edi
mov edi, dword [esp + 0x14]
not edi
and edi, ebp
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x118], edi
mov edi, ebp
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0x140], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, ebp
mov dword [esp + 0x64], edi
mov ebp, dword [esp + 0x24]
xor ebp, dword [esp + 0x50]
mov edi, ecx
xor edi, dword [esp + 0xe0]
rol edi, 0x1f
mov dword [esp + 0x20], edi
mov edi, esi
xor edi, dword [esp + 0xa0]
rol edi, 0x1c
mov dword [esp + 0x18], edi
not edi
rol ebp, 0x14
mov dword [esp + 0x1c], ebp
and edi, dword [esp + 0x1c]
mov ebp, edx
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0x44]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x1c]
not edi
rol ebp, 0x15
mov dword [esp + 0x14], ebp
and edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x18]
xor ebp, dword [esp + 0x84]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x14]
not edi
rol ebp, 1
and edi, ebp
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x114], edi
mov edi, ebp
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0xa0], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, ebp
mov dword [esp + 0x84], edi
mov edi, edx
xor edi, dword [esp + 0xe4]
mov ebp, ecx
xor ebp, dword [esp + 0xd8]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x38]
xor edi, dword [esp + 0x60]
rol edi, 0x16
rol ebp, 0x15
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x30]
xor ebp, dword [esp + 0x6c]
mov dword [esp + 0x18], edi
rol ebp, 0xa
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x24]
xor ebp, dword [esp + 0xb4]
not edi
and edi, dword [esp + 0x1c]
rol ebp, 7
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x2c]
xor edi, dword [ebp]
xor edi, dword [esp + 0x20]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x14]
add dword [esp + 0x2c], 4
xor edi, dword [esp + 0x18]
mov ebp, eax
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x14]
not edi
and edi, dword [esp + 0x10]
xor ebp, dword [esp + 0xbc]
xor edi, dword [esp + 0x1c]
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0x10]
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0xfc], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, dword [esp + 0x10]
mov dword [esp + 0x6c], edi
mov edi, esi
xor edi, dword [esp + 0x80]
rol edi, 0xe
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x24]
xor edi, dword [esp + 0x88]
rol edi, 0xa
mov dword [esp + 0x18], edi
not edi
rol ebp, 1
mov dword [esp + 0x1c], ebp
and edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
xor edi, dword [esp + 0x20]
xor ebp, dword [esp + 0xc4]
mov dword [esp + 0x108], edi
mov edi, dword [esp + 0x1c]
not edi
rol ebp, 0x16
mov dword [esp + 0x14], ebp
and edi, dword [esp + 0x14]
mov ebp, ecx
xor edi, dword [esp + 0x18]
xor ebp, dword [esp + 0x94]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x14]
not edi
rol ebp, 0x1e
and edi, ebp
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x11c], edi
mov edi, ebp
not edi
and edi, dword [esp + 0x20]
xor edi, dword [esp + 0x14]
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, ebp
mov ebp, dword [esp + 0x30]
xor ebp, dword [esp + 0xb8]
mov dword [esp + 0x144], edi
mov edi, dword [esp + 0x34]
xor edi, dword [esp + 0xf4]
mov dword [esp + 0x20], edi
mov edi, ebx
xor edi, dword [esp + 0x4c]
rol edi, 3
rol ebp, 0xc
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x24]
xor ebp, dword [esp + 0xac]
mov dword [esp + 0x18], edi
rol ebp, 4
mov dword [esp + 0x14], ebp
mov ebp, edx
xor ebp, dword [esp + 0x40]
not edi
and edi, dword [esp + 0x1c]
rol ebp, 9
xor edi, dword [esp + 0x20]
xor ecx, dword [esp + 0x54]
mov dword [esp + 0x94], edi
mov edi, dword [esp + 0x1c]
not edi
and edi, dword [esp + 0x14]
xor edx, dword [esp + 0xa8]
xor edi, dword [esp + 0x18]
xor esi, dword [esp + 0x48]
mov dword [esp + 0x110], edi
mov edi, dword [esp + 0x14]
not edi
and edi, ebp
xor edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x9c], edi
mov edi, ebp
not edi
and edi, dword [esp + 0x20]
xor ebx, dword [esp + 0xf0]
xor edi, dword [esp + 0x14]
xor eax, dword [esp + 0xe8]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x20]
not edi
and edi, dword [esp + 0x18]
xor edi, ebp
mov ebp, dword [esp + 0x38]
xor ebp, dword [esp + 0x98]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0xd4]
rol edi, 0xd
rol edx, 0x12
rol ebp, 5
rol ecx, 7
rol esi, 0x1c
mov dword [esp + 0x10], esi
mov esi, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ebp
not esi
and esi, ebp
not ebp
and ebp, ecx
not ecx
and ecx, dword [esp + 0x10]
xor esi, edi
xor ecx, dword [esp + 0x1c]
xor ebp, edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x10]
not ecx
and ecx, edi
xor ecx, dword [esp + 0x14]
not edi
and edi, edx
xor edi, dword [esp + 0x10]
rol ebx, 0x1f
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
xor edx, dword [esp + 0xcc]
mov dword [esp + 0x124], edi
mov edi, dword [esp + 0x28]
xor edi, dword [esp + 0xf8]
mov dword [esp + 0x48], ecx
mov ecx, ebx
mov ebx, dword [esp + 0x38]
xor ebx, dword [esp + 0x8c]
rol edx, 0x1b
rol edi, 0x13
rol eax, 0x14
rol ebx, 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov ebx, edx
not ebx
and ebx, edi
xor ebx, ecx
not edi
and edi, eax
not eax
and eax, dword [esp + 0x10]
xor edi, edx
xor eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x10]
not eax
and eax, ecx
xor eax, dword [esp + 0x14]
not ecx
and ecx, edx
xor ecx, dword [esp + 0x10]
mov dword [esp + 0xac], eax
mov edx, ecx
mov ecx, dword [esp + 0x84]
xor ecx, dword [esp + 0x64]
mov eax, edi
xor ecx, dword [esp + 0x138]
xor eax, ebp
xor eax, dword [esp + 0x110]
xor ecx, dword [esp + 0x68]
xor eax, dword [esp + 0x80]
xor ecx, dword [esp + 0x100]
xor eax, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], eax
rol eax, 1
xor eax, ecx
mov ecx, dword [esp + 0x58]
xor ecx, dword [esp + 0x12c]
mov dword [esp + 0x40], eax
xor ecx, dword [esp + 0x90]
mov eax, edx
xor eax, dword [esp + 0x124]
xor ecx, dword [esp + 0x70]
xor eax, dword [esp + 0x4c]
xor ecx, dword [esp + 0x13c]
xor eax, dword [esp + 0x144]
mov dword [esp + 0x28], ecx
xor eax, dword [esp + 0x6c]
mov dword [esp + 0xa8], edx
xor ecx, eax
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x114]
xor ecx, dword [esp + 0x118]
mov edx, ebx
xor ecx, dword [esp + 0x78]
xor edx, esi
xor ecx, dword [esp + 0x104]
xor edx, dword [esp + 0x94]
xor ecx, dword [esp + 0x128]
rol eax, 1
xor eax, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x8c]
xor ecx, dword [esp + 0x54]
xor edx, dword [esp + 0x108]
xor ecx, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
xor ecx, dword [esp + 0x11c]
xor ecx, dword [esp + 0xb4]
mov eax, ecx
xor eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0xb0]
xor eax, dword [esp + 0x10c]
xor eax, dword [esp + 0x120]
xor eax, dword [esp + 0xa4]
rol ecx, 1
xor ecx, eax
xor edx, dword [esp + 0x60]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
xor eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xac]
xor eax, dword [esp + 0x48]
xor eax, dword [esp + 0x74]
xor eax, dword [esp + 0x88]
xor eax, dword [esp + 0xfc]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x18]
rol eax, 1
xor eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xa0]
xor eax, dword [esp + 0x140]
xor eax, dword [esp + 0x134]
xor eax, dword [esp + 0x130]
xor eax, dword [esp + 0x5c]
mov dword [esp + 0x20], eax
xor eax, dword [esp + 0x24]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xa4]
xor ecx, dword [esp + 0x40]
rol edx, 1
xor edx, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x70]
xor ecx, dword [esp + 0x34]
mov dword [esp + 0x28], edx
rol ecx, 0x16
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x9c]
xor ecx, eax
rol ecx, 0x16
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x48]
xor ecx, dword [esp + 0x44]
rol ecx, 0xb
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x84]
xor ecx, edx
mov edx, dword [esp + 0x18]
rol ecx, 7
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
not edx
and edx, dword [esp + 0x1c]
add dword [esp + 0x2c], 4
xor edx, dword [ecx]
mov ecx, dword [esp + 0x14]
xor edx, dword [esp + 0x20]
not ecx
and ecx, dword [esp + 0x10]
mov dword [esp + 0xd0], edx
xor ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x20]
not edx
and edx, dword [esp + 0x14]
not ecx
xor edx, dword [esp + 0x18]
and ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], edx
xor ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x5c]
xor ecx, dword [esp + 0x30]
not edx
and edx, dword [esp + 0x20]
xor edx, dword [esp + 0x14]
rol ecx, 0xe
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x68]
xor ecx, dword [esp + 0x28]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x94]
rol ecx, 0xa
xor edx, dword [esp + 0x98]
mov dword [esp + 0x18], ecx
xor ebp, dword [esp + 0x38]
rol edx, 2
mov ecx, dword [esp + 0x8c]
xor ecx, eax
rol ebp, 0x17
rol ecx, 0x1f
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
not ebp
and ebp, edx
not edx
and edx, dword [esp + 0x14]
xor ebp, ecx
xor edx, dword [esp + 0x18]
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x10]
xor edx, dword [esp + 0x1c]
mov dword [esp + 0xdc], edx
mov edx, dword [esp + 0x10]
not edx
and edx, ecx
xor edx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x18]
mov dword [esp + 0xcc], edx
xor ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x7c]
xor edx, dword [esp + 0x38]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x104]
xor ecx, dword [esp + 0x3c]
rol edx, 1
rol ecx, 3
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x74]
xor ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x18]
rol ecx, 0xd
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
xor ecx, dword [esp + 0x28]
not ebp
rol ecx, 4
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x50]
xor ecx, dword [esp + 0x40]
rol ecx, 9
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
and ebp, ecx
not ecx
and ecx, dword [esp + 0x14]
xor ebp, edx
xor ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x1c]
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0x10]
not ecx
and ecx, edx
xor ecx, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x18]
mov dword [esp + 0xb8], ecx
xor edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
xor ecx, dword [esp + 0x24]
mov dword [esp + 0xf8], edx
mov edx, dword [esp + 0x120]
rol ecx, 0xe
xor edx, dword [esp + 0x40]
rol edx, 0x12
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x90]
xor edx, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
rol edx, 5
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x54]
xor edx, eax
rol edx, 8
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xa0]
xor edx, dword [esp + 0x30]
not ebp
rol edx, 0x1c
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1c]
and ebp, edx
not edx
and edx, dword [esp + 0x14]
xor ebp, ecx
xor edx, dword [esp + 0x18]
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x98]
xor edx, dword [esp + 0x1c]
xor esi, ebp
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x10]
not edx
and edx, ecx
xor edx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], edx
xor ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x128]
xor edx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x88]
xor ecx, dword [esp + 0x44]
rol edx, 0x1f
rol ecx, 0x1c
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x4c]
xor ecx, dword [esp + 0x24]
rol ecx, 0x14
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x58]
xor ecx, dword [esp + 0x34]
rol esi, 0x15
rol ecx, 1
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x18]
not esi
and esi, ecx
not ecx
and ecx, dword [esp + 0x14]
xor esi, edx
xor ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x10]
xor ecx, dword [esp + 0x1c]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x10]
not ecx
and ecx, edx
xor ecx, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x18]
mov dword [esp + 0x9c], ecx
xor edx, dword [esp + 0x10]
mov dword [esp + 0xa4], edx
mov esi, dword [esp + 0x80]
xor esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
xor ecx, ebp
rol esi, 0x16
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x78]
xor esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
rol esi, 0x15
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x140]
xor esi, dword [esp + 0x30]
add edx, 4
rol esi, 0xa
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0xa8]
xor esi, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
rol esi, 7
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x18]
not esi
and esi, dword [esp + 0x1c]
xor esi, dword [edx - 4]
mov edx, dword [esp + 0x1c]
not edx
and edx, dword [esp + 0x14]
xor esi, ecx
xor edx, dword [esp + 0x18]
mov dword [esp + 0xe4], esi
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x10]
mov esi, dword [esp + 0x144]
xor edx, dword [esp + 0x1c]
xor esi, dword [esp + 0x24]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x10]
not edx
and edx, ecx
xor edx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x18]
mov dword [esp + 0x80], edx
xor ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xfc]
xor ecx, dword [esp + 0x44]
rol ecx, 0xe
rol esi, 0xa
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x10c]
xor esi, dword [esp + 0x40]
rol esi, 1
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x12c]
xor esi, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
rol esi, 0x16
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x114]
xor esi, dword [esp + 0x3c]
rol esi, 0x1e
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x18]
not esi
and esi, edx
not edx
and edx, dword [esp + 0x14]
xor esi, ecx
xor edx, dword [esp + 0x18]
mov dword [esp + 0xa8], esi
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x14]
not edx
and edx, dword [esp + 0x10]
xor edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x11c]
not edx
and edx, ecx
xor edx, dword [esp + 0x14]
not ecx
and ecx, dword [esp + 0x18]
xor esi, eax
xor ecx, dword [esp + 0x10]
xor ebx, ebp
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x13c]
xor ecx, dword [esp + 0x34]
rol esi, 3
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x134]
xor esi, dword [esp + 0x30]
mov dword [esp + 0xa0], edx
rol esi, 0xc
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x124]
xor esi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
rol esi, 4
rol ebx, 9
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x18]
not ebx
and ebx, edx
xor ebx, ecx
not edx
and edx, esi
xor edx, dword [esp + 0x18]
xor ebp, dword [esp + 0x108]
mov dword [esp + 0x98], edx
mov dword [esp + 0x70], ebx
mov edx, esi
not edx
and edx, dword [esp + 0x10]
xor edx, dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
mov ebx, edx
not ebx
and ebx, ecx
xor ebx, esi
mov esi, dword [esp + 0x118]
xor esi, dword [esp + 0x3c]
not ecx
and ecx, dword [esp + 0x18]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0xac]
xor ebx, dword [esp + 0x44]
xor ecx, edx
mov edx, dword [esp + 0x110]
xor edx, dword [esp + 0x38]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x100]
xor ecx, dword [esp + 0x28]
rol ecx, 0xd
rol ebp, 0x12
rol edx, 5
rol esi, 7
rol ebx, 0x1c
mov dword [esp + 0x10], ebx
mov ebx, ebp
not ebx
and ebx, edx
xor ebx, ecx
mov dword [esp + 0x44], ebx
mov ebx, edx
not ebx
and ebx, esi
xor ebx, ebp
mov dword [esp + 0x3c], ebx
mov ebx, esi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x10]
not ebx
and ebx, esi
xor ebx, edx
mov dword [esp + 0x64], ebx
xor eax, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb0]
xor ebx, dword [esp + 0x40]
mov edx, esi
not edx
and edx, ecx
xor edx, dword [esp + 0x14]
not ecx
and ecx, ebp
xor ecx, esi
mov esi, dword [esp + 0x138]
xor esi, dword [esp + 0x28]
xor edi, dword [esp + 0x38]
rol eax, 0x1f
mov dword [esp + 0x14], edx
mov edx, ecx
mov ecx, dword [esp + 0x130]
xor ecx, dword [esp + 0x30]
mov dword [esp + 0xac], edx
rol ecx, 0x1b
rol esi, 0x13
mov ebp, ecx
not ebp
and ebp, esi
xor ebp, eax
mov dword [esp + 0x40], ebp
mov ebp, esi
not ebp
rol ebx, 0x14
and ebp, ebx
xor ebp, ecx
mov dword [esp + 0x8c], ebp
rol edi, 1
mov ebp, ebx
not ebp
and ebp, edi
xor ebp, esi
mov esi, edi
not esi
and esi, eax
not eax
and ecx, eax
xor esi, ebx
xor ecx, edi
dec dword [esp + 0x148]
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x48], esi
mov dword [esp + 0xb4], ecx
jne 0x1000c1e0
mov eax, dword [esp + 0x150]
mov edi, dword [esp + 0xd0]
mov dword [eax], edi
mov edi, dword [esp + 0xe4]
mov dword [eax + 4], edi
mov edi, dword [esp + 0xf4]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x78]
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0xe0]
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0xf0]
mov dword [eax + 0x14], edi
mov edi, dword [esp + 0xec]
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x80]
mov dword [eax + 0x1c], edi
mov edi, dword [esp + 0xd4]
mov dword [eax + 0x20], edi
mov edi, dword [esp + 0x58]
mov dword [eax + 0x24], edi
mov edi, dword [esp + 0xc0]
mov dword [eax + 0x28], edi
mov edi, dword [esp + 0xa8]
mov dword [eax + 0x2c], edi
mov edi, dword [esp + 0x5c]
mov dword [eax + 0x30], edi
mov edi, dword [esp + 0x60]
mov dword [eax + 0x34], edi
mov edi, dword [esp + 0xdc]
mov dword [eax + 0x38], edi
mov edi, dword [esp + 0x4c]
mov dword [eax + 0x3c], edi
mov edi, dword [esp + 0xcc]
mov dword [eax + 0x40], edi
mov edi, dword [esp + 0xa0]
mov dword [eax + 0x44], edi
mov edi, dword [esp + 0x68]
mov dword [eax + 0x48], edi
mov edi, dword [esp + 0x88]
mov dword [eax + 0x4c], edi
mov edi, dword [esp + 0xbc]
mov dword [eax + 0x50], edi
mov edi, dword [esp + 0x70]
mov dword [eax + 0x54], edi
mov edi, dword [esp + 0xc8]
mov dword [eax + 0x58], edi
mov edi, dword [esp + 0x98]
mov dword [eax + 0x5c], edi
mov edi, dword [esp + 0xd8]
mov dword [eax + 0x60], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + 0x64], edi
mov edi, dword [esp + 0xb8]
mov dword [eax + 0x68], edi
mov edi, dword [esp + 0x90]
mov dword [eax + 0x6c], edi
mov edi, dword [esp + 0xf8]
mov dword [eax + 0x70], edi
mov edi, dword [esp + 0x50]
mov dword [eax + 0x74], edi
mov edi, dword [esp + 0xe8]
mov dword [eax + 0x78], edi
mov edi, dword [esp + 0x44]
mov dword [eax + 0x7c], edi
mov edi, dword [esp + 0xc4]
mov dword [eax + 0x80], edi
mov edi, dword [esp + 0x3c]
mov dword [eax + 0x84], edi
mov edi, dword [esp + 0x54]
mov dword [eax + 0x88], edi
mov edi, dword [esp + 0x64]
mov dword [eax + 0x8c], edi
mov edi, dword [esp + 0x6c]
mov dword [eax + 0x90], edi
mov edi, dword [esp + 0x14]
mov dword [eax + 0x94], edi
mov edi, dword [esp + 0x74]
mov dword [eax + 0x9c], edx
mov edx, dword [esp + 0x7c]
mov dword [eax + 0x98], edi
mov dword [eax + 0xa0], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 0xa4], edx
mov edx, dword [esp + 0x84]
mov dword [eax + 0xa8], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + 0xac], edx
mov edx, dword [esp + 0x94]
pop edi
mov dword [eax + 0xb0], edx
mov edx, dword [esp + 0x98]
mov dword [eax + 0xbc], esi
pop esi
mov dword [eax + 0xb4], ebp
mov dword [eax + 0xb8], edx
mov edx, dword [esp + 0x9c]
pop ebp
mov dword [eax + 0xc0], edx
mov dword [eax + 0xc4], ecx
pop ebx
add esp, 0x13c
ret