Function at 0x41bc43
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
cmp esi, eax
ja 0x41bd5b
mov edi, dword [ebp]
test esi, esi
je 0x41bd49
test edi, edi
je 0x41bd54
mov ecx, dword [esp + 0x1c]
mov dword [ecx], esi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
cmp edi, 1
je 0x41bc9c
cmp eax, edx
jne 0x41bd91
jmp 0x41caef
xor eax, eax
xor ebx, ebx
mov al, byte [ebp + 4]
mov bl, byte [ebp + 8]
add ebp, 0xc
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
cmp edx, edi
je 0x41bd62
add edi, esi
neg esi
xor ecx, ecx
xor edx, edx
add al, 1
mov dl, byte [eax + ebp]
add bl, dl
mov cl, byte [ebx + ebp]
mov byte [ebx + ebp], dl
mov byte [eax + ebp], cl
add cl, dl
mov dl, byte [ecx + ebp]
mov byte [esi + edi], dl
inc esi
jl 0x41bcc1
mov ebp, dword [esp + 0x14]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
add edx, esi
cmp esi, 4
jl 0x41bd07
neg esi
mov eax, dword [esi + edx]
xor dword [esi + edi], eax
add esi, 4
cmp esi, 0xfffffffd
jl 0x41bcf7
neg esi
shl esi, 2
mov ecx, dword [esi + 0x41bd12]
jmp ecx
xor eax, eax
mov esi, dword [esp + 4]
mov edi, dword [esp + 8]
mov ebx, dword [esp]
mov ebp, dword [esp + 0xc]
add esp, 0x10
ret
mov ebp, dword [esp + 0x1c]
xor eax, eax
mov dword [ebp], eax
jmp 0x41bd36
mov eax, 0xb
jmp 0x41bd36
mov eax, 0xa
jmp 0x41bd36
add edi, esi
neg esi
xor ecx, ecx
xor edx, edx
add al, 1
mov dl, byte [eax + ebp]
add bl, dl
mov cl, byte [ebx + ebp]
mov byte [ebx + ebp], dl
mov byte [eax + ebp], cl
add cl, dl
mov dl, byte [ecx + ebp]
xor byte [esi + edi], dl
inc esi
jl 0x41bd6a
mov ebp, dword [esp + 0x14]
mov byte [ebp + 4], al
mov byte [ebp + 8], bl
jmp 0x41bd34
sub esp, 0x24
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 8]
add ebp, 0xc
mov dword [esp + 0x38], ebp
and esi, 0xffffffc0
je 0x41ca73
add esi, dword [esp + 0x3c]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x3c]
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 4], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 8], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0xc], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x10], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x14], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x18], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x1c], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x20], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x24], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x28], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x2c], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x30], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x34], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x38], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esi + 0x3c], edi
mov edi, 0
mov edi, dword [esp + 0x48]
movq mm0, qword [edi]
movq mm1, qword [edi + 8]
movq mm2, qword [edi + 0x10]
movq mm3, qword [edi + 0x18]
movq mm4, qword [edi + 0x20]
movq mm5, qword [edi + 0x28]
movq mm6, qword [edi + 0x30]
movq mm7, qword [edi + 0x38]
pxor mm0, qword [esi]
pxor mm1, qword [esi + 8]
pxor mm2, qword [esi + 0x10]
pxor mm3, qword [esi + 0x18]
pxor mm4, qword [esi + 0x20]
pxor mm5, qword [esi + 0x28]
pxor mm6, qword [esi + 0x30]
pxor mm7, qword [esi + 0x38]
movq qword [esi], mm0
movq qword [esi + 8], mm1
movq qword [esi + 0x10], mm2
movq qword [esi + 0x18], mm3
movq qword [esi + 0x20], mm4
movq qword [esi + 0x28], mm5
movq qword [esi + 0x30], mm6
movq qword [esi + 0x38], mm7
add esi, 0x40
add edi, 0x40
mov dword [esp + 0x48], edi
cmp esi, dword [esp + 0x20]
jne 0x41bdb6
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
and ecx, 0x3f
je 0x41cace
add ecx, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x38]
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add edi, 1
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
mov cl, byte [ebp + ecx*4]
add esi, 1
xor cl, byte [edi - 1]
mov byte [esi - 1], cl
cmp esi, dword [esp + 0x20]
jne 0x41ca90
mov dword [ebp - 8], eax
mov dword [ebp - 4], ebx
mov eax, 0
emms
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
add esp, 0x34
ret
sub esp, 0x24
mov eax, dword [ebp + 4]
mov ebx, dword [ebp + 8]
add ebp, 0xc
mov dword [esp + 0x38], ebp
and esi, 0xffffffe0
je 0x41d1ae
add esi, dword [esp + 0x3c]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x3c]
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 4], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 8], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 0xc], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 0x10], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 0x14], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 0x18], edi
mov edi, 0
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
or edi, dword [ebp + ecx*4]
ror edi, 8
mov dword [esp + 0x1c], edi
mov edi, 0
mov ecx, dword [esi]
mov edx, dword [esp]
xor ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esp + 4]
xor ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 8]
mov edx, dword [esp + 8]
xor ecx, edx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0xc]
xor ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x10]
xor ecx, edx
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x14]
xor ecx, edx
mov dword [esi + 0x14], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esp + 0x18]
xor ecx, edx
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esp + 0x1c]
xor ecx, edx
mov dword [esi + 0x1c], ecx
add esi, 0x20
cmp esi, dword [esp + 0x20]
jne 0x41cb14
mov dword [esp + 0x3c], esi
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x3c]
and ecx, 0x1f
je 0x41d200
add ecx, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
add eax, 1
and eax, 0xff
mov edx, dword [ebp + eax*4]
add esi, 1
add ebx, edx
and ebx, 0xff
mov ecx, dword [ebp + ebx*4]
mov dword [ebp + ebx*4], edx
mov dword [ebp + eax*4], ecx
add ecx, edx
and ecx, 0xff
mov dl, byte [ebp + ecx*4]
mov cl, byte [esi - 1]
xor cl, dl
mov byte [esi - 1], cl
cmp esi, dword [esp + 0x20]
jne 0x41d1c3
mov dword [ebp - 8], eax
mov dword [ebp - 4], ebx
mov eax, 0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
add esp, 0x34
ret