Function at 0x533288
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff9c
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x60]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
lea edi, [ebp - 0x50]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], ecx
cmp dword [ebp + 0x1c], 0
je 0x5347f3
mov dl, 7
mov eax, dword [ebp + 0x1c]
call fcn.0043538c
lea eax, [ebp - 0x60]
mov dl, 1
call fcn.00555a28
push eax
lea eax, [ebp - 0x50]
mov dl, 1
call fcn.00555a28
pop edx
call fcn.00436568
mov ebx, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
sub edx, dword [ebp - 0x4c]
mov eax, ebx
call fcn.00436568
mov ebx, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
sub edx, dword [ebp - 0x5c]
mov eax, ebx
call fcn.00436568
dec eax
mov ebx, eax
test ebx, ebx
jl 0x5347f3
lea eax, [ebp - 0x60]
mov dl, 1
call fcn.00555a14
push eax
lea eax, [ebp - 0x50]
mov dl, 1
call fcn.00555a14
pop edx
call fcn.00436568
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
sub edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
call fcn.00436568
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
sub edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
call fcn.00436568
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x5347f3
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x50]
jle 0x5333a2
cmp dword [ebp - 0x50], 0
jge 0x5333d6
mov eax, dword [ebp - 0x50]
neg eax
add dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x50]
neg eax
sub dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
sub edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
call fcn.00436568
dec eax
mov dword [ebp - 0x14], eax
jmp 0x5333d6
cmp dword [ebp - 0x60], 0
jge 0x5333d6
mov eax, dword [ebp - 0x60]
neg eax
add dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x60]
neg eax
sub dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
sub edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
call fcn.00436568
dec eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x4c]
jle 0x533411
cmp dword [ebp - 0x4c], 0
jge 0x533442
mov eax, dword [ebp - 0x4c]
neg eax
add dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x4c]
neg eax
sub ebx, eax
xor eax, eax
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
sub edx, dword [ebp - 0x5c]
mov eax, ebx
call fcn.00436568
dec eax
mov ebx, eax
jmp 0x533442
cmp dword [ebp - 0x5c], 0
jge 0x533442
mov eax, dword [ebp - 0x5c]
neg eax
add dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x5c]
neg eax
sub ebx, eax
xor eax, eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, eax
sub edx, dword [ebp - 0x4c]
mov eax, ebx
call fcn.00436568
dec eax
mov ebx, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
sub edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
call fcn.00436568
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, eax
sub edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
call fcn.00436568
dec eax
mov dword [ebp - 0x14], eax
cmp dword [ebp + 0x10], 0x1fffffff
je 0x53408c
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, byte [ebp - 0x18]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fld dword [0x5347fc]
call fcn.004036a8
fstp qword [ebp - 0x28]
wait
xor eax, eax
mov al, byte [ebp - 0x17]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fld dword [0x5347fc]
call fcn.004036a8
fstp qword [ebp - 0x30]
wait
xor eax, eax
mov al, byte [ebp - 0x16]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fld dword [0x5347fc]
call fcn.004036a8
fstp qword [ebp - 0x38]
wait
cmp dword [ebp + 0xc], 0
je 0x53397a
mov eax, dword [ebp + 0x18]
cmp byte [eax + 0x10], 0
jne 0x5336e4
test ebx, ebx
jl 0x533df7
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x5336d3
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], 0
mov ebx, dword [ebp - 0x50]
add ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x60]
add edi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov al, byte [ebp - 0x19]
mov edx, 0x64
sub edx, dword [ebp + 0xc]
imul edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [ebp - 0x1e], al
xor eax, eax
mov al, byte [ebp - 0x1a]
xor edx, edx
mov dl, byte [ebp - 0x1b]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x1c]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
mov byte [ebp - 0x1d], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x30]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x38]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
inc dword [ebp - 0xc]
dec dword [ebp - 0x40]
jne 0x533535
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x5334fe
jmp 0x533df7
test ebx, ebx
jl 0x533df7
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x533969
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xff00ff
je 0x5338c5
xor eax, eax
mov al, byte [ebp - 0x19]
mov edx, 0x64
sub edx, dword [ebp + 0xc]
imul edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [ebp - 0x1e], al
xor eax, eax
mov al, byte [ebp - 0x1a]
xor edx, edx
mov dl, byte [ebp - 0x1b]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x1c]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
mov byte [ebp - 0x1d], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
jmp 0x53395e
cmp byte [ebp + 0x14], 0
je 0x53395e
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 8]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
cmp eax, edx
jle 0x533960
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, ebx
cmp eax, edx
jle 0x533969
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x10]
test eax, eax
jl 0x533969
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
add eax, ebx
test eax, eax
jl 0x533960
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
call fcn.0043437c
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
add ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, ebx
call fcn.0042f78c
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x18]
mov byte [esi + eax + 2], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x17]
mov byte [esi + eax + 1], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x16]
mov byte [esi + eax], dl
inc ebx
inc edi
dec dword [ebp - 0x40]
jne 0x53372d
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x5336f7
jmp 0x533df7
mov eax, dword [ebp + 0x18]
cmp byte [eax + 0x10], 0
jne 0x533b69
test ebx, ebx
jl 0x533df7
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x64]
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x533b58
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov al, byte [ebp - 0x1a]
xor edx, edx
mov dl, byte [ebp - 0x1b]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x1c]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
mov byte [ebp - 0x1d], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 3]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 3]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x30]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 3]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x38]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
inc ebx
inc edi
dec dword [ebp - 0x40]
jne 0x5339d8
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x53399a
jmp 0x533df7
test ebx, ebx
jl 0x533df7
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x533deb
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov al, byte [ebp - 0x1a]
xor edx, edx
mov dl, byte [ebp - 0x1b]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x1c]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
mov byte [ebp - 0x1d], al
cmp dword [ebp - 0x1c], 0xff00ff
je 0x533d40
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 3]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 3]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x30]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 3]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x38]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
jmp 0x533ddd
cmp byte [ebp + 0x14], 0
je 0x533ddd
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 8]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
cmp eax, edx
jle 0x533ddf
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, ebx
cmp eax, edx
jle 0x533deb
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x10]
test eax, eax
jl 0x533deb
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
add eax, ebx
test eax, eax
jl 0x533ddf
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
call fcn.0043437c
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
add ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, dword [ebp - 0x50]
add edx, dword [ebp - 0xc]
call fcn.0042f78c
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x18]
mov byte [esi + eax + 2], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x17]
mov byte [esi + eax + 1], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x16]
mov byte [esi + eax], dl
inc ebx
inc edi
inc dword [ebp - 0xc]
dec dword [ebp - 0x40]
jne 0x533bb9
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x533b7c
cmp byte [ebp + 8], 0
je 0x5347f3
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, dword [ebp - 0x44]
dec eax
push eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x533e1d
adc eax, 0
dec eax
pop edx
call fcn.00436568
mov ebx, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x533e35
adc eax, 0
push eax
mov eax, 0xff
pop edx
mov ecx, edx
cdq
idiv ecx
mov byte [ebp - 0x15], al
mov byte [ebp - 0x18], 0xff
test ebx, ebx
jle 0x5347f3
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 1
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x10]
dec edx
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x534075
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xff00ff
je 0x53406a
cmp dword [ebp + 0xc], 0
jne 0x533ed7
xor eax, eax
mov al, byte [ebp - 0x19]
mov ecx, 3
xor edx, edx
div ecx
xor edx, edx
mov dl, byte [ebp - 0x18]
imul edx
mov ecx, 0xff
xor edx, edx
div ecx
xor edx, edx
call fcn.0043662c
mov byte [ebp - 0x1e], al
jmp 0x533f07
xor eax, eax
mov al, byte [ebp - 0x19]
mov edx, 0x64
sub edx, dword [ebp + 0xc]
imul edx
mov ecx, 0x12c
cdq
idiv ecx
xor edx, edx
mov dl, byte [ebp - 0x18]
imul edx
mov ecx, 0xff
cdq
idiv ecx
xor edx, edx
call fcn.0043662c
mov byte [ebp - 0x1e], al
xor eax, eax
mov al, byte [ebp - 0x1a]
xor edx, edx
mov dl, byte [ebp - 0x1b]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x1c]
add eax, edx
mov ecx, 3
xor edx, edx
div ecx
mov byte [ebp - 0x1d], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x28]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 2]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x30]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax + 1]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
xor eax, eax
mov al, byte [ebp - 0x1e]
xor edx, edx
push edx
push eax
xor eax, eax
mov al, byte [ebp - 0x1d]
mov dword [ebp - 0x64], eax
fild dword [ebp - 0x64]
fmul qword [ebp - 0x38]
call fcn.00403028
push edx
push eax
push 0
push 0xff
call fcn.00436570
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
call fcn.00406568
push edx
push eax
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shl eax, 8
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
shrd eax, edx, 8
shr edx, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
inc ebx
inc edi
dec dword [ebp - 0x40]
jne 0x533e91
mov al, byte [ebp - 0x15]
sub byte [ebp - 0x18], al
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x533e5a
jmp 0x5347f3
cmp dword [ebp + 0xc], 0
je 0x534370
mov eax, dword [ebp + 0x18]
cmp byte [eax + 0x10], 0
jne 0x5341b9
test ebx, ebx
jl 0x534642
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x5341a8
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], 0
mov ebx, dword [ebp - 0x50]
add ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x60]
add edi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov al, byte [ebp - 0x19]
mov edx, 0x64
sub edx, dword [ebp + 0xc]
imul edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [ebp - 0x1e], al
xor edx, edx
mov dl, byte [ebp - 0x1a]
lea eax, [ebx + ebx*2]
xor ecx, ecx
mov cl, byte [esi + eax + 2]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx + 2]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax + 2], dl
xor edx, edx
mov dl, byte [ebp - 0x1b]
xor ecx, ecx
mov cl, byte [esi + eax + 1]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
xor ecx, ecx
mov cl, byte [esi + eax + 1]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax + 1], dl
xor edx, edx
mov dl, byte [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [esi + eax]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
xor ecx, ecx
mov cl, byte [esi + eax]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax], dl
inc dword [ebp - 0xc]
dec dword [ebp - 0x40]
jne 0x5340ed
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x5340b6
jmp 0x534642
test ebx, ebx
jl 0x534642
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x53435f
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xff00ff
je 0x5342bb
xor eax, eax
mov al, byte [ebp - 0x19]
mov edx, 0x64
sub edx, dword [ebp + 0xc]
imul edx
mov ecx, 0x64
cdq
idiv ecx
mov byte [ebp - 0x1e], al
xor edx, edx
mov dl, byte [ebp - 0x1a]
lea eax, [ebx + ebx*2]
xor ecx, ecx
mov cl, byte [esi + eax + 2]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx + 2]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax + 2], dl
xor edx, edx
mov dl, byte [ebp - 0x1b]
xor ecx, ecx
mov cl, byte [esi + eax + 1]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx + 1]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax + 1], dl
xor edx, edx
mov dl, byte [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [esi + eax]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax], dl
jmp 0x534354
cmp byte [ebp + 0x14], 0
je 0x534354
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 8]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
cmp eax, edx
jle 0x534356
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, ebx
cmp eax, edx
jle 0x53435f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x10]
test eax, eax
jl 0x53435f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
add eax, ebx
test eax, eax
jl 0x534356
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
call fcn.0043437c
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
add ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, ebx
call fcn.0042f78c
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x18]
mov byte [esi + eax + 2], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x17]
mov byte [esi + eax + 1], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x16]
mov byte [esi + eax], dl
inc ebx
inc edi
dec dword [ebp - 0x40]
jne 0x534202
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x5341cc
jmp 0x534642
mov eax, dword [ebp + 0x18]
cmp byte [eax + 0x10], 0
jne 0x534485
test ebx, ebx
jl 0x534642
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x64]
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x534474
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 2]
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 2]
sub eax, edx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + edi*4 + 3]
imul edx
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 2]
shl edx, 8
add eax, edx
shr eax, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 1]
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 1]
sub eax, edx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + edi*4 + 3]
imul edx
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 1]
shl edx, 8
add eax, edx
shr eax, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4]
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx]
sub eax, edx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + edi*4 + 3]
imul edx
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx]
shl edx, 8
add eax, edx
shr eax, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
inc ebx
inc edi
dec dword [ebp - 0x40]
jne 0x5343ce
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x534390
jmp 0x534642
test ebx, ebx
jl 0x534642
inc ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x534636
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xff00ff
je 0x53458b
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 2]
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 2]
sub eax, edx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + edi*4 + 3]
imul edx
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 2]
shl edx, 8
add eax, edx
shr eax, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 2], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4 + 1]
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 1]
sub eax, edx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + edi*4 + 3]
imul edx
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx + 1]
shl edx, 8
add eax, edx
shr eax, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx + 1], al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + edi*4]
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx]
sub eax, edx
mov edx, dword [ebp - 8]
movzx edx, byte [edx + edi*4 + 3]
imul edx
lea edx, [ebx + ebx*2]
movzx edx, byte [esi + edx]
shl edx, 8
add eax, edx
shr eax, 8
and al, 0xff
lea edx, [ebx + ebx*2]
mov byte [esi + edx], al
jmp 0x534628
cmp byte [ebp + 0x14], 0
je 0x534628
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 8]
add edx, dword [ebp - 0x4c]
add edx, dword [ebp - 0x10]
cmp eax, edx
jle 0x53462a
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, ebx
cmp eax, edx
jle 0x534636
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x10]
test eax, eax
jl 0x534636
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
add eax, ebx
test eax, eax
jl 0x53462a
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
call fcn.0043437c
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
add ecx, dword [ebp - 0x4c]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + 4]
add edx, dword [ebp - 0x50]
add edx, dword [ebp - 0xc]
call fcn.0042f78c
mov dword [ebp - 0x18], eax
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x18]
mov byte [esi + eax + 2], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x17]
mov byte [esi + eax + 1], dl
lea eax, [ebx + ebx*2]
mov dl, byte [ebp - 0x16]
mov byte [esi + eax], dl
inc ebx
inc edi
inc dword [ebp - 0xc]
dec dword [ebp - 0x40]
jne 0x5344d5
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x534498
cmp byte [ebp + 8], 0
je 0x5347f3
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
sub eax, dword [ebp - 0x44]
dec eax
push eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x534668
adc eax, 0
dec eax
pop edx
call fcn.00436568
mov ebx, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x20]
sar eax, 1
jns 0x534680
adc eax, 0
push eax
mov eax, 0xff
pop edx
mov ecx, edx
cdq
idiv ecx
mov byte [ebp - 0x15], al
mov byte [ebp - 0x18], 0xff
test ebx, ebx
jle 0x5347f3
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x10], 1
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.004344ec
mov esi, eax
mov edx, dword [ebp - 0x54]
sub edx, dword [ebp - 0x10]
dec edx
mov eax, dword [ebp + 0x1c]
call fcn.004344ec
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x14]
test eax, eax
jl 0x5347e1
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xff00ff
je 0x5347d6
cmp dword [ebp + 0xc], 0
jne 0x534722
xor eax, eax
mov al, byte [ebp - 0x19]
mov ecx, 3
xor edx, edx
div ecx
xor edx, edx
mov dl, byte [ebp - 0x18]
imul edx
mov ecx, 0xff
xor edx, edx
div ecx
xor edx, edx
call fcn.0043662c
mov byte [ebp - 0x1e], al
jmp 0x534752
xor eax, eax
mov al, byte [ebp - 0x19]
mov edx, 0x64
sub edx, dword [ebp + 0xc]
imul edx
mov ecx, 0x12c
cdq
idiv ecx
xor edx, edx
mov dl, byte [ebp - 0x18]
imul edx
mov ecx, 0xff
cdq
idiv ecx
xor edx, edx
call fcn.0043662c
mov byte [ebp - 0x1e], al
xor edx, edx
mov dl, byte [ebp - 0x1a]
lea eax, [ebx + ebx*2]
xor ecx, ecx
mov cl, byte [esi + eax + 2]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx + 2]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax + 2], dl
xor edx, edx
mov dl, byte [ebp - 0x1b]
xor ecx, ecx
mov cl, byte [esi + eax + 1]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx + 1]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax + 1], dl
xor edx, edx
mov dl, byte [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [esi + eax]
sub edx, ecx
xor ecx, ecx
mov cl, byte [ebp - 0x1e]
imul edx, ecx
lea ecx, [ebx + ebx*2]
movzx ecx, byte [esi + ecx]
shl ecx, 8
add edx, ecx
shr edx, 8
and dl, 0xff
mov byte [esi + eax], dl
inc ebx
inc edi
dec dword [ebp - 0x40]
jne 0x5346dc
mov al, byte [ebp - 0x15]
sub byte [ebp - 0x18], al
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x5346a5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18