Function at 0x10009200
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
mov ebp, dword [esp + 0x14c]
push esi
push edi
mov ebx, eax
mov dword [esp + 0x48], 0x10
mov ecx, dword [ebp]
mov edx, ecx
shr edx, 1
xor edx, ecx
and edx, 0x22222222
lea esi, [edx + edx]
xor esi, edx
xor ecx, esi
mov edx, ecx
shr edx, 2
xor edx, ecx
and edx, 0xc0c0c0c
lea esi, [edx*4]
xor esi, edx
xor ecx, esi
mov edi, dword [ebp + 4]
mov edx, ecx
shr edx, 4
xor edx, ecx
and edx, 0xf000f0
mov esi, edx
shl esi, 4
xor esi, edx
xor ecx, esi
mov edx, ecx
shr edx, 8
xor edx, ecx
and edx, 0xff00
mov esi, edx
shl esi, 8
xor esi, edx
mov edx, edi
shr edx, 1
xor edx, edi
and edx, 0x22222222
xor ecx, esi
lea esi, [edx + edx]
xor esi, edi
xor esi, edx
mov edx, esi
shr edx, 2
xor edx, esi
and edx, 0xc0c0c0c
lea edi, [edx*4]
xor edi, esi
xor edi, edx
mov edx, edi
shr edx, 4
xor edx, edi
and edx, 0xf000f0
mov esi, edx
shl esi, 4
xor esi, edi
xor esi, edx
mov edi, esi
shr edi, 8
xor edi, esi
and edi, 0xff00
mov edx, edi
shl edx, 8
xor edx, esi
xor edx, edi
mov esi, edx
movzx edi, cx
shl esi, 0x10
and edx, 0xffff0000
shr ecx, 0x10
or esi, edi
xor dword [ebx], esi
or edx, ecx
xor dword [ebx + 4], edx
add ebp, 8
add ebx, 8
dec dword [esp + 0x48]
jns 0x10009222
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 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 0x10009503
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