Function at 0x51f370
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x70]
cmp dword [ebx + 0x424], 0
jne 0x51f388
xor eax, eax
pop ebx
add esp, 0x68
ret
mov eax, dword [ebx + 0x42c]
push ebp
push edi
mov edi, dword [ebx + 0x428]
add edi, edi
add edi, edi
imul eax, edi
push 0
push 0x69d8f9
push eax
mov dword [esp + 0x30], edi
call fcn.004e0530
mov ebp, eax
add esp, 0xc
test ebp, ebp
mov dword [esp + 0x20], ebp
jne 0x51f3c5
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x68
ret
mov eax, dword [ebx + 0x428]
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 0x424]
cdq
and edx, 3
add eax, edx
push esi
mov esi, eax
mov eax, dword [ebx + 0x42c]
mov ebx, dword [ebx + 0x434]
cdq
and edx, 3
add eax, edx
sar esi, 2
add ecx, 0xffffffff
sar eax, 2
cmp ecx, 4
mov dword [esp + 0x1c], esi
ja case.default.0x51f406
jmp dword [ecx*4 + 0x521584]
test eax, eax
jbe case.default.0x51f406
lea edx, [ebp + 8]
lea ecx, [ebp + edi*2]
mov dword [esp + 0x20], edx
lea edx, [edi + ecx + 8]
mov dword [esp + 0x10], edx
lea ecx, [ebp + edi*2 + 8]
lea edx, [edi + ebp + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], eax
lea esp, [esp]
test esi, esi
jbe 0x51f799
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x6b], 0xff
mov byte [esp + 0x6f], 0xff
mov byte [esp + 0x73], 0xff
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], esi
jmp 0x51f480
movzx esi, word [ebx]
movzx edi, si
mov ebp, edi
and ebp, 0x1f
imul ebp, ebp, 0xff
mov eax, 0x84210843
imul ebp
add edx, ebp
sar edx, 4
mov ebp, edi
shr ebp, 5
and ebp, 0x3f
mov ecx, edx
imul ebp, ebp, 0xff
shr ecx, 0x1f
add ecx, edx
mov eax, 0x82082083
imul ebp
add edx, ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x69], al
shr edi, 0xb
imul edi, edi, 0xff
mov eax, 0x84210843
imul edi
add edx, edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6a], al
movzx eax, word [ebx + 2]
movzx edi, ax
mov ebp, edi
and ebp, 0x1f
imul ebp, ebp, 0xff
mov eax, 0x84210843
imul ebp
add edx, ebp
sar edx, 4
mov ebp, edi
shr ebp, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
and ebp, 0x3f
mov byte [esp + 0x6c], al
imul ebp, ebp, 0xff
mov eax, 0x82082083
imul ebp
add edx, ebp
sar edx, 5
shr edi, 0xb
imul edi, edi, 0xff
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6d], al
mov eax, 0x84210843
imul edi
add edx, edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6e], al
movzx eax, word [ebx + 2]
cmp si, ax
mov byte [esp + 0x68], cl
jbe 0x51f614
movzx esi, byte [esp + 0x6c]
movzx ebp, byte [esp + 0x6d]
movzx ecx, cl
lea edx, [esi + ecx*2]
mov eax, 0x55555556
imul edx
mov edi, edx
shr edx, 0x1f
add edx, edi
movzx edi, byte [esp + 0x69]
mov byte [esp + 0x70], dl
lea edx, [ebp + edi*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6e]
mov byte [esp + 0x71], al
movzx eax, byte [esp + 0x6a]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x72], al
lea ecx, [ecx + esi*2]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edi, [edi + ebp*2]
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x74], cl
movzx ecx, byte [esp + 0x6e]
mov byte [esp + 0x75], al
movzx eax, byte [esp + 0x6a]
lea ecx, [eax + ecx*2]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov byte [esp + 0x76], cl
mov byte [esp + 0x77], 0xff
jmp 0x51f66c
movzx eax, byte [esp + 0x6c]
movzx edx, cl
add eax, edx
cdq
sub eax, edx
movzx edx, byte [esp + 0x69]
mov ecx, eax
movzx eax, byte [esp + 0x6d]
add eax, edx
cdq
sub eax, edx
movzx edx, byte [esp + 0x6a]
sar eax, 1
mov dword [esp + 0x5c], eax
mov byte [esp + 0x71], al
movzx eax, byte [esp + 0x6e]
add eax, edx
sar ecx, 1
cdq
sub eax, edx
mov byte [esp + 0x70], cl
sar eax, 1
mov byte [esp + 0x74], cl
mov cl, byte [esp + 0x5c]
mov byte [esp + 0x72], al
mov byte [esp + 0x75], cl
mov byte [esp + 0x76], al
mov byte [esp + 0x77], 0
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x4c]
mov edx, eax
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 8], edx
mov edx, eax
shr edx, 2
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 4], edx
mov edx, eax
shr edx, 4
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx], edx
mov edx, eax
shr edx, 6
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 4], edx
mov edx, eax
shr edx, 8
and edx, 3
mov esi, dword [esp + edx*4 + 0x68]
mov edx, dword [esp + 0x48]
mov dword [edx - 8], esi
mov esi, eax
shr esi, 0xa
and esi, 3
mov esi, dword [esp + esi*4 + 0x68]
mov dword [edx - 4], esi
mov esi, eax
shr esi, 0xc
and esi, 3
mov esi, dword [esp + esi*4 + 0x68]
mov dword [edx], esi
mov esi, eax
shr esi, 0xe
and esi, 3
mov esi, dword [esp + esi*4 + 0x68]
mov dword [edx + 4], esi
mov esi, eax
shr esi, 0x10
and esi, 3
mov edi, dword [esp + esi*4 + 0x68]
mov esi, dword [esp + 0x44]
mov dword [esi - 8], edi
mov edi, eax
shr edi, 0x12
and edi, 3
mov edi, dword [esp + edi*4 + 0x68]
mov dword [esi - 4], edi
mov edi, eax
shr edi, 0x14
and edi, 3
mov edi, dword [esp + edi*4 + 0x68]
mov dword [esi], edi
mov edi, eax
shr edi, 0x16
and edi, 3
mov edi, dword [esp + edi*4 + 0x68]
mov dword [esi + 4], edi
mov edi, eax
shr edi, 0x18
and edi, 3
mov ebp, dword [esp + edi*4 + 0x68]
mov edi, dword [esp + 0x40]
mov dword [edi - 8], ebp
mov ebp, eax
shr ebp, 0x1a
and ebp, 3
mov ebp, dword [esp + ebp*4 + 0x68]
mov dword [edi - 4], ebp
mov ebp, eax
shr ebp, 0x1c
and ebp, 3
mov ebp, dword [esp + ebp*4 + 0x68]
shr eax, 0x1e
mov eax, dword [esp + eax*4 + 0x68]
mov dword [edi], ebp
mov dword [edi + 4], eax
add ecx, 0x10
add edx, 0x10
add esi, 0x10
add edi, 0x10
add ebx, 8
sub dword [esp + 0x3c], 1
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edi
jne 0x51f480
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
lea eax, [edi*4]
add dword [esp + 0x20], eax
add dword [esp + 0x18], eax
add dword [esp + 0x14], eax
add dword [esp + 0x10], eax
sub dword [esp + 0x38], 1
jne 0x51f440
jmp case.default.0x51f406
test eax, eax
jbe case.default.0x51f406
lea ecx, [ebp + 3]
mov dword [esp + 0x18], ecx
lea edx, [edi + edi*2]
lea ecx, [edx + ebp + 3]
mov dword [esp + 0x30], ecx
lea ecx, [ebp + edi*2 + 3]
mov dword [esp + 0x2c], ecx
lea ecx, [edi + ebp + 3]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], eax
mov cl, 0xff
jmp 0x51f804
mov esi, dword [esp + 0x1c]
test esi, esi
jbe 0x520047
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov eax, 0xfffffffd
sub eax, edx
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x6b], cl
mov byte [esp + 0x6f], cl
mov byte [esp + 0x73], cl
mov byte [esp + 0x77], cl
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], edx
nop
movzx edx, word [ebx]
mov dword [esp + 0x14], edx
and edx, 0x1f
imul edx, edx, 0xff
mov dword [esp + 0x5c], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x5c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
shr edx, 5
and edx, 0x3f
imul edx, edx, 0xff
mov byte [esp + 0x68], al
mov dword [esp + 0x5c], edx
mov eax, 0x82082083
imul edx
add edx, dword [esp + 0x5c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x69], al
mov eax, dword [esp + 0x14]
shr eax, 0xb
imul eax, eax, 0xff
mov edx, eax
mov dword [esp + 0x5c], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x5c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, word [ebx + 2]
mov dword [esp + 0x4c], edx
and edx, 0x1f
imul edx, edx, 0xff
mov byte [esp + 0x6a], al
mov dword [esp + 0x5c], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x5c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x4c]
shr edx, 5
and edx, 0x3f
imul edx, edx, 0xff
mov byte [esp + 0x6c], al
mov dword [esp + 0x5c], edx
mov eax, 0x82082083
imul edx
add edx, dword [esp + 0x5c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6d], al
mov eax, dword [esp + 0x4c]
shr eax, 0xb
imul eax, eax, 0xff
mov edx, eax
mov dword [esp + 0x5c], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x5c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6c]
mov byte [esp + 0x6e], al
movzx eax, byte [esp + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x70], al
movzx eax, byte [esp + 0x69]
movzx edx, byte [esp + 0x6d]
mov dword [esp + 0x3c], edx
lea edx, [edx + eax*2]
mov dword [esp + 0x38], eax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6e]
mov byte [esp + 0x71], al
movzx eax, byte [esp + 0x6a]
mov dword [esp + 0x44], edx
lea edx, [edx + eax*2]
mov dword [esp + 0x40], eax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov byte [esp + 0x72], al
mov eax, dword [esp + 0x34]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x38]
mov byte [esp + 0x74], al
mov eax, dword [esp + 0x3c]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x40]
mov byte [esp + 0x75], al
mov eax, dword [esp + 0x44]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x76], al
mov eax, dword [ebx + 4]
mov edx, eax
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp - 3], edx
mov edx, eax
shr edx, 2
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 1], edx
mov edx, eax
shr edx, 4
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 5], edx
mov edx, eax
shr edx, 6
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 9], edx
mov edx, eax
shr edx, 8
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [esi - 3], edx
mov edx, eax
shr edx, 0xa
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [esi + 1], edx
mov edx, eax
shr edx, 0xc
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [esi + 5], edx
mov edx, eax
shr edx, 0xe
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [esi + 9], edx
mov edx, eax
shr edx, 0x10
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi - 3], edx
mov edx, eax
shr edx, 0x12
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 1], edx
mov edx, eax
shr edx, 0x14
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 5], edx
mov edx, eax
shr edx, 0x16
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 9], edx
mov edx, eax
shr edx, 0x18
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 3], edx
mov edx, eax
shr edx, 0x1a
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 1], edx
mov edx, eax
shr edx, 0x1c
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 5], edx
shr eax, 0x1e
mov eax, dword [esp + eax*4 + 0x68]
mov dword [ecx + 9], eax
mov eax, dword [ebx + 8]
mov edx, eax
and edx, 0xf
imul edx, edx, 0xff
add ebx, 8
mov dword [esp + 0x14], eax
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp], dl
mov edx, dword [esp + 0x14]
shr edx, 4
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp + 4], dl
mov edx, dword [esp + 0x14]
shr edx, 8
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp + 8], dl
mov edx, dword [esp + 0x14]
shr edx, 0xc
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp + 0xc], dl
mov edx, dword [esp + 0x14]
shr edx, 0x10
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [esi], dl
mov edx, dword [esp + 0x14]
shr edx, 0x14
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [esi + 4], dl
mov edx, dword [esp + 0x14]
shr edx, 0x18
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [esi + 8], dl
mov edx, dword [esp + 0x14]
shr edx, 0x1c
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [esi + 0xc], dl
mov eax, dword [ebx + 4]
mov edx, eax
and edx, 0xf
imul edx, edx, 0xff
mov dword [esp + 0x14], eax
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi], dl
mov edx, dword [esp + 0x14]
shr edx, 4
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi + 4], dl
mov edx, dword [esp + 0x14]
shr edx, 8
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi + 8], dl
mov edx, dword [esp + 0x14]
shr edx, 0xc
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi + 0xc], dl
mov edx, dword [esp + 0x14]
shr edx, 0x10
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx], dl
mov edx, dword [esp + 0x14]
shr edx, 0x14
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx + 4], dl
mov edx, dword [esp + 0x14]
shr edx, 0x18
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx + 8], dl
mov edx, dword [esp + 0x14]
shr edx, 0x1c
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
mov eax, dword [esp + 0x20]
shr edx, 3
mov byte [ecx + 0xc], dl
movzx eax, byte [ecx + eax]
imul eax, eax, 0xff
cdq
add ebx, 8
mov dword [esp + 0x4c], ebx
movzx ebx, byte [ebp]
idiv ebx
mov edx, dword [esp + 0x20]
mov byte [ecx + edx], al
movzx eax, byte [ebp - 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp - 2], al
movzx eax, byte [ebp - 1]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [ebp + 4]
mov byte [ebp - 1], al
movzx eax, byte [ebp + 1]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 1], al
movzx eax, byte [ebp + 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 2], al
movzx eax, byte [ebp + 3]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [ebp + 8]
mov byte [ebp + 3], al
movzx eax, byte [ebp + 5]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 5], al
movzx eax, byte [ebp + 6]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 6], al
movzx eax, byte [ebp + 7]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [ebp + 0xc]
mov byte [ebp + 7], al
movzx eax, byte [ebp + 9]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 9], al
movzx eax, byte [ebp + 0xa]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 0xa], al
movzx eax, byte [ebp + 0xb]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ebp + 0xb], al
movzx eax, byte [esi - 3]
imul eax, eax, 0xff
cdq
movzx ebx, byte [esi]
idiv ebx
mov byte [esi - 3], al
movzx eax, byte [esi - 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi - 2], al
movzx eax, byte [esi - 1]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [esi + 4]
mov byte [esi - 1], al
movzx eax, byte [esi + 1]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 1], al
movzx eax, byte [esi + 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 2], al
movzx eax, byte [esi + 3]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [esi + 8]
mov byte [esi + 3], al
movzx eax, byte [esi + 5]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 5], al
movzx eax, byte [esi + 6]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 6], al
movzx eax, byte [esi + 7]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [esi + 0xc]
mov byte [esi + 7], al
movzx eax, byte [esi + 9]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 9], al
movzx eax, byte [esi + 0xa]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 0xa], al
movzx eax, byte [esi + 0xb]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [esi + 0xb], al
movzx eax, byte [edi - 3]
movzx ebx, byte [edi]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi - 3], al
movzx eax, byte [edi - 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi - 2], al
movzx eax, byte [edi - 1]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [edi + 4]
mov byte [edi - 1], al
movzx eax, byte [edi + 1]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 1], al
movzx eax, byte [edi + 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 2], al
movzx eax, byte [edi + 3]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [edi + 8]
mov byte [edi + 3], al
movzx eax, byte [edi + 5]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 5], al
movzx eax, byte [edi + 6]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 6], al
movzx eax, byte [edi + 7]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [edi + 0xc]
mov byte [edi + 7], al
movzx eax, byte [edi + 9]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 9], al
movzx eax, byte [edi + 0xa]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 0xa], al
movzx eax, byte [edi + 0xb]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [edi + 0xb], al
movzx eax, byte [ecx - 3]
movzx ebx, byte [ecx]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx - 3], al
movzx eax, byte [ecx - 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx - 2], al
movzx eax, byte [ecx - 1]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [ecx + 4]
mov byte [ecx - 1], al
movzx eax, byte [ecx + 1]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx + 1], al
movzx eax, byte [ecx + 2]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx + 2], al
movzx eax, byte [ecx + 3]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [ecx + 8]
add ebp, 0x10
add esi, 0x10
add edi, 0x10
add ecx, 0x10
mov byte [ecx - 0xd], al
movzx eax, byte [ecx - 0xb]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx - 0xb], al
movzx eax, byte [ecx - 0xa]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx - 0xa], al
movzx eax, byte [ecx - 9]
imul eax, eax, 0xff
cdq
idiv ebx
movzx ebx, byte [ecx - 4]
mov byte [ecx - 9], al
movzx eax, byte [ecx - 7]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx - 7], al
movzx eax, byte [ecx - 6]
imul eax, eax, 0xff
cdq
idiv ebx
mov byte [ecx - 6], al
movzx eax, byte [ecx - 5]
imul eax, eax, 0xff
cdq
idiv ebx
sub dword [esp + 0x50], 1
mov ebx, dword [esp + 0x4c]
mov byte [ecx - 5], al
jne 0x51f840
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov cl, 0xff
lea eax, [edi*4]
add dword [esp + 0x18], eax
add dword [esp + 0x10], eax
add dword [esp + 0x2c], eax
add dword [esp + 0x30], eax
sub dword [esp + 0x54], 1
jne 0x51f800
jmp case.default.0x51f406
test eax, eax
jbe case.default.0x51f406
lea edx, [ebp + 8]
mov dword [esp + 0x30], edx
lea edx, [ebp + edi*2]
lea edx, [edi + edx + 8]
mov dword [esp + 0x14], edx
lea edx, [ebp + edi*2 + 8]
mov dword [esp + 0x20], edx
lea ecx, [edi*4]
lea edx, [edi + ebp + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], eax
test esi, esi
jbe 0x520567
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x6b], 0xff
mov byte [esp + 0x6f], 0xff
mov byte [esp + 0x73], 0xff
mov byte [esp + 0x77], 0xff
mov dword [esp + 0x18], eax
mov dword [esp + 0x54], esi
lea esp, [esp]
movzx esi, word [ebx]
mov edx, esi
and edx, 0x1f
imul edx, edx, 0xff
mov dword [esp + 0x5c], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x5c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x68], al
mov edx, esi
shr edx, 5
and edx, 0x3f
imul edx, edx, 0xff
mov dword [esp + 0x5c], edx
mov eax, 0x82082083
imul edx
add edx, dword [esp + 0x5c]
shr esi, 0xb
sar edx, 5
imul esi, esi, 0xff
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x69], al
mov eax, 0x84210843
imul esi
mov dword [esp + 0x5c], esi
mov esi, edx
add esi, dword [esp + 0x5c]
sar esi, 4
mov eax, esi
shr eax, 0x1f
add eax, esi
movzx esi, word [ebx + 2]
mov edx, esi
and edx, 0x1f
imul edx, edx, 0xff
mov byte [esp + 0x6a], al
mov dword [esp + 0x5c], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x5c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
shr edx, 5
and edx, 0x3f
imul edx, edx, 0xff
mov byte [esp + 0x6c], al
mov dword [esp + 0x5c], edx
mov eax, 0x82082083
imul edx
add edx, dword [esp + 0x5c]
shr esi, 0xb
imul esi, esi, 0xff
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6d], al
mov eax, 0x84210843
imul esi
mov dword [esp + 0x5c], esi
mov esi, edx
add esi, dword [esp + 0x5c]
sar esi, 4
mov eax, esi
shr eax, 0x1f
add eax, esi
movzx esi, byte [esp + 0x68]
mov byte [esp + 0x6e], al
movzx eax, byte [esp + 0x6c]
lea edx, [eax + esi*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6d]
mov byte [esp + 0x70], al
movzx eax, byte [esp + 0x69]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6e]
mov byte [esp + 0x71], al
movzx eax, byte [esp + 0x6a]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x72], al
movzx eax, byte [esp + 0x6c]
lea esi, [esi + eax*2]
mov eax, 0x55555556
imul esi
mov esi, edx
shr edx, 0x1f
add edx, esi
mov byte [esp + 0x74], dl
movzx eax, byte [esp + 0x69]
movzx edx, byte [esp + 0x6d]
lea edx, [eax + edx*2]
mov eax, 0x55555556
imul edx
mov esi, edx
movzx edx, byte [esp + 0x6e]
mov eax, esi
shr eax, 0x1f
add eax, esi
mov byte [esp + 0x75], al
movzx eax, byte [esp + 0x6a]
lea edx, [eax + edx*2]
mov eax, 0x55555556
imul edx
mov eax, dword [ebx + 4]
mov esi, edx
shr edx, 0x1f
add edx, esi
mov byte [esp + 0x76], dl
mov edx, eax
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi - 8], edx
mov edx, eax
shr edx, 2
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi - 4], edx
mov edx, eax
shr edx, 4
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi], edx
mov edx, eax
shr edx, 6
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 4], edx
mov edx, eax
shr edx, 8
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp - 8], edx
mov edx, eax
shr edx, 0xa
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp - 4], edx
mov edx, eax
shr edx, 0xc
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp], edx
mov edx, eax
shr edx, 0xe
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 4], edx
mov edx, eax
shr edx, 0x10
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 8], edx
mov edx, eax
shr edx, 0x12
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 4], edx
mov edx, eax
shr edx, 0x14
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx], edx
mov edx, eax
shr edx, 0x16
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 4], edx
mov edx, eax
shr edx, 0x18
and edx, 3
mov esi, dword [esp + edx*4 + 0x68]
mov edx, dword [esp + 0x18]
mov dword [edx - 8], esi
mov esi, eax
shr esi, 0x1a
and esi, 3
mov esi, dword [esp + esi*4 + 0x68]
mov dword [edx - 4], esi
mov esi, eax
shr eax, 0x1e
mov eax, dword [esp + eax*4 + 0x68]
mov dword [edx + 4], eax
shr esi, 0x1c
and esi, 3
mov esi, dword [esp + esi*4 + 0x68]
mov dword [edx], esi
mov esi, dword [ebx + 8]
add ebx, 8
mov edx, esi
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi - 5], dl
mov edx, esi
shr edx, 4
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi - 1], dl
mov edx, esi
shr edx, 8
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi + 3], dl
mov edx, esi
shr edx, 0xc
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [edi + 7], dl
mov edx, esi
shr edx, 0x10
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp - 5], dl
mov edx, esi
shr edx, 0x14
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp - 1], dl
mov edx, esi
shr edx, 0x18
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ebp + 3], dl
shr esi, 0x1c
imul esi, esi, 0xff
mov eax, 0x88888889
mul esi
shr edx, 3
mov byte [ebp + 7], dl
mov esi, dword [ebx + 4]
mov edx, esi
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx - 5], dl
mov edx, esi
shr edx, 4
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx - 1], dl
mov edx, esi
shr edx, 8
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx + 3], dl
mov edx, esi
shr edx, 0xc
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
shr edx, 3
mov byte [ecx + 7], dl
mov edx, esi
shr edx, 0x10
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
mov eax, dword [esp + 0x18]
shr edx, 3
mov byte [eax - 5], dl
mov edx, esi
shr edx, 0x14
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
mov eax, dword [esp + 0x18]
shr edx, 3
mov byte [eax - 1], dl
mov edx, esi
shr edx, 0x18
and edx, 0xf
imul edx, edx, 0xff
mov eax, 0x88888889
mul edx
mov eax, dword [esp + 0x18]
shr esi, 0x1c
imul esi, esi, 0xff
shr edx, 3
mov byte [eax + 3], dl
mov eax, 0x88888889
mul esi
mov esi, dword [esp + 0x18]
shr edx, 3
mov byte [esi + 7], dl
add esi, 0x10
add ebx, 8
add edi, 0x10
add ebp, 0x10
add ecx, 0x10
sub dword [esp + 0x54], 1
mov dword [esp + 0x18], esi
jne 0x5200e0
mov ecx, dword [esp + 0x58]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
add dword [esp + 0x30], ecx
add dword [esp + 0x2c], ecx
add dword [esp + 0x20], ecx
add dword [esp + 0x14], ecx
sub dword [esp + 0x50], 1
jne 0x5200a8
jmp case.default.0x51f406
test eax, eax
jbe case.default.0x51f406
lea ecx, [ebp + 3]
mov dword [esp + 0x30], ecx
lea ecx, [ebp + edi*2 + 3]
lea edx, [edi + edi*2]
mov dword [esp + 0x4c], ecx
lea ecx, [edi + ebp + 3]
lea esi, [edx + ebp + 3]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], eax
mov cl, 0xff
jmp 0x5205c0
cmp dword [esp + 0x1c], 0
jbe 0x520f27
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
mov eax, 0xfffffffd
sub eax, edx
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x6b], cl
mov byte [esp + 0x6f], cl
mov byte [esp + 0x73], cl
mov byte [esp + 0x77], cl
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], edx
mov edi, edi
movzx edx, word [ebx]
mov dword [esp + 0x14], edx
and edx, 0x1f
imul edx, edx, 0xff
mov dword [esp + 0x54], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x54]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
shr edx, 5
and edx, 0x3f
imul edx, edx, 0xff
mov byte [esp + 0x68], al
mov dword [esp + 0x54], edx
mov eax, 0x82082083
imul edx
add edx, dword [esp + 0x54]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x69], al
mov eax, dword [esp + 0x14]
shr eax, 0xb
imul eax, eax, 0xff
mov edx, eax
mov dword [esp + 0x54], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x54]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, word [ebx + 2]
mov dword [esp + 0x54], edx
and edx, 0x1f
imul edx, edx, 0xff
mov byte [esp + 0x6a], al
mov dword [esp + 0x44], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x44]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x54]
shr edx, 5
and edx, 0x3f
imul edx, edx, 0xff
mov byte [esp + 0x6c], al
mov dword [esp + 0x44], edx
mov eax, 0x82082083
imul edx
add edx, dword [esp + 0x44]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6d], al
mov eax, dword [esp + 0x54]
shr eax, 0xb
imul eax, eax, 0xff
mov edx, eax
mov dword [esp + 0x54], edx
mov eax, 0x84210843
imul edx
add edx, dword [esp + 0x54]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6c]
mov byte [esp + 0x6e], al
movzx eax, byte [esp + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], edx
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x70], al
movzx eax, byte [esp + 0x69]
movzx edx, byte [esp + 0x6d]
mov dword [esp + 0x3c], edx
lea edx, [edx + eax*2]
mov dword [esp + 0x38], eax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6e]
mov byte [esp + 0x71], al
movzx eax, byte [esp + 0x6a]
mov dword [esp + 0x44], edx
lea edx, [edx + eax*2]
mov dword [esp + 0x40], eax
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov byte [esp + 0x72], al
mov eax, dword [esp + 0x34]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x38]
mov byte [esp + 0x74], al
mov eax, dword [esp + 0x3c]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x40]
mov byte [esp + 0x75], al
mov eax, dword [esp + 0x44]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x76], al
mov eax, dword [ebx + 4]
mov edx, eax
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 3], edx
mov edx, eax
shr edx, 2
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 1], edx
mov edx, eax
shr edx, 4
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 5], edx
mov edx, eax
shr edx, 6
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx + 9], edx
mov edx, eax
shr edx, 8
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi - 3], edx
mov edx, eax
shr edx, 0xa
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 1], edx
mov edx, eax
shr edx, 0xc
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 5], edx
mov edx, eax
shr edx, 0xe
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [edi + 9], edx
mov edx, eax
shr edx, 0x10
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp - 3], edx
mov edx, eax
shr edx, 0x12
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 1], edx
mov edx, eax
shr edx, 0x14
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 5], edx
mov edx, eax
shr edx, 0x16
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 9], edx
mov edx, eax
shr edx, 0x18
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [esi - 3], edx
mov edx, eax
shr edx, 0x1a
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [esi + 1], edx
mov edx, eax
shr edx, 0x1c
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
shr eax, 0x1e
mov eax, dword [esp + eax*4 + 0x68]
add ebx, 8
mov dword [esi + 5], edx
mov dword [esi + 9], eax
mov al, byte [ebx]
mov dl, byte [ebx + 1]
cmp al, dl
mov byte [esp + 0x60], al
mov byte [esp + 0x61], dl
movzx eax, al
movzx edx, dl
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jbe 0x5209e9
lea eax, [eax + eax*2]
lea edx, [edx + eax*2]
mov dword [esp + 0x54], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x62], al
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*2]
mov dword [esp + 0x54], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*4]
mov dword [esp + 0x54], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*4]
mov dword [esp + 0x54], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x65], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*2]
mov dword [esp + 0x54], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x66], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea edx, [eax + edx*2]
mov dword [esp + 0x54], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x54]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x67], al
jmp 0x520a6d
lea edx, [edx + eax*4]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x62], al
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*4]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x65], al
mov byte [esp + 0x66], 0
mov byte [esp + 0x67], 0xff
movzx edx, byte [ebx + 2]
xor eax, eax
mov ah, byte [ebx + 4]
mov al, byte [ebx + 3]
shl eax, 8
or eax, edx
mov edx, eax
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ecx], dl
mov edx, eax
shr edx, 3
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ecx + 4], dl
mov edx, eax
shr edx, 6
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ecx + 8], dl
mov edx, eax
shr edx, 9
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ecx + 0xc], dl
mov edx, eax
shr edx, 0xc
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [edi], dl
mov edx, eax
shr edx, 0xf
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [edi + 4], dl
mov edx, eax
shr edx, 0x12
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [edi + 8], dl
shr eax, 0x15
and eax, 7
movzx eax, byte [esp + eax + 0x60]
mov byte [edi + 0xc], al
movzx edx, byte [ebx + 5]
xor eax, eax
mov ah, byte [ebx + 7]
mov al, byte [ebx + 6]
shl eax, 8
or eax, edx
mov edx, eax
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp], dl
mov edx, eax
shr edx, 3
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp + 4], dl
mov edx, eax
shr edx, 6
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp + 8], dl
mov edx, eax
shr edx, 9
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp + 0xc], dl
mov edx, eax
shr edx, 0xc
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi], dl
mov edx, eax
shr edx, 0xf
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi + 4], dl
mov edx, eax
shr edx, 0x12
shr eax, 0x15
and eax, 7
movzx eax, byte [esp + eax + 0x60]
mov byte [esi + 0xc], al
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi + 8], dl
mov edx, dword [esp + 0x20]
movzx eax, byte [esi + edx]
imul eax, eax, 0xff
cdq
movzx ecx, byte [ecx]
idiv ecx
mov edx, dword [esp + 0x20]
add ebx, 8
mov byte [esi + edx], al
mov eax, dword [esp + 0x18]
movzx eax, byte [eax - 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx - 2], al
movzx eax, byte [edx - 1]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 4]
mov byte [edx - 1], al
movzx eax, byte [edx + 1]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx + 1], al
movzx eax, byte [edx + 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx + 2], al
movzx eax, byte [edx + 3]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 8]
mov byte [edx + 3], al
movzx eax, byte [edx + 5]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx + 5], al
movzx eax, byte [edx + 6]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx + 6], al
movzx eax, byte [edx + 7]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
movzx ecx, byte [edx + 0xc]
mov byte [edx + 7], al
movzx eax, byte [edx + 9]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx + 9], al
movzx eax, byte [edx + 0xa]
imul eax, eax, 0xff
cdq
idiv ecx
mov edx, dword [esp + 0x18]
mov byte [edx + 0xa], al
movzx eax, byte [edx + 0xb]
imul eax, eax, 0xff
cdq
idiv ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0xb], al
movzx eax, byte [edi - 3]
imul eax, eax, 0xff
cdq
movzx ecx, byte [edi]
idiv ecx
mov byte [edi - 3], al
movzx eax, byte [edi - 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi - 2], al
movzx eax, byte [edi - 1]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [edi + 4]
mov byte [edi - 1], al
movzx eax, byte [edi + 1]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 1], al
movzx eax, byte [edi + 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 2], al
movzx eax, byte [edi + 3]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [edi + 8]
mov byte [edi + 3], al
movzx eax, byte [edi + 5]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 5], al
movzx eax, byte [edi + 6]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 6], al
movzx eax, byte [edi + 7]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [edi + 0xc]
mov byte [edi + 7], al
movzx eax, byte [edi + 9]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 9], al
movzx eax, byte [edi + 0xa]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 0xa], al
movzx eax, byte [edi + 0xb]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [edi + 0xb], al
movzx eax, byte [ebp - 3]
movzx ecx, byte [ebp]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp - 3], al
movzx eax, byte [ebp - 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp - 2], al
movzx eax, byte [ebp - 1]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [ebp + 4]
mov byte [ebp - 1], al
movzx eax, byte [ebp + 1]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 1], al
movzx eax, byte [ebp + 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 2], al
movzx eax, byte [ebp + 3]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [ebp + 8]
mov byte [ebp + 3], al
movzx eax, byte [ebp + 5]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 5], al
movzx eax, byte [ebp + 6]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 6], al
movzx eax, byte [ebp + 7]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [ebp + 0xc]
mov byte [ebp + 7], al
movzx eax, byte [ebp + 9]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 9], al
movzx eax, byte [ebp + 0xa]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 0xa], al
movzx eax, byte [ebp + 0xb]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [ebp + 0xb], al
movzx eax, byte [esi - 3]
movzx ecx, byte [esi]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi - 3], al
movzx eax, byte [esi - 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi - 2], al
movzx eax, byte [esi - 1]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [esi + 4]
mov byte [esi - 1], al
movzx eax, byte [esi + 1]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi + 1], al
movzx eax, byte [esi + 2]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi + 2], al
movzx eax, byte [esi + 3]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [esi + 8]
add edi, 0x10
add ebp, 0x10
add esi, 0x10
mov byte [esi - 0xd], al
movzx eax, byte [esi - 0xb]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi - 0xb], al
movzx eax, byte [esi - 0xa]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi - 0xa], al
movzx eax, byte [esi - 9]
imul eax, eax, 0xff
cdq
idiv ecx
movzx ecx, byte [esi - 4]
mov byte [esi - 9], al
movzx eax, byte [esi - 7]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi - 7], al
movzx eax, byte [esi - 6]
imul eax, eax, 0xff
cdq
idiv ecx
mov byte [esi - 6], al
movzx eax, byte [esi - 5]
imul eax, eax, 0xff
cdq
idiv ecx
mov ecx, dword [esp + 0x18]
add ecx, 0x10
sub dword [esp + 0x50], 1
mov dword [esp + 0x18], ecx
mov byte [esi - 5], al
jne 0x520600
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov cl, 0xff
mov esi, dword [esp + 0x58]
lea eax, [edi*4]
add dword [esp + 0x30], eax
add dword [esp + 0x2c], eax
add dword [esp + 0x4c], eax
add esi, eax
sub dword [esp + 0x5c], 1
mov dword [esp + 0x58], esi
jne 0x5205c0
jmp case.default.0x51f406
test eax, eax
jbe case.default.0x51f406
lea edx, [ebp + 8]
lea ecx, [ebp + edi*2]
mov dword [esp + 0x4c], edx
lea edx, [edi + ecx + 8]
mov dword [esp + 0x40], edx
lea ecx, [ebp + edi*2 + 8]
lea edx, [edi + ebp + 8]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], eax
test esi, esi
jbe 0x521529
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x6b], 0xff
mov byte [esp + 0x6f], 0xff
mov byte [esp + 0x73], 0xff
mov byte [esp + 0x77], 0xff
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
movzx edi, word [ebx]
mov ebp, edi
and ebp, 0x1f
imul ebp, ebp, 0xff
mov eax, 0x84210843
imul ebp
add edx, ebp
sar edx, 4
mov ecx, edx
mov ebp, edi
shr ebp, 5
and ebp, 0x3f
imul ebp, ebp, 0xff
shr ecx, 0x1f
add ecx, edx
mov eax, 0x82082083
imul ebp
add edx, ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x69], al
shr edi, 0xb
imul edi, edi, 0xff
mov eax, 0x84210843
imul edi
add edx, edi
movzx edi, word [ebx + 2]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x6a], al
mov ebp, edi
and ebp, 0x1f
imul ebp, ebp, 0xff
mov eax, 0x84210843
imul ebp
add edx, ebp
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebp, edi
shr ebp, 5
mov byte [esp + 0x6c], al
and ebp, 0x3f
imul ebp, ebp, 0xff
mov eax, 0x82082083
imul ebp
add edx, ebp
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
shr edi, 0xb
imul edi, edi, 0xff
mov byte [esp + 0x6d], al
mov eax, 0x84210843
imul edi
add edx, edi
movzx edi, byte [esp + 0x6c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x68], cl
mov byte [esp + 0x6e], al
movzx ecx, cl
lea edx, [edi + ecx*2]
mov eax, 0x55555556
imul edx
movzx eax, byte [esp + 0x6d]
mov ebp, edx
shr edx, 0x1f
add edx, ebp
movzx ebp, byte [esp + 0x69]
mov byte [esp + 0x70], dl
lea edx, [eax + ebp*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
movzx edx, byte [esp + 0x6e]
mov byte [esp + 0x71], al
movzx eax, byte [esp + 0x6a]
lea edx, [edx + eax*2]
mov eax, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x72], al
lea ecx, [ecx + edi*2]
mov eax, 0x55555556
imul ecx
movzx eax, byte [esp + 0x6d]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea ebp, [ebp + eax*2]
mov eax, 0x55555556
imul ebp
mov eax, edx
mov byte [esp + 0x74], cl
movzx ecx, byte [esp + 0x6e]
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x75], al
movzx eax, byte [esp + 0x6a]
lea ecx, [eax + ecx*2]
mov eax, 0x55555556
imul ecx
mov eax, dword [ebx + 4]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov byte [esp + 0x76], cl
mov edx, eax
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov dword [esi - 8], ecx
mov edi, dword [esp + 0x5c]
mov edx, eax
shr edx, 2
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov dword [esi - 4], ecx
mov edx, eax
shr edx, 4
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov dword [esi], ecx
mov edx, eax
shr edx, 6
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov dword [esi + 4], ecx
mov edx, eax
shr edx, 8
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
shr edx, 0xa
and edx, 3
mov dword [edi - 8], ecx
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
shr edx, 0xc
and edx, 3
mov dword [edi - 4], ecx
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
shr edx, 0xe
and edx, 3
mov dword [edi], ecx
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
mov dword [edi + 4], ecx
shr edx, 0x10
mov ebp, dword [esp + 0x58]
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov dword [ebp - 8], ecx
mov edx, eax
shr edx, 0x12
and edx, 3
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
shr edx, 0x14
and edx, 3
mov dword [ebp - 4], ecx
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
shr edx, 0x16
and edx, 3
mov dword [ebp], ecx
mov ecx, dword [esp + edx*4 + 0x68]
mov edx, eax
shr edx, 0x18
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x54]
mov dword [ecx - 8], edx
mov edx, eax
shr edx, 0x1a
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
mov dword [ecx - 4], edx
mov edx, eax
shr edx, 0x1c
and edx, 3
mov edx, dword [esp + edx*4 + 0x68]
shr eax, 0x1e
mov eax, dword [esp + eax*4 + 0x68]
add ebx, 8
mov dword [ecx], edx
mov dword [ecx + 4], eax
mov al, byte [ebx]
mov dl, byte [ebx + 1]
cmp al, dl
mov byte [esp + 0x60], al
mov byte [esp + 0x61], dl
movzx eax, al
movzx edx, dl
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
jbe 0x52135b
lea eax, [eax + eax*2]
lea edx, [edx + eax*2]
mov dword [esp + 0x5c], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x5c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x62], al
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*2]
mov dword [esp + 0x5c], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x5c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x5c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*4]
mov dword [esp + 0x5c], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x5c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x65], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*2]
mov dword [esp + 0x5c], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x5c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x66], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea edx, [eax + edx*2]
mov dword [esp + 0x5c], edx
mov eax, 0x92492493
imul edx
add edx, dword [esp + 0x5c]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x67], al
jmp 0x5213df
lea edx, [edx + eax*4]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x62], al
mov eax, dword [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x14]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x10]
lea edx, [edx + eax*2]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
mov byte [esp + 0x64], al
mov eax, dword [esp + 0x14]
lea edx, [edx + eax*4]
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0x65], al
mov byte [esp + 0x66], 0
mov byte [esp + 0x67], 0xff
movzx edx, byte [ebx + 2]
xor eax, eax
mov ah, byte [ebx + 4]
mov al, byte [ebx + 3]
shl eax, 8
or eax, edx
mov edx, eax
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi - 5], dl
mov edx, eax
shr edx, 3
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi - 1], dl
mov edx, eax
shr edx, 6
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi + 3], dl
mov edx, eax
shr edx, 9
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [esi + 7], dl
mov edx, eax
shr edx, 0xc
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [edi - 5], dl
mov edx, eax
shr edx, 0xf
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [edi - 1], dl
mov edx, eax
shr edx, 0x12
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [edi + 3], dl
shr eax, 0x15
and eax, 7
movzx eax, byte [esp + eax + 0x60]
mov byte [edi + 7], al
movzx edx, byte [ebx + 5]
xor eax, eax
mov ah, byte [ebx + 7]
mov al, byte [ebx + 6]
shl eax, 8
or eax, edx
mov edx, eax
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp - 5], dl
mov edx, eax
shr edx, 3
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp - 1], dl
mov edx, eax
shr edx, 6
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp + 3], dl
mov edx, eax
shr edx, 9
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ebp + 7], dl
mov edx, eax
shr edx, 0xc
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ecx - 5], dl
mov edx, eax
shr edx, 0xf
and edx, 7
movzx edx, byte [esp + edx + 0x60]
mov byte [ecx - 1], dl
mov edx, eax
shr edx, 0x12
shr eax, 0x15
and edx, 7
movzx edx, byte [esp + edx + 0x60]
and eax, 7
movzx eax, byte [esp + eax + 0x60]
mov byte [ecx + 3], dl
mov byte [ecx + 7], al
add edi, 0x10
add ebp, 0x10
add ecx, 0x10
add ebx, 8
add esi, 0x10
sub dword [esp + 0x50], 1
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], ecx
jne 0x520fc3
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
lea eax, [edi*4]
add dword [esp + 0x4c], eax
add dword [esp + 0x48], eax
add dword [esp + 0x44], eax
add dword [esp + 0x40], eax
sub dword [esp + 0x3c], 1
jne 0x520f83
mov ecx, dword [esp + 0x7c]
mov edx, dword [ecx + 0x434]
push edx
call fcn.004e0760
mov esi, dword [esp + 0x80]
push esi
mov dword [esi + 0x434], ebp
call fcn.0051dcf0
add esp, 8
mov dword [esi + 0x430], edi
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x68
ret