Function at 0x299cf1a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf0
xor eax, eax
cmp dword [ebp + 0x10], 0
setne al
mov eax, dword [eax*4 + 0x29c2880]
mov ecx, 0x1bd84ec4
xor ecx, dword [case.0x299731f.2]
add eax, ecx
inc eax
xor edx, edx
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], 0
jmp eax
add byte [eax], al
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, dword [case.0x29961f7.39]
xor ecx, 0xb95039a5
sub eax, ecx
jmp eax
add byte [eax], al
add bh, al
xchg byte [edi], bh
add byte [eax], al
add dh, al
xchg bh, al
add byte [eax], al
add byte [eax], al
mov ecx, dword [esi + 0x218]
xor ecx, 0x2b21e8d2
mov eax, dword [esi + 0x21c]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x29c2d24]
xor ecx, 0x5218a038
sub eax, ecx
jmp eax
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
mov edx, eax
add edx, 0x19b4ff63
and edx, ecx
lea eax, [eax + ecx + 0x19b4ff63]
add edx, edx
sub eax, edx
push dword [ecx + ebx - 0x2fd62dff]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x7c]
add al, 0x4b
mov ecx, dword [esi]
mov byte [edi + ecx], al
mov eax, dword [esi]
inc eax
mov dword [esi], eax
mov eax, dword [esi]
cmp eax, 9
jb 0x299b564
jmp 0x299b59c
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
sub esp, 0x10
mov ecx, dword [esi + 0x54]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 8], 0x299c3a0
call fcn.0299b6e0
add esp, 0x10
mov ecx, dword [esi + 0x58]
xor ecx, 0x388dcee2
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x29c3054]
xor ecx, 0x3851f3f1
sub eax, ecx
jmp eax
and byte [eax - 0x77], dl
sbb byte [eax - 0x77], dl
loopne 0x299b57a
inc esi
xor al, 0x50
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x48], ecx
mov dword [esi + 8], esp
push eax
mov dword [esi + 0x38], esp
sub esp, 0x1c
mov edi, esp
push eax
mov dword [esi + 0x44], esp
push eax
push eax
sub esp, 0x10
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
mov edx, dword [ebp + 0x20]
mov ecx, dword [esi + 0x20]
mov dword [ecx], edx
mov edx, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x18]
mov dword [ecx], edx
mov edx, dword [ebp + 0x18]
mov dword [eax], edx
mov edx, dword [ebp + 0x14]
mov ebx, dword [esi + 0x40]
mov dword [ebx], edx
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc]
mov dword [ecx], edx
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 8]
mov dword [eax], edx
mov edx, dword [ebp + 8]
mov eax, dword [esi + 0x38]
mov dword [eax], edx
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [edi + 4], eax
mov eax, dword [ecx]
mov dword [edi + 8], eax
mov eax, dword [ebx]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x34]
mov eax, dword [eax]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [edi + 0x18], eax
call fcn.02989c50
mov eax, dword [ebx]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx]
sub esp, 0x10
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x299bfc0
call fcn.0299b6e0
add esp, 0x10
mov ecx, dword [esi + 0x44]
mov byte [ecx], al
mov ecx, dword [esi + 0x48]
xor ecx, 0x3e7f38
mov eax, dword [esi + 0x5c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x29c305c]
xor ecx, 0x7b720401
sub eax, ecx
jmp eax
add byte [eax], al
add bh, al
xchg byte [eax], dl
add dword [eax], eax
add byte [eax + 0x2f], al
pushfd
add cl, byte [ebx - 0x63cd9bc3]
add cl, byte [ecx + 0xf4be]
add bh, bh
jecxz 0x299ba82
push ebx
mov edi, 0x5d78c886
mov eax, dword gs:[esi + 0xf4]
xor eax, 0x17c2bbe2
mov ecx, dword [esi + 0x110]
mov eax, dword [ecx + eax*4]
mov ecx, dword [0x29c3268]
xor ecx, 0xf3af3dd2
sub eax, ecx
jmp eax
push 0x8d000002
inc esi
xor byte [ebx + 0xc8938ec], al
and al, 0x89
jl 0x299c412
add al, 0xc7
inc esp
and al, 8
or eax, dword [eax]
add byte [eax], al
add byte [ecx - 0x74e3dba4], cl
mov ss, word [eax + eax + 0x4c890000]
and al, 0x20
dec edx
push ecx
pop esp
sub eax, ecx
jmp eax
invalid
and byte ss:[ebx + 0x24], dl
mov eax, dword [esi + 0x13c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [0x29c3214]
xor ecx, 0xf5f59837
sub eax, ecx
jmp eax
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add byte [eax], al
add byte [eax], al
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x299cd20
mov word [ebx], 0x5c
add ebx, 2
mov edx, dword [ebp + 8]
movzx ecx, word [edx]
test cx, cx
mov dword [esp + 8], eax
je 0x299cd61
add edx, 2
nop dword [eax + eax]
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x299cd50
mov word [ebx], 0
lea ebx, [esp + 0x14]
push 0x60
push 3
push 0x100001
push ebx
push dword [esp + 0x18]
and al, 0x18
and al, 0x18
call fcn.029bac20
add esp, 0x14
cmp eax, 0xc0000054
je 0x299cd8e
cmp eax, 0xc0000043
jne 0x299cdbd
push 0
push 0x1388
mov esi, dword [esp + 0x10]
push esi
call fcn.029b4380
add esp, 0xc
test al, al
je 0x299ceb3
push 0x60
push 3
push 0x100001
push ebx
push esi
call fcn.029bac20
add esp, 0x14
test eax, eax
js 0x299ceba
mov ebx, dword [ebp + 0x10]
push ebx
call fcn.02989550
add esp, 4
mov esi, eax
push 0
push ebx
push eax
push dword [esp + 0x20]
call fcn.029bb110
add esp, 0x10
test eax, eax
js 0x299cec1
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x299ce0f
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
push ebx
push esi
call fcn.029b6770
add esp, 0x14
test eax, eax
je 0x299cec1
mov dword [esp + 0x10], esi
add edi, 2
mov eax, dword [ebp + 0x14]
mov esi, dword [eax + 4]
mov eax, 0xfffffffe
nop word cs:[eax + eax]
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x299ce30
sar eax, 1
add eax, edi
lea ecx, [eax + eax]
test eax, eax
mov eax, 0xffffffff
cmovns eax, ecx
push eax
call fcn.02989550
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0x299ce81
add esi, 2
mov eax, edi
nop word cs:[eax + eax]
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x299ce70
mov word [eax], 0x2f
add eax, 2
mov edx, dword [ebp + 8]
movzx ecx, word [edx]
test cx, cx
je 0x299cec5
add edx, 2
mov esi, dword [esp + 0x10]
nop dword [eax + eax]
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x299cea0
jmp 0x299cec9
xor ebx, ebx
jmp 0x299cf8e
xor ebx, ebx
jmp 0x299cf8a
xor ebx, ebx
jmp 0x299cee6
mov esi, dword [esp + 0x10]
mov word [eax], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
push ebx
push esi
push edi
call fcn.02989cc0
mov ebx, eax
push edi
call fcn.02989560
add esp, 4
push esi
call fcn.02989560
add esp, 4
mov eax, dword [esp + 0x14]
movaps xmm0, xmmword [0x29bda40]
movups xmmword [esp + 0x18], xmm0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xf
ja 0x299cf45
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
add ecx, 0xd887af2b
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xd3
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x10
jb 0x299cf10
mov ecx, dword [0x29ca800]
test ecx, ecx
je 0x299cf8a
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x29ca804]
nop dword [eax + eax]
cmp dword [edi + esi*8], 0x11081610
je 0x299cf70
inc esi
cmp ecx, esi
jne 0x299cf60
jmp 0x299cf8a
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je 0x299cf8a
push eax
push 1
push dword [0x29ca808]
push ecx
call fcn.029b7d60
add esp, 0x10
mov esi, dword [esp + 8]
push esi
call fcn.02989560
add esp, 4
jmp 0x299cca2
nop dword [eax + eax]
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x299d0f0
mov word [eax], 0
mov esi, dword [esp + 0x24]
mov ebx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
dec edx
mov eax, dword [esi + 0xc]
mov ebp, dword [esi + 0x10]
mov ecx, dword [esp]
test ebx, ebx
je 0x299d122
mov ecx, dword [esi + 4]
push ebx
push edx
push ebp
push eax
push edi
push ecx
push dword [esi]
call fcn.0299b3a0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.02989560
invalid
inc dword [ebx + 0x34ff04c4]
and al, 0xe8
sbb eax, esp
invalid
inc dword [ebx - 0x2776fb3c]
jmp 0x299d14e
invalid
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
clc
sub esp, 0x260
mov edx, dword [ebp + 8]
movzx eax, word [edx]
xor ecx, ecx
cmp eax, 0x5a4d
setne cl
jmp dword [ecx*4 + 0x29c3538]
cmp byte [esi], 0
je 0x299db60
lea eax, [esp + 0x20]
push eax
push ebx
push esi
mov dword [esp + 0x14], ecx
call fcn.02990e90
add esp, 0xc
movzx ecx, word [esp + 0x20]
mov edx, dword [esp + 8]
mov word [edx], cx
mov ecx, dword [esp + 8]
add ecx, 2
cmp edi, 0x101
ja 0x299db60
add esi, eax
inc edi
cmp esi, ebx
jb case.default.0x299db7b
nop word [eax + eax]
mov word [ecx], 0
lea eax, [esp + 0x50]
push eax
call dword [0x29ca814]
xor ecx, ecx
mov dword [esp + 8], eax
test eax, eax
sete cl
jmp dword [ecx*4 + 0x29c3600]
pushfd
add cl, ah
int3
int3
int3
ret 0xfa21
add byte [eax], al
add byte [eax], al
add byte [ecx + 0x29c3954], ah
mov ecx, 0x3872dea0
xor ecx, dword [0x29c3958]
add eax, ecx
inc eax
jmp eax
add bh, al
inc edi
dec edx
add byte [eax], al
add byte [eax], al
mov word [edi + 0x52], 0
mov dword [esi], 0
mov eax, dword [esi]
cmp eax, 0x53
ja 0x299e442
nop dword [eax]
mov eax, dword [esi]
mov ecx, dword [esi]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xe1b6c38f
add eax, 0xe1b6c38f
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
add al, 0x17
mov ecx, dword [esi]
mov byte [edi + ecx], al
inc dword [esi]
mov eax, dword [esi]
cmp eax, 0x54
jb 0x299e410
mov eax, dword [esi + 0x24]
mov ecx, edi
mov edi, dword [eax]
push ebx
push 0x299f6b0
push ecx
push edi
call fcn.0299b6e0
add esp, 0x10
mov ecx, dword [esi + 0x1c]
mov byte [ecx], al
xor eax, eax
test edi, edi
sete al
mov eax, dword [eax*4 + 0x29c39c4]
mov ecx, 0x7c97124a
xor ecx, dword [0x29c39cc]
add eax, ecx
inc eax
jmp eax
movaps xmm0, xmmword [0x29bdff0]
movups xmmword [ebx], xmm0
movaps xmm0, xmmword [0x29be000]
movups xmmword [ebx + 0x10], xmm0
movaps xmm0, xmmword [0x29be010]
movups xmmword [ebx + 0x20], xmm0
movaps xmm0, xmmword [0x29be020]
movups xmmword [ebx + 0x30], xmm0
movsd xmm0, qword [0x29be030]
movsd qword [ebx + 0x40], xmm0
mov dword [ebx + 0x48], 0xd3d2d54b
lea eax, [ebx + 0x4c]
mov dword [ebx + 0x4c], 0
mov word [ebx + 0x50], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x51
ja 0x299e790
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0x1a]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x85009d1a
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x4a
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0x52
jb 0x299e760
mov edx, ebx
mov ebx, dword [esi + 0x14]
mov edi, ebx
mov ecx, 0x13
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x4c]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
lea ecx, [eax + eax]
add ecx, 0x4a
add eax, 0x25
mov eax, 0xffffffff
cmovns eax, ecx
push eax
call fcn.02989550
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
movzx edi, word [edx]
mov ecx, eax
test di, di
je 0x299e801
add edx, 2
mov ecx, eax
nop word cs:[eax + eax]
add byte [eax], al
invalid
add byte [eax], al
add byte [esi - 0x77], ah
cmp dword [ebx - 0x48f0fd3f], eax
cmp al, byte [ebx - 0x7a99fd3e]
push dword [ebp - 0x11]
mov word [ecx], di
add ecx, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x299e7f0
mov word [ecx], 0
mov edi, dword [esi + 0x14]
movzx edx, word [edi]
test dx, dx
je 0x299e833
add edi, 2
mov ebx, dword [esi + 0xc]
or al, 0x66
nop dword [eax + eax]
or al, 0x66
nop dword [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x299e820
jmp 0x299e836
mov ebx, dword [esi + 0xc]
mov word [ecx], 0
push dword [esi + 0x30]
push eax
call fcn.029bae20
add esp, 8
mov ecx, dword [0x29c397c]
mov edx, 0x755a57fb
xor edx, dword [0x29c3984]
test byte [ecx], bh
pushfd
add al, byte [ecx]
rol dword [ecx - 1], 1
invalid
test byte [ecx], bh
pushfd
add al, byte [ecx]
rol dword [ecx - 1], 1
loope 0x299e86d
sub byte [0x29bdff0], al
movups xmmword [ebx], xmm0
movaps xmm0, xmmword [0x29be000]
sub byte [0x29be000], al
sub byte [0x29be000], al
add cl, byte [edi]
adc dword [ebx + 0x10], eax
movups xmmword [ebx + 0x10], xmm0
movaps xmm0, xmmword [0x29be010]
movups xmmword [ebx + 0x20], xmm0
movaps xmm0, xmmword [0x29be020]
sub byte [0x29be020], al
sub byte [0x29be020], al
movups xmmword [ebx + 0x30], xmm0
movsd xmm0, qword [0x29be030]
movsd qword [ebx + 0x40], xmm0
mov dword [ebx + 0x48], 0xd3d2d54b
lea eax, [ebx + 0x4c]
mov dword [ebx + 0x4c], 0
mov word [ebx + 0x50], 0
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 0x51
ja 0x299e8f0
nop dword [eax]
mov ecx, dword [esi]
mov edx, dword [esi]
movzx edx, byte [ebx + edx]
lea edi, [ecx + 0x1a]
add ecx, edx
and edi, edx
add edi, edi
sub ecx, edi
add ecx, 0x85009d1a
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x4a
mov edx, dword [esi]
mov byte [ebx + edx], cl
inc dword [esi]
mov ecx, dword [esi]
push cs
push cs
cmp ecx, 0x52
jb case.0x299731f.39
mov edx, ebx
mov ebx, dword [esi + 0x14]
mov edi, ebx
mov ecx, 0x13
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [ebx + 0x4c]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0x18]
mov eax, dword [eax]
lea ecx, [eax + eax]
add ecx, 0x4a
add eax, 0x25
mov eax, 0xffffffff
cmovns eax, ecx
push eax
call fcn.02989550
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [ecx], eax
mov ecx, dword [esi + 8]
mov edx, dword [ecx]
movzx edi, word [edx]
mov ecx, eax
test di, di
je 0x299e961
add edx, 2
mov ecx, eax
nop word cs:[eax + eax]
mov word [ecx], di
add ecx, 2
movzx edi, word [edx]
add edx, 2
test di, di
jne 0x299e950
mov word [ecx], 0
mov edi, dword [esi + 0x14]
movzx edx, word [edi]
test dx, dx
je 0x299e993
add edi, 2
mov ebx, dword [esi + 0xc]
nop word [eax + eax]
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x299e980
jmp 0x299e996
mov ebx, dword [esi + 0xc]
mov word [ecx], 0
push dword [esi + 0x30]
push eax
call fcn.029bae20
add esp, 8
jmp 0x299e704
rol eax, 9
add eax, ebp
rol esi, 0xa
mov edx, ecx
xor edx, esi
xor edx, eax
mov ebx, dword [esp + 0x90]
mov ebx, dword [ebx + 0x3c]
mov dword [esp + 0x54], ebx
add ebp, ebx
add ebp, edx
rol ebp, 8
or cl, al
ror dword [edx], 1
std
or cl, al
ror dword [edx], 1
std
mov edx, eax
xor edx, ecx
and edx, ebp
xor edx, ecx
mov dword [esp], edx
mov ebx, dword [esp + 0x3c]
xor edx, ebx
add edx, edi
mov edi, dword [esp]
and edi, ebx
lea ebx, [edx + edi*2]
add ebx, 0x5a827999
rol ebx, 7
add ebx, esi
rol eax, 0xa
mov edx, ebp
xor edx, eax
and edx, ebx
xor edx, eax
add edx, dword [esp + 0x28]
mov edi, edx
xor edx, 0x5a827999
add edx, esi
and edi, 0xda827999
lea edi, [edx + edi*2]
rol edi, 6
add edi, ecx
rol ebp, 0xa
mov edx, edi
not edx
and edx, ebp
add ecx, dword [esp + 0x40]
add ecx, edx
mov edx, edi
and edx, ebx
add edx, ecx
add edx, 0x5a827999
rol edx, 8
add edx, eax
rol ebx, 0xa
mov ecx, edx
not ecx
and ecx, ebx
add eax, dword [esp + 0x1c]
add eax, ecx
mov ecx, edx
and ecx, edi
lea esi, [ecx + eax]
add esi, 0x5a827999
rol esi, 0xd
rol edi, 0xa
add esi, ebp
mov eax, esi
not eax
and eax, edi
add ebp, dword [esp + 0x2c]
add ebp, eax
mov eax, esi
and eax, edx
add eax, ebp
add eax, 0x5a827999
rol eax, 0xb
add eax, ebx
rol edx, 0xa
mov ecx, eax
not ecx
and ecx, edx
add ebx, dword [esp + 0x48]
add ebx, ecx
mov ecx, eax
mov dword [esp], eax
and ecx, esi
add ecx, ebx
add ecx, 0x5a827999
rol ecx, 9
add ecx, edi
rol esi, 0xa
mov ebp, ecx
and ebp, eax
lea ebx, [ecx + ecx]
not ebx
add ebx, ecx
and ebx, esi
or ebx, ebp
mov ebp, ebx
mov eax, dword [esp + 0x54]
xor ebx, eax
add ebx, edi
and ebp, eax
lea edi, [ebx + ebp*2]
add edi, 0x5a827999
rol edi, 7
mov eax, dword [esp]
rol eax, 0xa
add edi, edx
mov ebx, edi
not ebx
and ebx, eax
add edx, dword [esp + 0x58]
add edx, ebx
mov ebx, edi
and ebx, ecx
add ebx, edx
add ebx, 0x5a827999
rol ebx, 0xf
add ebx, esi
rol ecx, 0xa
mov edx, ebx
not edx
and edx, ecx
add esi, dword [esp + 0x20]
add esi, edx
mov edx, ebx
and edx, edi
add edx, esi
add edx, 0x5a827999
rol edx, 7
add edx, eax
rol edi, 0xa
mov esi, edx
not esi
or esi, ebx
add esi, edx
inc esi
lea ebp, [edx + edx]
not ebp
add ebp, edx
and ebp, edi
or ebp, esi
add eax, dword [esp + 0x34]
add eax, ebp
add eax, 0x5a827999
rol eax, 0xc
add eax, ecx
rol ebx, 0xa
mov esi, eax
not esi
and esi, ebx
add ecx, dword [esp + 0x4c]
add ecx, esi
mov esi, eax
and esi, edx
lea ebp, [esi + ecx]
add ebp, 0x5a827999
rol ebp, 0xf
rol edx, 0xa
add ebp, edi
mov ecx, ebp
not ecx
and ecx, edx
add edi, dword [esp + 0x24]
add edi, ecx
mov ecx, ebp
and ecx, eax
lea esi, [ecx + edi]
add esi, 0x5a827999
rol esi, 9
add esi, ebx
rol eax, 0xa
mov ecx, esi
not ecx
and ecx, eax
add ebx, dword [esp + 0x30]
add ebx, ecx
mov ecx, esi
and ecx, ebp
add ecx, ebx
add ecx, 0x5a827999
rol ecx, 0xb
add ecx, edx
mov dword [esp], ecx
rol ebp, 0xa
mov edi, esi
xor edi, ebp
and edi, ecx
xor edi, ebp
mov ebx, edi
mov ecx, dword [esp + 0x38]
xor edi, ecx
add edi, edx
and ebx, ecx
lea edi, [edi + ebx*2]
add edi, 0x5a827999
rol edi, 7
rol esi, 0xa
add edi, eax
mov edx, edi
not edx
and edx, esi
add eax, dword [esp + 0x50]
add eax, edx
mov edx, edi
mov ebx, dword [esp]
and edx, ebx
lea ecx, [edx + eax]
add ecx, 0x5a827999
rol ecx, 0xd
add ecx, ebp
mov dword [esp + 8], ecx
mov edx, ebx
rol edx, 0xa
mov dword [esp], edx
mov eax, ecx
and eax, edi
mov ebx, ecx
not ebx
mov ecx, edx
and ecx, ebx
add ecx, dword [esp + 0x44]
add eax, ecx
add eax, 0x5a827999
mov ecx, eax
and ecx, ebp
xor ebp, eax
lea eax, [ecx*2]
add eax, ebp
rol eax, 0xc
add eax, esi
rol edi, 0xa
mov ecx, eax
mov edx, dword [esp + 8]
and ecx, edx
xor ebx, eax
add ebx, eax
sub ebx, ecx
xor ebx, edi
add esi, dword [esp + 0x58]
add esi, ebx
add esi, 0x6ed9eba1
rol esi, 0xb
rol edx, 0xa
mov dword [esp + 8], edx
mov ebp, dword [esp]
add esi, ebp
mov ecx, eax
not ecx
or ecx, esi
xor ecx, edx
mov ebx, ecx
mov edx, dword [esp + 0x2c]
xor ecx, edx
add ecx, ebp
and ebx, edx
lea ebp, [ecx + ebx*2]
add ebp, 0x6ed9eba1
rol ebp, 0xd
add ebp, edi
mov ebx, ebp
not ebx
mov edx, esi
or edx, ebx
mov ecx, ebp
sub ecx, esi
add ecx, edx
rol eax, 0xa
xor ecx, eax
add edi, dword [esp + 0x38]
add edi, ecx
add edi, 0x6ed9eba1
rol edi, 6
mov ecx, dword [esp + 8]
add edi, ecx
rol esi, 0xa
or ebx, edi
xor ebx, esi
add ecx, dword [esp + 0x28]
lea edx, [ebx + ecx]
add edx, 0x6ed9eba1
rol edx, 7
add edx, eax
rol ebp, 0xa
mov ecx, edi
not ecx
or ecx, edx
xor ecx, ebp
add eax, dword [esp + 0x4c]
add eax, ecx
add eax, 0x6ed9eba1
rol eax, 0xe
add eax, esi
rol edi, 0xa
mov ecx, edx
not ecx
or ecx, eax
xor ecx, edi
add esi, dword [esp + 0x54]
add esi, ecx
add esi, 0x6ed9eba1
rol esi, 9
rol edx, 0xa
add esi, ebp
mov ebx, esi
not ebx
mov ecx, eax
and ecx, ebx
xor ecx, edx
not ecx
add ebp, dword [esp + 0x44]
add ecx, ebp
add ecx, 0x6ed9eba1
rol ecx, 0xd
add ecx, edi
rol eax, 0xa
or ebx, ecx
xor ebx, eax
add edi, dword [esp + 0x1c]
add edi, ebx
add edi, 0x6ed9eba1
rol edi, 0xf
add edi, edx
rol esi, 0xa
mov ebx, ecx
not ebx
or ebx, edi
xor ebx, esi
add edx, dword [esp + 0x30]
add ebx, edx
add ebx, 0x6ed9eba1
rol ebx, 0xe
add ebx, eax
rol ecx, 0xa
mov edx, edi
not edx
or edx, ebx
xor edx, ecx
add eax, dword [esp + 0x3c]
add eax, edx
add eax, 0x6ed9eba1
rol eax, 8
add eax, esi
rol edi, 0xa
mov edx, ebx
not edx
or edx, eax
xor edx, edi
add esi, dword [esp + 0x34]
add esi, edx
add esi, 0x6ed9eba1
rol esi, 0xd
rol ebx, 0xa
add esi, ecx
mov edx, eax
not edx
or edx, esi
xor edx, ebx
add ecx, dword [esp + 0x48]
add edx, ecx
add edx, 0x6ed9eba1
mov ecx, esi
not ecx
rol edx, 6
add edx, edi
rol eax, 0xa
or ecx, edx
xor ecx, eax
add edi, dword [esp + 0x40]
add edi, ecx
add edi, 0x6ed9eba1
rol edi, 5
add edi, ebx
rol esi, 0xa
mov ecx, edx
not ecx
or ecx, edi
xor ecx, esi
mov ebp, dword [esp + 0x50]
add ebx, ebp
add ecx, ebx
add ecx, 0x6ed9eba1
rol ecx, 0xc
add ecx, eax
rol edx, 0xa
mov ebx, edi
not ebx
or ebx, ecx
xor ebx, edx
add eax, dword [esp + 0x24]
add eax, ebx
add eax, 0x6ed9eba1
rol eax, 7
add eax, esi
rol edi, 0xa
mov ebx, ecx
not ebx
or ebx, eax
xor ebx, edi
add esi, dword [esp + 0x20]
add esi, ebx
add esi, 0x6ed9eba1
rol esi, 5
mov ebx, esi
and ebx, edx
xor esi, edx
lea esi, [esi + ebx*2]
rol ecx, 0xa
mov ebx, ecx
not ebx
and ebx, eax
add edx, dword [esp + 0x1c]
add edx, ebx
mov ebx, esi
and ebx, ecx
add edx, ebx
add edx, 0x8f1bbcdc
rol edx, 0xb
rol eax, 0xa
add edx, edi
mov ebx, eax
not ebx
and ebx, esi
add edi, dword [esp + 0x4c]
add edi, ebx
mov ebx, edx
and ebx, eax
add edi, ebx
add edi, 0x8f1bbcdc
rol edi, 0xc
add edi, ecx
rol esi, 0xa
mov ebx, esi
not ebx
and ebx, edx
add ecx, ebp
add ecx, ebx
mov ebx, edi
and ebx, esi
add ebx, ecx
add ebx, 0x8f1bbcdc
rol ebx, 0xe
add ebx, eax
rol edx, 0xa
mov ecx, ebx
and ecx, edx
lea ebp, [edx + edx]
not ebp
add ebp, edx
and ebp, edi
or ebp, ecx
add eax, dword [esp + 0x2c]
add ebp, eax
add ebp, 0x8f1bbcdc
rol ebp, 0xf
add ebp, esi
rol edi, 0xa
mov eax, edi
not eax
and eax, ebx
add esi, dword [esp + 0x34]
add esi, eax
mov eax, ebp
and eax, edi
lea ecx, [eax + esi]
add ecx, 0x8f1bbcdc
rol ecx, 0xe
add ecx, edx
rol ebx, 0xa
mov eax, ebx
not eax
and eax, ebp
add edx, dword [esp + 0x44]
add edx, eax
mov eax, ecx
and eax, ebx
lea esi, [eax + edx]
add esi, 0x8f1bbcdc
rol esi, 0xf
rol ebp, 0xa
add esi, edi
mov eax, ebp
not eax
and eax, ecx
add edi, dword [esp + 0x20]
add edi, eax
mov eax, esi
and eax, ebp
lea edx, [eax + edi]
add edx, 0x8f1bbcdc
rol edx, 9
add edx, ebx
rol ecx, 0xa
mov eax, ecx
not eax
and eax, esi
add ebx, dword [esp + 0x28]
add ebx, eax
mov eax, edx
and eax, ecx
add eax, ebx
add eax, 0x8f1bbcdc
rol eax, 8
add eax, ebp
rol esi, 0xa
mov edi, eax
xor edi, edx
and edi, esi
xor edi, edx
add edi, dword [esp + 0x40]
mov ebx, edi
xor edi, 0x8f1bbcdc
add edi, ebp
and ebx, 0xf1bbcdc
lea ebx, [edi + ebx*2]
rol ebx, 9
add ebx, ecx
rol edx, 0xa
mov edi, edx
not edi
and edi, eax
add ecx, dword [esp + 0x58]
add ecx, edi
mov edi, ebx
and edi, edx
add ecx, edi
add ecx, 0x8f1bbcdc
rol ecx, 0xe
rol eax, 0xa
add ecx, esi
mov edi, eax
not edi
and edi, ebx
add esi, dword [esp + 0x3c]
add esi, edi
mov edi, ecx
and edi, eax
add esi, edi
add esi, 0x8f1bbcdc
rol esi, 5
mov edi, esi
and edi, edx
xor esi, edx
rol ebx, 0xa
lea esi, [esi + edi*2]
mov edi, ebx
not edi
and edi, ecx
add edx, dword [esp + 0x54]
add edx, edi
mov edi, esi
and edi, ebx
add edi, edx
add edi, 0x8f1bbcdc
rol edi, 6
add edi, eax
rol ecx, 0xa
mov edx, edi
mov ebp, edi
and edx, ecx
mov edi, ecx
not edi
and edi, esi
add edi, dword [esp + 0x38]
add edx, edi
add edx, 0x8f1bbcdc
mov edi, edx
and edi, eax
xor eax, edx
lea edi, [eax + edi*2]
rol edi, 8
add edi, ebx
rol esi, 0xa
mov eax, esi
not eax
and eax, ebp
add ebx, dword [esp + 0x24]
add ebx, eax
mov eax, edi
and eax, esi
add eax, ebx
add eax, 0x8f1bbcdc
rol eax, 6
mov edx, eax
and edx, ecx
xor eax, ecx
lea edx, [eax + edx*2]
rol ebp, 0xa
mov dword [esp + 0x5c], ebp
mov eax, ebp
not eax
and eax, edi
add ecx, dword [esp + 0x48]
add ecx, eax
mov eax, edx
mov dword [esp + 0xc], edx
and eax, ebp
add ecx, eax
add ecx, 0x8f1bbcdc
rol ecx, 5
add ecx, esi
mov dword [esp + 0x10], ecx
rol edi, 0xa
mov dword [esp + 0x18], edi
mov eax, ecx
not eax
or eax, edi
add eax, ecx
inc eax
not edi
and edi, edx
or edi, eax
add edi, dword [esp + 0x30]
mov dword [esp], edi
xor edi, 0x8f1bbcdc
add edi, esi
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x60]
mov eax, edi
not eax
or eax, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
xor eax, esi
add eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
lea ebp, [edx + eax]
add ebp, 0x50a28be6
rol ebp, 8
mov edx, dword [esp + 0x64]
add ebp, edx
mov ecx, dword [esp + 4]
lea eax, [ecx + ecx]
not eax
add eax, ecx
or eax, esi
xor eax, ebp
add eax, edx
mov edx, dword [esp + 0x38]
lea esi, [edx + eax]
add esi, 0x50a28be6
rol esi, 9
add esi, edi
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x14]
mov eax, ebx
not eax
or eax, ebp
mov edx, esi
and edx, eax
add eax, dword [esp + 0x3c]
add eax, esi
add edx, edx
sub eax, edx
add eax, 0x50a28be6
mov edx, eax
and edx, edi
xor eax, edi
lea esi, [eax + edx*2]
mov eax, dword [esp]
and eax, 0xf1bbcdc
rol esi, 9
mov edx, dword [esp + 0x74]
lea eax, [edx + eax*2]
mov dword [esp], eax
add esi, ecx
rol ebp, 0xa
mov eax, ebp
not eax
mov edx, dword [esp + 8]
or eax, edx
xor eax, esi
add ecx, dword [esp + 0x34]
add eax, ecx
add eax, 0x50a28be6
rol eax, 0xb
add eax, ebx
rol edx, 0xa
mov dword [esp + 8], edx
mov ecx, edx
not ecx
or ecx, esi
xor ecx, eax
add ebx, dword [esp + 0x4c]
lea edx, [ecx + ebx]
add edx, 0x50a28be6
rol esi, 0xa
mov edi, eax
not edi
or edi, esi
mov ebx, eax
sub ebx, esi
mov ecx, esi
add ebx, edi
rol edx, 0xd
add edx, ebp
xor ebx, edx
add ebp, dword [esp + 0x30]
rol eax, 0xa
add ebp, ebx
add ebp, 0x50a28be6
mov edi, edx
and edi, eax
mov ebx, eax
xor ebx, edx
not ebx
add ebx, edx
sub ebx, edi
rol ebp, 0xf
mov esi, dword [esp + 8]
add ebp, esi
xor ebx, ebp
add esi, dword [esp + 0x50]
add esi, ebx
add esi, 0x50a28be6
rol esi, 0xf
add esi, ecx
rol edx, 0xa
mov edi, edx
not edi
or edi, ebp
xor edi, esi
add ecx, dword [esp + 0x28]
add ecx, edi
add ecx, 0x50a28be6
rol ecx, 5
add ecx, eax
mov dword [esp + 0x14], ecx
rol ebp, 0xa
mov edi, ebp
not edi
or edi, esi
xor edi, ecx
add eax, dword [esp + 0x40]
add edi, eax
add edi, 0x50a28be6
mov eax, dword [esp]
rol eax, 0xc
mov ecx, dword [esp + 0xc]
rol ecx, 0xa
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x5c]
add eax, ebx
mov dword [esp], eax
mov eax, ecx
not eax
or eax, dword [esp + 0x10]
xor eax, dword [esp]
add ebx, dword [esp + 0x28]
rol edi, 7
add eax, ebx
add eax, 0xa953fd4e
mov dword [esp + 8], eax
add edi, edx
rol esi, 0xa
mov eax, esi
not eax
mov ecx, dword [esp + 0x14]
or eax, ecx
xor eax, edi
mov ebx, dword [esp + 0x48]
add eax, ebx
add eax, 0x50a28be6
mov ebx, eax
and ebx, edx
xor edx, eax
lea eax, [edx + ebx*2]
rol eax, 7
add eax, ebp
mov dword [esp + 4], eax
rol ecx, 0xa
mov dword [esp + 0x14], ecx
not ecx
or ecx, edi
xor ecx, eax
add ebp, dword [esp + 0x54]
add ecx, ebp
add ecx, 0x50a28be6
mov eax, dword [esp + 8]
rol eax, 9
mov ebx, dword [esp + 0x10]
rol ebx, 0xa
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x18]
add eax, edx
mov dword [esp + 8], eax
not ebx
or ebx, dword [esp]
xor ebx, eax
add edx, dword [esp + 0x34]
rol ecx, 8
lea eax, [ebx + edx]
add eax, 0xa953fd4e
add ecx, esi
rol edi, 0xa
mov ebx, edi
not ebx
mov edx, dword [esp + 4]
or ebx, edx
xor ebx, ecx
add esi, dword [esp + 0x44]
lea ebp, [ebx + esi]
add ebp, 0x50a28be6
rol ebp, 0xb
mov ebx, dword [esp + 0x14]
add ebp, ebx
mov esi, edx
rol esi, 0xa
mov dword [esp + 4], esi
not esi
or esi, ecx
xor esi, ebp
mov edx, ebx
add edx, dword [esp + 0x1c]
lea ebx, [esi + edx]
add ebx, 0x50a28be6
rol ebx, 0xe
add ebx, edi
rol ecx, 0xa
mov edx, ecx
not edx
or edx, ebp
xor edx, ebx
add edi, dword [esp + 0x2c]
add edi, edx
add edi, 0x50a28be6
mov edx, eax
rol edx, 0xf
mov eax, dword [esp]
rol eax, 0xa
mov dword [esp], eax
mov esi, dword [esp + 0xc]
add edx, esi
mov dword [esp + 0x14], edx
not eax
or eax, dword [esp + 8]
xor eax, dword [esp + 0x14]
add esi, dword [esp + 0x24]
rol edi, 0xe
add eax, esi
add eax, 0xa953fd4e
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
add edi, eax
rol ebp, 0xa
mov edx, ebp
not edx
or edx, ebx
xor edx, edi
add eax, dword [esp + 0x58]
lea esi, [edx + eax]
add esi, 0x50a28be6
rol esi, 0xc
add esi, ecx
rol ebx, 0xa
mov eax, ebx
not eax
or eax, edi
xor eax, esi
add ecx, dword [esp + 0x20]
add eax, ecx
add eax, 0x50a28be6
rol eax, 6
add eax, ebp
rol edi, 0xa
mov ecx, edi
not ecx
and ecx, esi
add ebp, dword [esp + 0x48]
add ebp, ecx
mov ecx, eax
and ecx, edi
lea edx, [ecx + ebp]
add edx, 0x5c4dd124
rol edx, 9
add edx, ebx
rol esi, 0xa
mov ecx, edx
xor ecx, eax
and ecx, esi
xor ecx, eax
add ecx, dword [esp + 0x50]
mov ebp, ecx
xor ecx, 0x5c4dd124
add ecx, ebx
and ebp, 0xdc4dd124
lea ecx, [ecx + ebp*2]
rol ecx, 0xd
add ecx, edi
rol eax, 0xa
mov ebx, eax
not ebx
and ebx, edx
add edi, dword [esp + 0x58]
add edi, ebx
mov ebx, ecx
and ebx, eax
add edi, ebx
add edi, 0x5c4dd124
rol edi, 0xf
add edi, esi
rol edx, 0xa
mov ebx, edi
and ebx, edx
lea ebp, [edx + edx]
not ebp
add ebp, edx
and ebp, ecx
or ebp, ebx
add esi, dword [esp + 0x3c]
add esi, ebp
add esi, 0x5c4dd124
rol esi, 7
rol ecx, 0xa
add esi, eax
mov ebp, esi
and ebp, ecx
lea ebx, [ecx + ecx]
not ebx
add ebx, ecx
and ebx, edi
mov dword [esp + 4], ebp
xor dword [esp + 4], ebx
not ebx
and ebx, ebp
add eax, dword [esp + 0x34]
add eax, ebp
add eax, dword [esp + 4]
mov ebp, dword [esp + 0xc]
rol ebp, 5
sub eax, ebx
add ebp, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov ebx, dword [esp + 8]
rol ebx, 0xa
mov dword [esp + 8], ebx
not ebx
or ebx, dword [esp + 0x14]
xor ebx, ebp
mov ebp, dword [esp + 0x10]
add ebp, dword [esp + 0x4c]
add eax, 0x5c4dd124
rol eax, 0xc
add ebp, ebx
add ebp, 0xa953fd4e
add eax, edx
rol edi, 0xa
mov ebx, edi
not ebx
and ebx, esi
add edx, dword [esp + 0x40]
add edx, ebx
mov ebx, eax
and ebx, edi
add edx, ebx
add edx, 0x5c4dd124
mov dword [esp + 4], edx
mov ebx, ebp
rol ebx, 0xb
mov edx, dword [esp + 0x14]
rol edx, 0xa
mov dword [esp + 0x14], edx
mov ebp, dword [esp]
add ebx, ebp
mov dword [esp + 0x10], ebx
not edx
or edx, dword [esp + 0xc]
xor edx, ebx
add ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 4]
rol ebx, 8
add edx, ebp
add edx, 0xa953fd4e
mov dword [esp], edx
add ebx, ecx
rol esi, 0xa
mov edx, esi
not edx
and edx, eax
add ecx, dword [esp + 0x24]
add ecx, edx
mov edx, ebx
mov dword [esp + 4], ebx
and edx, esi
add ecx, edx
add ecx, 0x5c4dd124
rol ecx, 9
rol eax, 0xa
add ecx, edi
mov edx, eax
not edx
and edx, ebx
add edi, dword [esp + 0x2c]
add edi, edx
mov edx, ecx
and edx, eax
lea ebp, [edx + edi]
add ebp, 0x5c4dd124
mov edx, dword [esp + 0xc]
rol edx, 0xa
mov dword [esp + 0xc], edx
lea ebx, [edx + edx]
not ebx
add ebx, edx
mov edi, dword [esp + 0x10]
and edi, edx
mov edx, dword [esp + 0x10]
xor ebx, edx
add ebx, edx
rol ebp, 0xb
sub ebx, edi
add ebp, esi
mov edx, dword [esp + 4]
rol edx, 0xa
mov edi, edx
not edi
and edi, ecx
add esi, dword [esp + 0x38]
add esi, edi
mov edi, ebp
and edi, edx
mov dword [esp + 4], edx
add esi, edi
add esi, 0x5c4dd124
rol esi, 7
rol ecx, 0xa
add esi, eax
mov edi, ecx
not edi
and edi, ebp
add eax, dword [esp + 0x54]
add eax, edi
mov edi, esi
and edi, ecx
add eax, edi
add eax, 0x5c4dd124
rol eax, 7
add eax, edx
rol ebp, 0xa
mov edi, eax
xor edi, esi
and edi, ebp
xor edi, esi
add edi, dword [esp + 0x44]
mov edx, edi
xor edi, 0x5c4dd124
add edi, dword [esp + 4]
and edx, 0xdc4dd124
lea edx, [edi + edx*2]
rol edx, 0xc
rol esi, 0xa
add edx, ecx
mov dword [esp + 4], edx
mov edx, esi
not edx
and edx, eax
mov edi, dword [esp + 0x20]
add ecx, edi
add ecx, edx
mov edx, dword [esp + 4]
and edx, esi
add ecx, edx
add ecx, 0x5c4dd124
mov edx, dword [esp]
rol edx, 6
add edx, dword [esp + 8]
mov dword [esp], edx
xor ebx, edx
mov edx, dword [esp + 8]
add edx, edi
rol ecx, 7
add edx, ebx
add edx, 0xa953fd4e
mov dword [esp + 8], edx
mov edx, ecx
and edx, ebp
xor ecx, ebp
lea ebx, [ecx + edx*2]
rol eax, 0xa
mov ecx, ebx
and ecx, eax
lea edx, [eax + eax]
not edx
add edx, eax
mov edi, dword [esp + 4]
and edx, edi
or edx, ecx
add ebp, dword [esp + 0x28]
add edx, ebp
add edx, 0x5c4dd124
rol edx, 6
rol edi, 0xa
add edx, esi
mov ecx, edi
not ecx
and ecx, ebx
add esi, dword [esp + 0x4c]
add esi, ecx
mov ecx, edx
and ecx, edi
add ecx, esi
add ecx, 0x5c4dd124
rol ecx, 0xf
add ecx, eax
rol ebx, 0xa
mov esi, ebx
not esi
and esi, edx
add eax, dword [esp + 0x1c]
add eax, esi
mov esi, ecx
and esi, ebx
add eax, esi
add eax, 0x5c4dd124
rol eax, 0xd
add eax, edi
rol edx, 0xa
mov esi, eax
xor esi, ecx
and esi, edx
xor esi, ecx
add esi, dword [esp + 0x30]
mov ebp, esi
xor esi, 0x5c4dd124
add esi, edi
and ebp, 0xdc4dd124
lea esi, [esi + ebp*2]
rol esi, 0xb
add esi, ebx
rol ecx, 0xa
mov dword [esp + 4], eax
lea edi, [eax + eax]
not edi
add edi, eax
or edi, esi
xor edi, ecx
add ebx, dword [esp + 0x54]
add edi, ebx
add edi, 0x6d703ef3
mov eax, dword [esp + 0x10]
rol eax, 0xa
mov dword [esp + 0x10], eax
lea ebx, [eax + eax]
not ebx
add ebx, eax
mov ebp, dword [esp]
mov eax, ebp
and eax, dword [esp + 0x10]
xor ebx, ebp
add ebx, ebp
rol edi, 9
sub ebx, eax
mov ebp, edi
and ebp, edx
xor edi, edx
lea edi, [edi + ebp*2]
mov dword [esp + 0x18], edi
mov eax, dword [esp + 4]
rol eax, 0xa
mov dword [esp + 4], eax
mov ebp, esi
not ebp
or ebp, edi
xor ebp, eax
add edx, dword [esp + 0x24]
add edx, ebp
add edx, 0x6d703ef3
mov eax, dword [esp + 8]
rol eax, 8
mov edi, dword [esp + 0x14]
add eax, edi
mov dword [esp + 8], eax
xor ebx, eax
add edi, dword [esp + 0x30]
rol edx, 7
add edi, ebx
add edi, 0xa953fd4e
add edx, ecx
rol esi, 0xa
mov eax, dword [esp + 0x18]
mov ebx, eax
not ebx
or ebx, edx
xor ebx, esi
add ecx, dword [esp + 0x1c]
add ebx, ecx
add ebx, 0x6d703ef3
rol ebx, 0xf
mov ebp, dword [esp + 4]
add ebx, ebp
rol eax, 0xa
mov dword [esp + 0x18], eax
mov ecx, edx
not ecx
or ecx, ebx
xor ecx, eax
mov eax, ebp
add eax, dword [esp + 0x58]
add ecx, eax
add ecx, 0x6d703ef3
rol ecx, 0xb
mov eax, ebx
not eax
add ecx, esi
rol edx, 0xa
or eax, ecx
xor eax, edx
add esi, dword [esp + 0x3c]
add eax, esi
add eax, 0x6d703ef3
rol edi, 0xd
mov esi, dword [esp]
rol esi, 0xa
mov dword [esp], esi
add edi, dword [esp + 0xc]
mov dword [esp + 4], edi
not esi
or esi, dword [esp + 8]
xor esi, edi
mov ebp, dword [esp + 0xc]
add ebp, dword [esp + 0x2c]
rol eax, 8
add esi, ebp
add esi, 0xa953fd4e
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x18]
add eax, edi
rol ebx, 0xa
mov esi, ecx
not esi
or esi, eax
xor esi, ebx
add edi, dword [esp + 0x38]
add edi, esi
add edi, 0x6d703ef3
rol edi, 6
add edi, edx
rol ecx, 0xa
mov esi, eax
not esi
or esi, edi
xor esi, ecx
add edx, dword [esp + 0x48]
add edx, esi
add edx, 0x6d703ef3
rol edx, 6
add edx, ebx
mov esi, edx
rol eax, 0xa
lea edx, [edi + edi]
not edx
add edx, edi
or edx, esi
add ebx, dword [esp + 0x4c]
add ebx, eax
add ebx, edx
and edx, eax
add edx, edx
sub ebx, edx
add ebx, 0x6d703ef3
rol ebx, 0xe
add ebx, ecx
rol edi, 0xa
lea edx, [esi + esi]
not edx
add edx, esi
or edx, ebx
xor edx, edi
add ecx, dword [esp + 0x50]
add edx, ecx
add edx, 0x6d703ef3
rol edx, 0xc
add edx, eax
mov dword [esp + 0xc], edx
rol esi, 0xa
mov dword [esp + 0x18], esi
mov ecx, ebx
not ecx
or ecx, edx
xor ecx, esi
add eax, dword [esp + 0x44]
lea ebp, [ecx + eax]
add ebp, 0x6d703ef3
mov ecx, dword [esp + 0x14]
rol ecx, 0xc
mov eax, dword [esp + 8]
rol eax, 0xa
mov dword [esp + 8], eax
mov edx, dword [esp + 0x10]
add ecx, edx
mov dword [esp + 0x14], ecx
not eax
or eax, dword [esp + 4]
xor eax, ecx
add edx, dword [esp + 0x38]
rol ebp, 0xd
add eax, edx
add eax, 0xa953fd4e
mov dword [esp + 0x10], eax
add ebp, edi
mov eax, ebp
not eax
mov ecx, dword [esp + 0xc]
mov esi, ecx
or esi, eax
mov edx, ebp
sub edx, ecx
add edx, esi
rol ebx, 0xa
xor edx, ebx
add edi, dword [esp + 0x20]
lea ecx, [edx + edi]
add ecx, 0x6d703ef3
rol ecx, 5
mov esi, dword [esp + 0x18]
add ecx, esi
mov edx, dword [esp + 0xc]
rol edx, 0xa
mov dword [esp + 0xc], edx
or eax, ecx
mov edi, ecx
xor eax, edx
mov edx, eax
mov ecx, dword [esp + 0x30]
xor eax, ecx
add eax, esi
and edx, ecx
lea esi, [eax + edx*2]
add esi, 0x6d703ef3
mov ecx, dword [esp + 0x10]
rol ecx, 5
mov edx, dword [esp]
add ecx, edx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 4]
rol eax, 0xa
mov dword [esp + 4], eax
not eax
or eax, dword [esp + 0x14]
xor eax, ecx
mov ecx, dword [esp + 0x1c]
add eax, ecx
add eax, 0xa953fd4e
mov ecx, eax
and ecx, edx
mov dword [esp + 0x18], ecx
rol esi, 0xe
xor edx, eax
mov dword [esp], edx
add esi, ebx
rol ebp, 0xa
mov ecx, edi
mov eax, edi
not eax
or eax, esi
xor eax, ebp
add ebx, dword [esp + 0x2c]
lea edi, [eax + ebx]
add edi, 0x6d703ef3
rol edi, 0xd
add edi, dword [esp + 0xc]
mov eax, edi
and eax, esi
mov ebx, edi
not ebx
mov edx, ebx
xor edx, esi
add edx, edi
sub edx, eax
mov eax, ecx
rol eax, 0xa
mov dword [esp + 0x5c], eax
xor edx, eax
mov ecx, edx
mov eax, dword [esp + 0x34]
xor edx, eax
add edx, dword [esp + 0xc]
and ecx, eax
lea eax, [edx + ecx*2]
add eax, 0x6d703ef3
rol eax, 0xd
add eax, ebp
rol esi, 0xa
or ebx, eax
xor ebx, esi
add ebp, dword [esp + 0x28]
add ebx, ebp
add ebx, 0x6d703ef3
rol ebx, 7
mov ecx, dword [esp + 0x5c]
add ebx, ecx
rol edi, 0xa
mov edx, ebx
not edx
or edx, eax
mov ebp, ebx
sub ebp, eax
add ebp, edx
xor ebp, edi
add ecx, dword [esp + 0x40]
add ecx, ebp
add ecx, 0x6d703ef3
rol ecx, 5
rol eax, 0xa
add ecx, esi
mov edx, ecx
not edx
and edx, eax
add esi, dword [esp + 0x44]
add esi, edx
mov edx, ecx
and edx, ebx
add edx, esi
add edx, 0x7a6d76e9
rol edx, 0xf
add edx, edi
rol ebx, 0xa
mov esi, edx
not esi
and esi, ebx
add edi, dword [esp + 0x48]
add edi, esi
mov esi, edx
and esi, ecx
add edi, esi
add edi, 0x7a6d76e9
rol edi, 5
mov esi, dword [esp]
mov ebp, dword [esp + 0x18]
lea esi, [esi + ebp*2]
mov dword [esp], esi
add edi, eax
rol ecx, 0xa
mov dword [esp + 0x18], ecx
mov esi, edi
not esi
and esi, ecx
add eax, dword [esp + 0x28]
add eax, esi
mov esi, edi
and esi, edx
add eax, esi
add eax, 0x7a6d76e9
rol eax, 8
mov esi, eax
and esi, ebx
xor eax, ebx
lea ecx, [eax + esi*2]
rol edx, 0xa
mov eax, ecx
not eax
mov ebp, edi
or ebp, eax
add ebp, ecx
inc ebp
mov dword [esp + 0xc], ecx
and eax, edx
or eax, ebp
add ebx, dword [esp + 0x1c]
add ebx, eax
add ebx, 0x7a6d76e9
rol ebx, 0xb
mov esi, dword [esp + 0x18]
add ebx, esi
rol edi, 0xa
mov eax, ecx
xor eax, edi
and eax, ebx
xor eax, edi
mov ebp, eax
mov ecx, dword [esp + 0x58]
xor eax, ecx
add eax, esi
mov esi, dword [esp]
rol esi, 0xc
and ebp, ecx
lea eax, [eax + ebp*2]
add eax, 0x7a6d76e9
add esi, dword [esp + 8]
mov dword [esp], esi
mov ebp, dword [esp + 0x14]
rol ebp, 0xa
mov dword [esp + 0x14], ebp
not ebp
or ebp, dword [esp + 0x10]
mov esi, dword [esp]
and esi, ebp
add dword [esp + 8], ecx
rol eax, 0xe
mov ecx, dword [esp + 8]
add ecx, ebp
add eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
rol eax, 0xa
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x18]
not ebp
and ebp, eax
add edx, dword [esp + 0x50]
add edx, ebp
mov eax, dword [esp + 0x18]
mov ebp, eax
and ebp, ebx
add edx, ebp
add edx, 0x7a6d76e9
add ecx, dword [esp]
add esi, esi
rol edx, 0xe
sub ecx, esi
mov esi, ecx
add edx, edi
rol ebx, 0xa
mov ecx, edx
not ecx
and ecx, ebx
add edi, dword [esp + 0x54]
add edi, ecx
mov ecx, edx
and ecx, eax
add edi, ecx
add edi, 0x7a6d76e9
add esi, 0xa953fd4e
rol esi, 0xd
mov ecx, esi
mov ebp, dword [esp + 4]
and ecx, ebp
xor esi, ebp
rol edi, 6
lea ecx, [esi + ecx*2]
mov dword [esp + 8], ecx
mov esi, dword [esp + 0xc]
add edi, esi
rol eax, 0xa
mov ecx, edi
and ecx, edx
lea ebp, [edi + edi]
not ebp
add ebp, edi
and ebp, eax
or ebp, ecx
mov ecx, esi
add ecx, dword [esp + 0x34]
add ecx, ebp
add ecx, 0x7a6d76e9
rol ecx, 0xe
add ecx, ebx
rol edx, 0xa
mov esi, ecx
not esi
and esi, edx
add ebx, dword [esp + 0x24]
add ebx, esi
mov esi, ecx
and esi, edi
add ebx, esi
add ebx, 0x7a6d76e9
rol ebx, 6
add ebx, eax
rol edi, 0xa
mov esi, ebx
mov dword [esp + 0x18], ebx
not esi
and esi, edi
add eax, dword [esp + 0x20]
add eax, esi
mov ebp, dword [esp + 0x10]
rol ebp, 0xa
mov dword [esp + 0x10], ebp
mov esi, ebx
and esi, ecx
add eax, esi
add eax, 0x7a6d76e9
mov esi, ebp
not esi
mov ebp, dword [esp]
or esi, ebp
xor esi, dword [esp + 8]
mov ebx, dword [esp + 4]
add ebx, dword [esp + 0x44]
rol eax, 9
add esi, ebx
add esi, 0xa953fd4e
mov dword [esp + 0xc], esi
mov esi, eax
and esi, edx
xor eax, edx
lea esi, [eax + esi*2]
rol ecx, 0xa
mov eax, esi
not eax
and eax, ecx
add edx, dword [esp + 0x30]
add edx, eax
rol ebp, 0xa
mov dword [esp], ebp
mov eax, esi
mov ebx, dword [esp + 0x18]
and eax, ebx
add eax, edx
add eax, 0x7a6d76e9
mov ebp, dword [esp + 8]
mov edx, ebp
not edx
or edx, dword [esp]
sub ebp, dword [esp]
rol eax, 0xc
add ebp, edx
add eax, edi
rol ebx, 0xa
mov dword [esp + 0x18], ebx
mov edx, eax
not edx
and edx, ebx
add edi, dword [esp + 0x40]
add edi, edx
mov edx, eax
and edx, esi
add edx, edi
add edx, 0x7a6d76e9
rol edx, 9
mov edi, edx
and edi, ecx
xor edx, ecx
lea ebx, [edx + edi*2]
rol esi, 0xa
mov edx, ebx
not edx
and edx, esi
add ecx, dword [esp + 0x4c]
add ecx, edx
mov edx, ebx
mov dword [esp + 4], ebx
and edx, eax
add ecx, edx
add ecx, 0x7a6d76e9
rol ecx, 0xc
rol eax, 0xa
mov edi, dword [esp + 0x18]
add ecx, edi
mov edx, ecx
not edx
and edx, eax
add edi, dword [esp + 0x3c]
add edi, edx
mov edx, ecx
and edx, ebx
add edx, edi
add edx, 0x7a6d76e9
mov edi, dword [esp + 0xc]
rol edi, 0xe
mov ebx, dword [esp + 0x14]
add edi, ebx
mov dword [esp + 0xc], edi
xor ebp, edi
add ebx, dword [esp + 0x50]
rol edx, 5
add ebp, ebx
add ebp, 0xa953fd4e
add edx, esi
mov edi, dword [esp + 4]
rol edi, 0xa
mov dword [esp + 4], edi
mov ebx, edx
not ebx
and ebx, edi
add esi, dword [esp + 0x2c]
add esi, ebx
mov ebx, edx
and ebx, ecx
add esi, ebx
add esi, 0x7a6d76e9
rol ebp, 0xb
mov edi, dword [esp + 8]
rol edi, 0xa
mov dword [esp + 8], edi
add ebp, dword [esp + 0x10]
mov dword [esp + 0x14], ebp
mov ebx, edi
not ebx
or ebx, dword [esp + 0xc]
xor ebx, ebp
mov edi, dword [esp + 0x10]
add edi, dword [esp + 0x48]
rol esi, 0xf
add edi, ebx
add edi, 0xa953fd4e
add esi, eax
rol ecx, 0xa
mov ebx, esi
not ebx
and ebx, ecx
add eax, dword [esp + 0x38]
add eax, ebx
mov ebx, esi
mov ebp, esi
mov dword [esp + 0x10], esi
and ebx, edx
lea esi, [ebx + eax]
add esi, 0x7a6d76e9
rol esi, 8
mov eax, dword [esp + 4]
add esi, eax
add eax, dword [esp + 0x20]
rol edx, 0xa
mov ebx, ebp
xor ebx, edx
xor ebx, esi
add eax, ebx
rol edi, 8
mov ebx, dword [esp]
add edi, ebx
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x54]
add ebx, edi
mov dword [esp], ebx
rol eax, 8
add eax, ecx
mov ebp, eax
add ecx, edi
mov eax, dword [esp + 0x10]
rol eax, 0xa
mov ebx, esi
xor ebx, eax
xor ebx, ebp
add ecx, ebx
rol ecx, 5
add ecx, edx
add edx, dword [esp + 0x2c]
rol esi, 0xa
mov ebx, ebp
xor ebx, esi
xor ebx, ecx
add edx, ebx
rol edx, 0xc
add edx, eax
add eax, dword [esp + 0x28]
rol ebp, 0xa
mov dword [esp + 4], ebp
mov ebx, ecx
xor ebx, ebp
xor ebx, edx
add eax, ebx
mov ebx, dword [esp + 0xc]
rol ebx, 0xa
mov dword [esp + 0xc], ebx
not ebx
or ebx, dword [esp + 0x14]
xor ebx, dword [esp + 0x20]
rol eax, 9
mov edi, dword [esp]
add edi, ebx
add edi, 0xa953fd4e
mov dword [esp], edi
add eax, esi
rol ecx, 0xa
add esi, dword [esp + 0x1c]
mov ebp, edx
xor ebp, ecx
xor ebp, eax
add esi, ebp
rol esi, 0xc
add esi, dword [esp + 4]
rol edx, 0xa
mov ebp, eax
mov ebx, eax
xor ebp, edx
xor ebp, esi
add ebp, dword [esp + 0x24]
mov edi, ebp
mov eax, dword [esp + 4]
and edi, eax
xor ebp, eax
lea ebp, [ebp + edi*2]
rol ebp, 5
add ebp, ecx
add ecx, dword [esp + 0x44]
rol ebx, 0xa
mov edi, esi
xor edi, ebx
xor edi, ebp
add ecx, edi
rol ecx, 0xe
mov edi, ecx
and edi, edx
xor ecx, edx
lea eax, [ecx + edi*2]
mov dword [esp + 0x24], eax
rol esi, 0xa
mov ecx, ebp
xor ecx, esi
xor ecx, eax
add ecx, dword [esp + 0x3c]
mov edi, ecx
and edi, edx
xor ecx, edx
lea eax, [ecx + edi*2]
mov ecx, dword [esp]
rol ecx, 5
rol eax, 6
add eax, ebx
mov dword [esp + 0x1c], eax
rol ebp, 0xa
add ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
xor edx, ebp
xor edx, eax
add ebx, edx
mov eax, dword [esp + 8]
add ecx, eax
mov edx, ecx
mov dword [esp], ecx
mov edi, dword [esp + 0x14]
rol edi, 0xa
mov dword [esp + 0x14], edi
not edi
or edi, dword [esp + 0x20]
and edx, edi
add eax, dword [esp + 0x40]
rol ebx, 8
add eax, edi
mov dword [esp + 8], eax
add ebx, esi
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x24]
rol eax, 0xa
add esi, dword [esp + 0x30]
mov edi, ebx
mov ecx, dword [esp + 0x1c]
xor edi, ecx
add esi, eax
add esi, edi
and edi, eax
mov ebx, eax
add edi, edi
sub esi, edi
mov eax, dword [esp + 8]
add eax, dword [esp]
add edx, edx
rol esi, 0xd
sub eax, edx
mov dword [esp + 8], eax
add esi, ebp
mov eax, ecx
rol eax, 0xa
mov dword [esp + 0x1c], eax
add ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
xor edx, eax
xor edx, esi
add ebp, edx
rol ebp, 6
add ebp, ebx
mov edi, ebp
and edi, esi
lea ecx, [esi + ebp]
mov edx, ecx
not edx
lea edx, [edx + edi*2]
add edi, edi
sub ecx, edi
add ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
rol eax, 0xa
xor ecx, edx
and ecx, eax
xor ecx, edx
not ecx
add ecx, ebx
rol ecx, 5
mov ebx, dword [esp + 0x1c]
add ecx, ebx
add ebx, dword [esp + 0x34]
rol esi, 0xa
mov edx, ebp
xor edx, esi
xor edx, ecx
add ebx, edx
rol ebx, 0xf
add ebx, eax
add eax, dword [esp + 0x58]
rol ebp, 0xa
mov edx, ecx
xor edx, ebp
xor edx, ebx
add eax, edx
rol eax, 0xd
rol ecx, 0xa
add eax, esi
mov dword [esp + 0x10], eax
mov edx, ebx
xor edx, ecx
xor edx, eax
add edx, dword [esp + 0x4c]
mov edi, edx
and edi, esi
xor edx, esi
lea eax, [edx + edi*2]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0xc]
add edi, edx
add edx, dword [esp + 0x6c]
mov esi, dword [esp + 8]
add esi, 0xa953fd4e
rol esi, 6
rol eax, 0xb
add edx, esi
add eax, ebp
add edx, eax
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x10]
lea edx, [eax + esi]
and eax, esi
add eax, eax
sub edx, eax
add ebp, dword [esp + 0x50]
rol ebx, 0xa
xor edx, ebx
add ebp, edx
mov eax, dword [esp]
add eax, dword [esp + 0x68]
rol esi, 0xa
add eax, esi
mov esi, eax
mov edx, dword [esp + 0x20]
rol edx, 0xa
add edx, dword [esp + 0x70]
add edx, ebx
mov eax, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x60]
add edx, ecx
mov dword [eax + 8], edx
mov edx, edi
add edx, ecx
rol ebp, 0xb
add edx, ebp
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x10], ecx
mov dword [eax], esi
add esp, 0x78
pop esi
pop edi
pop ebx
pop ebp
ret