Function at 0x40cc40
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [0x552064]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, ecx
mov dword [ebp - 0x48], edx
push edi
mov dword [ebp - 0x40], ebx
mov edx, dword [esi]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
sub ecx, edx
mov dword [ebp - 0x38], edx
mov edx, dword [esi + 0xc]
mov esi, dword [ebp - 0x48]
sub edx, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x20], edx
mov edx, dword [esi]
mov edi, dword [esi + 4]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
sub eax, edx
sub esi, edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x18], esi
mov esi, dword [ebx + 0x1c]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x1c], esi
cmp ecx, eax
jne 0x40c0ea
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], eax
jne 0x40c0ea
push dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp + 8]
push edi
call fcn.0040acf0
add esp, 0xc
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x3c]
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x38]
push dword [edi + 8]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00468cd0
push dword [edi + 0xc]
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x34]
lea ecx, [ebp - 8]
call fcn.00468cd0
push dword [ebx + 0x18]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x28]
call fcn.00468cd0
push esi
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 8]
lea ecx, [ebp - 0x34]
call fcn.00468cd0
add esp, 0x30
cmp dword [ebp - 0x30], 0
jle case.default.0x40c218
cmp dword [ebp - 0x20], 0
jle case.default.0x40c218
mov esi, dword [ebp - 0x3c]
test esi, esi
jle case.default.0x40c218
cmp dword [ebp - 0x18], 0
jle case.default.0x40c218
lea eax, [esi*4]
call fcn.004e70b0
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x28]
sub ebx, dword [eax]
mov eax, dword [ebp - 0x38]
sub eax, dword [ecx]
xor ecx, ecx
imul ebx, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
test esi, esi
jle 0x40c1c0
mov edi, dword [ebp - 0xc]
nop dword [eax + eax]
mov eax, ebx
add ebx, edi
cdq
idiv dword [ebp - 0x24]
mov edx, esp
sub eax, dword [ebp - 0x10]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x40c1a0
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
jmp 0x40c1c6
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x14]
sub ecx, dword [ebp - 0x34]
cdq
dec ecx
xor eax, edx
mov dword [ebp - 0x24], 2
sub eax, edx
movzx edx, byte [edi + 0x55]
imul eax, ecx
and edx, 3
mov ecx, dword [ebp - 0x28]
shl edx, 2
lea ebx, [eax + ecx*4]
mov eax, dword [ebp - 0x40]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0x28], ecx
add ebx, dword [eax + 8]
xor eax, eax
cmp ecx, 0xff
mov dword [ebp - 0x20], ebx
cmovl eax, dword [ebp - 0x24]
or edx, eax
movzx eax, byte [edi + 0x54]
or edx, eax
cmp edx, 0xf
ja case.default.0x40c218
jmp dword [edx*4 + 0x40d68c]
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop dword [eax]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x24], eax
test esi, esi
jle 0x40c27b
mov edi, esp
mov edx, esi
mov ecx, ebx
sub edi, ebx
mov esi, eax
mov eax, dword [edi + ecx]
lea ecx, [ecx + 4]
mov eax, dword [esi + eax*4]
mov dword [ecx - 4], eax
sub edx, 1
jne 0x40c264
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c230
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x24], eax
test esi, esi
jle 0x40c301
mov edi, esp
mov edx, esi
mov ecx, ebx
sub edi, ebx
mov esi, eax
mov eax, dword [ecx + edi]
mov eax, dword [esi + eax*4]
test eax, 0xff000000
je 0x40c2f3
mov dword [ecx], eax
add ecx, 4
sub edx, 1
jne 0x40c2e4
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c2b0
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [ebp - 0x28], eax
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x10], ecx
test esi, esi
jle 0x40c3fe
mov eax, esp
mov dword [ebp - 0xc], esi
sub eax, ebx
mov edi, ebx
mov dword [ebp - 0x24], eax
nop
mov eax, dword [edi + eax]
lea edi, [edi + 4]
mov ebx, dword [edi - 4]
mov edx, dword [ecx + eax*4]
mov eax, ebx
shr eax, 0x10
movzx esi, al
mov eax, edx
imul esi, dword [ebp - 8]
shr eax, 0x10
movzx eax, al
imul eax, dword [ebp - 0x28]
add esi, eax
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, edx
imul ecx, dword [ebp - 8]
shr eax, 8
movzx eax, al
imul eax, dword [ebp - 0x28]
shl esi, 8
and esi, 0xff0000
add ecx, eax
movzx eax, bl
imul eax, dword [ebp - 8]
and ecx, 0xff00
or esi, ecx
movzx ecx, dl
imul ecx, dword [ebp - 0x28]
add ecx, eax
mov eax, dword [ebp - 0x24]
sar ecx, 8
or esi, ecx
sub dword [ebp - 0xc], 1
mov ecx, dword [ebp - 0x10]
mov dword [edi - 4], esi
jne 0x40c380
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c345
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [ebp - 8], eax
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop dword [eax]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x1c], ecx
test esi, esi
jle 0x40c521
mov eax, esp
mov dword [ebp - 0xc], esi
sub eax, ebx
mov edi, ebx
mov ebx, dword [ebp - 0x24]
mov edx, esi
mov dword [ebp - 0x10], eax
nop
mov eax, dword [edi + eax]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 0x14], ecx
test ecx, 0xff000000
je 0x40c503
mov edx, dword [edi]
mov eax, edx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 0x10
movzx eax, al
imul eax, dword [ebp - 8]
imul esi, ebx
add esi, eax
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [ebp - 0x14]
shr eax, 8
imul ecx, ebx
movzx eax, al
imul eax, dword [ebp - 8]
shl esi, 8
and esi, 0xff0000
add ecx, eax
mov eax, dword [ebp - 0x14]
and ecx, 0xff00
or esi, ecx
movzx ecx, al
imul ecx, dword [ebp - 8]
movzx eax, dl
mov edx, dword [ebp - 0xc]
imul eax, ebx
add ecx, eax
sar ecx, 8
or esi, ecx
mov dword [edi], esi
mov eax, dword [ebp - 0x10]
add edi, 4
mov ecx, dword [ebp - 0x1c]
sub edx, 1
mov dword [ebp - 0xc], edx
jne 0x40c490
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c450
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop dword [eax]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x10], ecx
test esi, esi
jle 0x40c623
mov eax, esp
mov dword [ebp - 0x14], esi
sub eax, ebx
mov edi, ebx
mov dword [ebp - 0x24], eax
nop word [eax + eax]
mov eax, dword [edi + eax]
lea edi, [edi + 4]
mov ebx, dword [ecx + eax*4]
mov eax, dword [edi - 4]
shr eax, 0x10
movzx ecx, al
mov eax, ebx
shr eax, 0x10
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
mul ecx
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, dword [edi - 4]
shr eax, 8
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
shr edx, 7
movzx esi, dl
shl esi, 8
mul ecx
movzx ecx, bl
shr edx, 7
movzx eax, dl
or esi, eax
mov eax, dword [edi - 4]
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
shl esi, 8
mul ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
shr edx, 7
or esi, edx
sub dword [ebp - 0x14], 1
mov dword [edi - 4], esi
jne 0x40c5a0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c560
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x10], edx
test esi, esi
jle 0x40c737
mov eax, esp
mov dword [ebp - 0xc], esi
sub eax, ebx
mov edi, ebx
mov dword [ebp - 0x24], eax
mov ecx, esi
nop dword [eax]
mov eax, dword [edi + eax]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x14], edx
test edx, 0xff000000
je 0x40c719
mov ebx, dword [edi]
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 0x10
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
mul ecx
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, dword [ebp - 0x14]
shr eax, 8
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
shr edx, 7
movzx esi, dl
shl esi, 8
mul ecx
movzx ecx, bl
shr edx, 7
movzx eax, dl
or esi, eax
mov eax, dword [ebp - 0x14]
movzx eax, al
imul ecx, eax
mov eax, 0x80808081
shl esi, 8
mul ecx
mov ecx, dword [ebp - 0xc]
shr edx, 7
or esi, edx
mov dword [edi], esi
mov eax, dword [ebp - 0x24]
add edi, 4
mov edx, dword [ebp - 0x10]
sub ecx, 1
mov dword [ebp - 0xc], ecx
jne 0x40c6a0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c660
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [ebp - 8], eax
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x44], edx
test esi, esi
jle 0x40c894
mov eax, esp
mov dword [ebp - 0xc], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], eax
nop
mov eax, dword [ecx + eax]
mov ecx, dword [ecx]
mov ebx, dword [edx + eax*4]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
movzx edi, al
movzx eax, cl
mov dword [ebp - 0x24], eax
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, 0x80808081
imul ecx, esi
imul esi, dword [ebp - 0x28]
mul ecx
shr edx, 7
imul edx, dword [ebp - 8]
lea eax, [esi + edx]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
movzx esi, al
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, 0x80808081
imul ecx, edi
imul edi, dword [ebp - 0x28]
shl esi, 8
mul ecx
movzx ecx, bl
mov ebx, dword [ebp - 0x24]
shr edx, 7
imul edx, dword [ebp - 8]
imul ecx, ebx
imul ebx, dword [ebp - 0x28]
lea eax, [edi + edx]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
movzx eax, al
or esi, eax
mov eax, 0x80808081
mul ecx
mov ecx, dword [ebp - 0x14]
shr edx, 7
imul edx, dword [ebp - 8]
shl esi, 8
lea eax, [ebx + edx]
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp - 0x44]
sar eax, 8
or esi, eax
mov eax, dword [ebp - 0x10]
mov dword [ecx], esi
add ecx, 4
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x14], ecx
jne 0x40c7c0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c782
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [ebp - 8], eax
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x24], edx
test esi, esi
jle 0x40ca06
mov eax, esp
mov dword [ebp - 0xc], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x14], ecx
mov ebx, esi
mov dword [ebp - 0x44], eax
nop
mov eax, dword [eax + ecx]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x1c], edx
test edx, 0xff000000
je 0x40c9e5
mov ecx, dword [ecx]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
movzx edi, al
mov eax, edx
shr eax, 0x10
movzx ebx, cl
movzx ecx, al
mov eax, 0x80808081
imul ecx, esi
imul esi, dword [ebp - 0x28]
mul ecx
shr edx, 7
imul edx, dword [ebp - 8]
lea eax, [esi + edx]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
movzx esi, al
mov eax, dword [ebp - 0x1c]
shr eax, 8
movzx ecx, al
mov eax, 0x80808081
imul ecx, edi
imul edi, dword [ebp - 0x28]
shl esi, 8
mul ecx
shr edx, 7
imul edx, dword [ebp - 8]
lea eax, [edi + edx]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
movzx eax, al
or esi, eax
mov eax, dword [ebp - 0x1c]
movzx ecx, al
mov eax, 0x80808081
imul ecx, ebx
imul ebx, dword [ebp - 0x28]
shl esi, 8
mul ecx
mov ecx, dword [ebp - 0x14]
shr edx, 7
imul edx, dword [ebp - 8]
lea eax, [ebx + edx]
mov ebx, dword [ebp - 0xc]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
or esi, eax
mov dword [ecx], esi
mov eax, dword [ebp - 0x44]
add ecx, 4
mov edx, dword [ebp - 0x24]
sub ebx, 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ebx
jne 0x40c920
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], eax
cmp eax, dword [ebp - 0x18]
jl 0x40c8e0
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x24], edx
test esi, esi
jle 0x40caff
mov eax, esp
mov dword [ebp - 0x10], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x44], eax
nop
mov eax, dword [eax + ecx]
mov esi, dword [ebp - 8]
mov ebx, dword [edx + eax*4]
mov eax, dword [ecx]
shr eax, 0x10
movzx edi, al
mov eax, ebx
shr eax, 0x10
movzx eax, al
add edi, eax
mov eax, dword [ecx]
shr eax, 8
movzx edx, al
mov eax, ebx
shr eax, 8
movzx eax, al
add edx, eax
movzx ecx, bl
mov eax, dword [esi]
mov esi, 0xff
movzx eax, al
add ecx, eax
cmp edi, esi
mov eax, 0xff
cmovb esi, edi
shl esi, 8
cmp edx, eax
cmovb eax, edx
mov edx, dword [ebp - 0x24]
or esi, eax
mov eax, 0xff
shl esi, 8
cmp ecx, eax
cmovb eax, ecx
mov ecx, dword [ebp - 8]
or esi, eax
mov eax, dword [ebp - 0x44]
mov dword [ecx], esi
add ecx, 4
sub dword [ebp - 0x10], 1
mov dword [ebp - 8], ecx
jne 0x40ca80
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x18]
jl 0x40ca41
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop word [eax + eax]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0xc], edx
test esi, esi
jle 0x40cc13
mov eax, esp
mov dword [ebp - 0x1c], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x10], ecx
mov ebx, esi
mov dword [ebp - 0x24], eax
nop
mov eax, dword [eax + ecx]
mov edx, dword [edx + eax*4]
mov dword [ebp - 0x44], edx
test edx, 0xff000000
je 0x40cbf2
mov ebx, dword [ecx]
mov esi, 0xff
mov eax, ebx
shr eax, 0x10
movzx edi, al
mov eax, edx
shr eax, 0x10
movzx eax, al
add edi, eax
mov eax, ebx
shr eax, 8
movzx ecx, al
mov eax, edx
shr eax, 8
movzx edx, al
mov eax, dword [ebp - 0x44]
add edx, ecx
movzx ecx, al
movzx eax, bl
add ecx, eax
mov ebx, dword [ebp - 0x1c]
cmp edi, esi
mov eax, 0xff
cmovb esi, edi
shl esi, 8
cmp edx, eax
cmovb eax, edx
or esi, eax
mov eax, 0xff
shl esi, 8
cmp ecx, eax
cmovb eax, ecx
mov ecx, dword [ebp - 0x10]
or esi, eax
mov dword [ecx], esi
mov eax, dword [ebp - 0x24]
add ecx, 4
mov edx, dword [ebp - 0xc]
sub ebx, 1
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], ebx
jne 0x40cb80
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x18]
jl 0x40cb40
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, 0x100
lea edx, [ecx + 1]
sub eax, ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x54], edx
test esi, esi
jle 0x40cd6f
mov eax, esp
mov dword [ebp - 0xc], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], eax
nop dword [eax]
mov eax, dword [eax + ecx]
mov ebx, dword [edx + eax*4]
mov edx, dword [ecx]
mov eax, edx
shr eax, 0x10
movzx edi, al
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
add ecx, edi
movzx esi, al
mov eax, ebx
shr eax, 8
movzx eax, al
movzx edx, dl
mov dword [ebp - 0x44], esi
add esi, eax
movzx ebx, bl
mov eax, 0xff
add ebx, edx
mov dword [ebp - 0x24], edx
cmp ecx, eax
cmovb eax, ecx
imul edi, dword [ebp - 0x10]
imul eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x44]
add eax, edi
cdq
and edx, 0xff
lea edi, [edx + eax]
mov eax, 0xff
and edi, 0xffffff00
cmp esi, eax
cmovb eax, esi
imul ecx, dword [ebp - 0x10]
imul eax, dword [ebp - 0x1c]
add eax, ecx
mov ecx, dword [ebp - 0x24]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
or edi, eax
mov eax, 0xff
shl edi, 8
cmp ebx, eax
cmovb eax, ebx
imul ecx, dword [ebp - 0x10]
imul eax, dword [ebp - 0x1c]
add eax, ecx
mov ecx, dword [ebp - 0x14]
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp - 0x54]
sar eax, 8
or edi, eax
mov eax, dword [ebp - 0x28]
mov dword [ecx], edi
add ecx, 4
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x14], ecx
jne 0x40cca0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jl 0x40cc60
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
lea eax, [ecx + 1]
mov dword [ebp - 0x1c], eax
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
nop word [eax + eax]
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x54], eax
test esi, esi
jle 0x40cee8
mov eax, esp
mov dword [ebp - 0xc], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 8], ecx
mov edx, esi
mov dword [ebp - 0x2c], eax
nop
mov eax, dword [eax + ecx]
mov ebx, dword [ebp - 0x54]
mov ebx, dword [ebx + eax*4]
mov dword [ebp - 0x10], ebx
test ebx, 0xff000000
je 0x40ceca
mov edx, dword [ecx]
mov eax, edx
shr eax, 0x10
movzx edi, al
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, edx
shr eax, 8
add ecx, edi
movzx ebx, al
mov eax, dword [ebp - 0x10]
shr eax, 8
movzx esi, al
mov eax, dword [ebp - 0x10]
add esi, ebx
movzx eax, al
movzx edx, dl
add eax, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x44], eax
mov eax, 0xff
cmp ecx, eax
cmovb eax, ecx
imul edi, dword [ebp - 0x14]
imul eax, dword [ebp - 0x1c]
add eax, edi
cdq
and edx, 0xff
lea ecx, [edx + eax]
mov eax, 0xff
and ecx, 0xffffff00
cmp esi, eax
cmovb eax, esi
imul ebx, dword [ebp - 0x14]
imul eax, dword [ebp - 0x1c]
add eax, ebx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp - 0x24]
sar eax, 8
or ecx, eax
mov eax, 0xff
shl ecx, 8
cmp dword [ebp - 0x44], eax
cmovb eax, dword [ebp - 0x44]
imul eax, dword [ebp - 0x1c]
imul edx, dword [ebp - 0x14]
add eax, edx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 8
or ecx, eax
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov ecx, eax
mov eax, dword [ebp - 0x2c]
add ecx, 4
sub edx, 1
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], edx
jne 0x40ce00
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], eax
cmp eax, dword [ebp - 0x18]
jl 0x40cdc0
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 8], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea edx, [ecx + eax*4]
mov dword [ebp - 0x44], edx
test esi, esi
jle 0x40d089
mov eax, esp
mov dword [ebp - 0xc], esi
mov ecx, ebx
sub eax, ebx
mov dword [ebp - 0x14], ecx
mov ebx, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + ecx]
mov ecx, dword [ecx]
mov dword [ebp - 0x54], ecx
mov edx, dword [edx + eax*4]
mov eax, ecx
shr ecx, 8
mov dword [ebp - 0x2c], ecx
mov ecx, edx
shr eax, 0x10
shr ecx, 0x10
mov dword [ebp - 0x10], edx
movzx edi, al
cmp al, 0x80
jae 0x40cfa4
movzx ecx, cl
mov eax, 0x80808081
imul ecx, edi
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
jmp 0x40cfc1
movzx esi, cl
mov eax, 0x80808081
mov ecx, edi
imul ecx, esi
mul ecx
shr edx, 7
sub edi, edx
add edi, esi
lea edi, [edi*2 - 0xff]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x10]
movzx eax, dl
shr ecx, 8
mov dword [ebp - 0x2c], eax
cmp dl, 0x80
jae 0x40cff2
movzx ecx, cl
imul ecx, eax
mov eax, 0x80808081
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x40d012
movzx esi, cl
mov ecx, eax
imul ecx, esi
mov eax, 0x80808081
mul ecx
mov eax, dword [ebp - 0x2c]
shr edx, 7
sub eax, edx
add eax, esi
lea eax, [eax*2 - 0xff]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x54]
movzx edx, cl
movzx esi, al
mov dword [ebp - 0x2c], edx
cmp al, 0x80
jae 0x40d042
imul esi, edx
mov eax, 0x80808081
add esi, esi
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jmp 0x40d05d
mov ecx, esi
mov eax, 0x80808081
imul ecx, edx
mul ecx
shr edx, 7
sub esi, edx
add esi, dword [ebp - 0x2c]
lea esi, [esi*2 - 0xff]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
shl edi, 8
or edi, dword [ebp - 0x1c]
shl edi, 8
or edi, esi
mov dword [ecx], edi
add ecx, 4
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x14], ecx
jne 0x40cf62
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x18]
jl 0x40cf23
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x44], ecx
test esi, esi
jle 0x40d23b
mov eax, esp
mov dword [ebp - 0x14], esi
mov edx, ebx
sub eax, ebx
mov dword [ebp - 0x1c], edx
mov ebx, eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + edx]
mov ecx, dword [ecx + eax*4]
mov dword [ebp - 8], ecx
test ecx, 0xff000000
je 0x40d21d
mov edx, dword [edx]
mov eax, edx
shr eax, 0x10
mov dword [ebp - 0x54], edx
shr edx, 8
cmp al, 0x80
movzx edi, al
mov eax, ecx
mov dword [ebp - 0x2c], edx
jae 0x40d151
shr eax, 0x10
movzx ecx, al
mov eax, 0x80808081
imul ecx, edi
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
jmp 0x40d171
shr eax, 0x10
mov ecx, edi
movzx esi, al
mov eax, 0x80808081
imul ecx, esi
mul ecx
shr edx, 7
sub edi, edx
add edi, esi
lea edi, [edi*2 - 0xff]
mov eax, dword [ebp - 0x2c]
cmp al, 0x80
movzx edx, al
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], edx
jae 0x40d1a1
shr eax, 8
movzx ecx, al
mov eax, 0x80808081
imul ecx, edx
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jmp 0x40d1c4
shr eax, 8
mov ecx, edx
movzx esi, al
mov eax, 0x80808081
imul ecx, esi
mul ecx
mov eax, dword [ebp - 0x2c]
shr edx, 7
sub eax, edx
add eax, esi
lea esi, [eax*2 - 0xff]
mov eax, dword [ebp - 8]
movzx ecx, al
mov eax, dword [ebp - 0x54]
movzx edx, al
mov dword [ebp - 0x10], edx
mov edx, ecx
imul edx, dword [ebp - 0x10]
cmp al, 0x80
jae 0x40d1f5
lea ecx, [edx + edx]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x40d20b
mov eax, 0x80808081
mul edx
shr edx, 7
sub ecx, edx
add ecx, dword [ebp - 0x10]
lea eax, [ecx*2 - 0xff]
mov edx, dword [ebp - 0x1c]
shl edi, 8
or edi, esi
mov esi, dword [ebp - 0x14]
shl edi, 8
or edi, eax
mov dword [edx], edi
mov ecx, dword [ebp - 0x44]
add edx, 4
sub esi, 1
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x14], esi
jne 0x40d103
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x40d0c4
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0x24], ecx
test esi, esi
jle 0x40d442
mov eax, esp
mov dword [ebp - 0x2c], ebx
sub eax, ebx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x44], eax
nop dword [eax + eax]
mov eax, dword [ebx + eax]
mov edx, dword [ecx + eax*4]
mov ecx, dword [ebx]
mov eax, ecx
shr ecx, 8
mov dword [ebp - 0x10], ecx
mov ecx, edx
shr eax, 0x10
mov dword [ebp - 0x1c], edx
shr ecx, 0x10
movzx edx, al
mov dword [ebp - 0x2c], edx
cmp al, 0x80
jae 0x40d305
mov edi, dword [ebp - 0x2c]
mov eax, 0x80808081
movzx ecx, cl
imul ecx, edx
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x40d327
movzx esi, cl
movzx edi, al
mov ecx, esi
imul ecx, edx
mov eax, 0x80808081
mul ecx
mov eax, edi
shr edx, 7
sub eax, edx
add eax, esi
lea eax, [eax*2 - 0xff]
mov ecx, dword [ebp - 0x28]
inc ecx
imul eax, ecx
mov ecx, dword [ebp - 8]
imul ecx, edi
add eax, ecx
mov ecx, dword [ebp - 0x10]
cdq
and edx, 0xff
lea edi, [edx + eax]
mov edx, dword [ebp - 0x1c]
movzx eax, cl
shr edx, 8
mov dword [ebp - 0x2c], eax
cmp cl, 0x80
jae 0x40d371
movzx ecx, dl
imul ecx, eax
mov eax, 0x80808081
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x40d391
mov ecx, eax
movzx esi, dl
imul ecx, esi
mov eax, 0x80808081
mul ecx
mov eax, dword [ebp - 0x2c]
shr edx, 7
sub eax, edx
add eax, esi
lea ecx, [eax*2 - 0xff]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
movzx eax, al
inc edx
imul eax, dword [ebp - 8]
imul ecx, edx
add eax, ecx
mov ecx, dword [ebx]
cdq
and edx, 0xff
movzx esi, cl
add eax, edx
sar eax, 8
cmp cl, 0x80
mov dword [ebp - 0x54], eax
mov ecx, esi
mov eax, dword [ebp - 0x1c]
movzx eax, al
mov dword [ebp - 0x2c], eax
jae 0x40d3e2
imul ecx, eax
mov eax, 0x80808081
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x40d3fd
imul ecx, eax
mov eax, 0x80808081
mul ecx
mov ecx, esi
shr edx, 7
sub ecx, edx
add ecx, dword [ebp - 0x2c]
lea ecx, [ecx*2 - 0xff]
mov eax, dword [ebp - 0x28]
and edi, 0xffffff00
imul esi, dword [ebp - 8]
inc eax
or edi, dword [ebp - 0x54]
imul eax, ecx
mov ecx, dword [ebp - 0x24]
shl edi, 8
add eax, esi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
or eax, edi
mov dword [ebx], eax
add ebx, 4
sub dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x44]
jne 0x40d2c0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0xc], eax
cmp eax, dword [ebp - 0x18]
jl 0x40d280
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret
mov eax, 0x100
sub eax, ecx
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x18], eax
jle case.default.0x40c218
mov ecx, dword [ebp - 0x48]
sub eax, dword [ecx + 4]
add eax, dword [ebp - 0x34]
imul eax, dword [ebp - 0x4c]
mov ecx, dword [ebp + 0xc]
cdq
idiv dword [ebp - 0x50]
add eax, dword [ecx + 4]
imul eax, dword [edi + 8]
mov ecx, dword [edi]
add eax, dword [ebp - 0x38]
lea eax, [ecx + eax*4]
mov dword [ebp - 0x1c], eax
test esi, esi
jle 0x40d65f
mov eax, esp
mov dword [ebp - 0xc], esi
mov ecx, ebx
sub eax, ebx
mov ebx, dword [ebp - 0x2c]
mov edx, esi
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x58], eax
nop dword [eax]
mov eax, dword [ecx + eax]
mov eax, dword [esi + eax*4]
mov dword [ebp - 8], eax
test eax, 0xff000000
je 0x40d641
mov ecx, dword [ecx]
mov edx, ecx
mov dword [ebp - 0x44], ecx
shr ecx, 8
shr edx, 0x10
shr eax, 0x10
mov dword [ebp - 0x10], ecx
movzx edi, dl
movzx ecx, al
cmp dl, 0x80
jae 0x40d51c
imul ecx, edi
mov eax, 0x80808081
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x40d53b
imul edi, ecx
mov eax, 0x80808081
movzx esi, dl
mul edi
mov eax, esi
mov edi, esi
shr edx, 7
sub eax, edx
add eax, ecx
lea eax, [eax*2 - 0xff]
mov ecx, dword [ebp - 0x28]
inc ecx
imul edi, ebx
imul eax, ecx
add eax, edi
cdq
and edx, 0xff
lea edi, [edx + eax]
mov eax, dword [ebp - 0x10]
movzx edx, al
mov dword [ebp - 0x54], edx
cmp al, 0x80
jae 0x40d581
mov ecx, dword [ebp - 8]
mov eax, 0x80808081
shr ecx, 8
movzx ecx, cl
imul ecx, edx
add ecx, ecx
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x40d5a7
mov eax, dword [ebp - 8]
mov ecx, edx
shr eax, 8
movzx esi, al
mov eax, 0x80808081
imul ecx, esi
mul ecx
mov eax, dword [ebp - 0x54]
shr edx, 7
sub eax, edx
add eax, esi
lea ecx, [eax*2 - 0xff]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
movzx eax, al
inc edx
imul eax, ebx
imul ecx, edx
add eax, ecx
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp - 0x44]
sar eax, 8
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
movzx esi, dl
movzx eax, al
mov ecx, esi
imul ecx, eax
mov dword [ebp - 0x54], eax
cmp dl, 0x80
jae 0x40d5f8
add ecx, ecx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x40d610
mov eax, 0x80808081
mul ecx
mov ecx, esi
shr edx, 7
sub ecx, edx
add ecx, dword [ebp - 0x54]
lea ecx, [ecx*2 - 0xff]
mov eax, dword [ebp - 0x28]
and edi, 0xffffff00
or edi, dword [ebp - 0x10]
inc eax
imul eax, ecx
mov ecx, dword [ebp - 0x14]
imul esi, ebx
shl edi, 8
add eax, esi
mov esi, dword [ebp - 0x1c]
cdq
and edx, 0xff
add eax, edx
mov edx, dword [ebp - 0xc]
sar eax, 8
or eax, edi
mov dword [ecx], eax
mov eax, dword [ebp - 0x58]
add ecx, 4
sub edx, 1
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], edx
jne 0x40d4d0
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x40]
add ebx, dword [eax + 0x14]
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], eax
cmp eax, dword [ebp - 0x18]
jl 0x40d487
lea esp, [ebp - 0x64]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004e66f2
mov esp, ebp
pop ebp
ret